Nmap es un mapeador de red de código abierto que permite escanear la red de hosts, servicios, realizar evaluaciones de seguridad y auditorías. Este comando útil viene con muchas opciones y capacidades, pero necesita tener experiencia para usarlo. En este tutorial, intentaré presentar algunos ejemplos de comandos que pueden ayudarlo a identificar posibles puntos vulnerables en los hosts, subred completa, sistema operativo y detección de versión de servicios, lista de servicios, interfaces, rutas, identificación de Mac, etc. P>
Entonces, aquí vamos.
Es posible que parte del sabor de Linux no venga con nmap instalado, por lo que puede instalarlo usando yum o apt-get dependiendo del sistema operativo que esté utilizando.
# yum instalar nmap
o
# apt-get install nmap
Comencemos escaneando un solo host:
Escaneo de dirección IP única (sin root)
$ nmap 14.0.0.6
Salida de muestra:
El host está activo (latencia de 0,00035 s). No se muestra:999 puertos cerradosPORT STATE SERVICE22/tcp open sshNmap done:1 dirección IP (1 host activo) escaneada en 1,50 segundos
Escaneo de múltiples direcciones IP (sin root)
$ nmap 14.0.0.6 14.0.0.5
Escaneo de múltiples direcciones IP usando una coma como delimitador
$nmap 14.0.0.6,5
El comando anterior escaneará las direcciones IP 14.0.0.5 y 14.0.0.6
Rango de exploración de direcciones IP (sin raíz)
$ nmap 14.0.0.1-5
El comando anterior escaneará la dirección IP desde 14.0.0.1 hasta 14.0.0.5
Escaneo de la dirección IP usando un comodín (sin root)
$ nmap 14.0.0.*
Escaneo de todas las direcciones IP en una subred
$ nmap 14.0.0.0/24
Escaneo de un host usando el nombre de dominio
$ nmap www.ejemplo.com
Escaneo de hosts leyendo desde un archivo de texto
$ cat host-list.txt 14.0.0.1 www.example.com 14.0.0.2
$ nmap -iL host-list.txt
Escaneo de una subred excluyendo una dirección IP particular
$ nmap 14.0.0.0/24 --excluir 14.0.0.1
Escanear una subred excluyendo la lista de direcciones IP
$ nmap 14.0.0.0/24 --excluye 14.0.0.1,2
Escanear una subred excluyendo la lista de direcciones IP de un archivo
$ gato excluir-ips.txt14.0.0.1,2,3,4,5
$ nmap 14.0.0.0/24 --excludefile excluir-ips.txt
Identifique los nombres de host de todas las IP en una subred (sin root)
$nmap-sL 14.0.0.0/24
Realizar barrido PING
El barrido de ping se usa generalmente para averiguar qué hosts están activos en la red. El barrido de ping se puede utilizar si desea escanear una gran cantidad de hosts en una red.
#nmap-sP 14.0.0.6
Escanear un solo puerto de una dirección IP o un host en particular (sin raíz)
$ nmap -p 22 14.0.0.6
Salida de muestra:
El host está activo (latencia de 0,00066 s).PORT STATE SERVICE22/tcp open sshNmap terminado:1 dirección IP (1 host activo) escaneada en 0,47 segundos
Escanear un rango de puertos (sin root)
$nmap-p 15-23 14.0.0.6
Salida de muestra:
PORT STATE SERVICE15/tcp cerrado netstat16/tcp cerrado unknown17/tcp cerrado qotd18/tcp cerrado unknown19/tcp cerrado chargen20/tcp cerrado ftp-data21/tcp cerrado ftp22/tcp abierto ssh23/tcp cerrado telnet
Realice un escaneo rápido de puertos (100 puertos más comunes) (sin raíz)
$nmap-F 14.0.0.6
Escanear la $cantidad superior de puertos (sin raíz)
$ nmap --top-ports 10 14.0.0.6
$ nmap --top-ports 2 14.0.0.6
Escanear todos los puertos (no root)
$ nmap -p-14.0.0.6
El comando anterior escaneará todos los puertos 65535 de una dirección IP dada.
Detección de información de servicio y sistema operativo de un host remoto (sin root)
$nmap-A 14.0.0.6
Salida de muestra:
Iniciando Nmap 7.01 ( https://nmap.org ) a las 06:34 UTC del 11 de julio de 2016, el host está activo (latencia de 0,00029 s). No se muestra:999 puertos cerrados PUERTO ESTADO SERVICIO VERSIÓN 22/tcp abierto ssh OpenSSH 7.2p2 Ubuntu 4ubuntu1 (Ubuntu Linux; protocolo 2.0) ::::::::::::::::::
Detección de servicios (sin root)
$nmap-sV 14.0.0.6
Detección de servicios agresivos (sin root)
El comando Nmap se basa en diferentes métodos para detectar el sistema operativo y la información del servicio. La detección agresiva del servicio es útil cuando el servicio se ejecuta en un puerto poco común (por ejemplo, se espera que SSH escuche en el puerto 22, pero el host remoto podría estar ejecutando el servicio en un puerto diferente). La detección de servicios agresivos es más lenta que la detección de servicios normales, ya que la última obtiene la información de los banners de servicios.
$ nmap -sV --version-intensidad 5 14.0.0.6
Salida de muestra:
El host está activo (latencia de 0,00044 s). No se muestra:999 puertos cerrados VERSIÓN DEL SERVICIO DEL ESTADO DEL PUERTO 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu1 (Ubuntu Linux; protocolo 2.0) Información del servicio:SO:Linux; CPE:cpe:/o:linux:linux_kernelService detección realizada. Informe cualquier resultado incorrecto en https://nmap.org/submit/
Detección del sistema operativo (raíz)
El ejemplo de detección de servicio anterior revelará la información del sistema operativo. También es posible adivinar el sistema operativo y su versión usando el siguiente comando.
Nota:La detección del sistema operativo requiere privilegios de root.
$ nmap -O 14.0.0.6Toma de huellas dactilares TCP/IP (para escanear el sistema operativo) requiere privilegios de root.¡SALIR!
#nmap-O 14.0.0.6
# nmap -O --osscan-guess 14.0.0.6 Iniciando Nmap 7.01 ( https://nmap.org ) el 11-07-2016 a las 08:39 UTCHost está activo (latencia de 0,00035 s). No se muestra:999 cerrado puertosPORT STATE SERVICE22/tcp open sshConjeturas de SO agresivas:Linux 3.1 (93 %), Linux 3.2 (93 %), cámara de red AXIS 210A o 211 (Linux 2.6.17) (92 %), Android 5.0.2 (92 %), Android 5.1 (92 %), Linux 3.0 (92 %), Linux 3.11 (92 %), Linux 3.12 (92 %), Linux 3.12 - 3.19 (92 %), Linux 3.13 (92 %)
# nmap -v -O --osscan-adivina 14.0.0.6
Detectar si un host está protegido por un firewall (raíz)
Cuando el cortafuegos está deshabilitado en el host remoto, el nmap escanea todos los puertos y dice que no están filtrados, como se muestra a continuación:
# nmap -sA 14.0.0.6El host está activo (latencia de 0,00042 s).Los 1000 puertos escaneados en henry2.cloudsecurity.in (14.0.0.6) no están filtrados
Cuando el firewall está habilitado en el host remoto, el nmap dice que los puertos están filtrados:
# nmap -sA 14.0.0.6Informe de escaneo de Nmap para henry2.cloudsecurity.in (14.0.0.6) El host está activo (0.00045s de latencia).Se filtran los 1000 puertos escaneados en henry2.cloudsecurity.in (14.0.0.6)
Escaneo con secuencias de comandos NSE
Hay alrededor de 400+ NSE (Nmap S codificación E ngine) scripts que se pueden usar con nmap y cada script viene con una buena documentación. Para identificar la lista de scripts instalados en su máquina, ejecute el siguiente comando:
# localizar nse |grep script :::::::::::::::::::::/usr/share/nmap/scripts/ssl-enum-ciphers.nse /usr/share /nmap/scripts/ssl-google-cert-catalog.nse /usr/share/nmap/scripts/ssl-heartbleed.nse /usr/share/nmap/scripts/ssl-known-key.nse /usr/share/nmap /scripts/ssl-poodle.nse /usr/share/nmap/scripts/sslv2.nse /usr/share/nmap/scripts/sstp-discover.nse /usr/share/nmap/scripts/stun-info.nse /usr /share/nmap/scripts/stun-version.nse /usr/share/nmap/scripts/stuxnet-detect.nse /usr/share/nmap/scripts/supermicro-ipmi-conf.nse /usr/share/nmap/scripts /svn-brute.nse /usr/share/nmap/scripts/targets-asn.nse /usr/share/nmap/scripts/targets-ipv6-map4to6.nse /usr/share/nmap/scripts/targets-ipv6-multicast -echo.nse /usr/share/nmap/scripts/targets-ipv6-multicast-invalid-dst.nse /usr/share/nmap/scripts/targets-ipv6-multicast-mld.nse /usr/share/nmap/scripts /targets-ipv6-multicast-slaac.nse /usr/share/nmap/scripts/targets-ipv6-wordlist.nse /usr/share/nmap/scripts/targets-sniffer.nse /usr/share/nmap/scripts/tar gets-traceroute.nse /usr/share/nmap/scripts/targets-xml.nse :::::::::::::
Fuerza bruta de DNS para identificar subdominios de un dominio determinado (sin raíz)
nmap permite identificar la lista de subdominios para un host determinado. La identificación de subdominios de un host puede revelar nuevos objetivos mientras se realiza una evaluación de seguridad. Para hacerlo, dns-brute.nse se debe usar el script.
$ nmap -p 80 --script dns-brute.nse ejemplo.com
Salida de muestra:
PORT STATE SERVICE80/tcp open resultados de la secuencia de comandos httpHost:| dns-brute:| DNS Nombres de host de fuerza bruta:| www.ejemplo.com - 93.184.216.34|_ www.ejemplo.com - 2606:2800:220:1:248:1893:25c8:1946
Identificación de hosts virtuales en un host determinado (sin root)
El nombre de dominio dado puede albergar varios sitios web utilizando la función de host virtual de los servidores web. Puede identificar hosts virtuales usando hostmap-bfk.nse guión.
$ nmap -p 80 --script hostmap-bfk.nse nmap.org Resultados de la secuencia de comandos del host:| hostmap-bfk:| anfitriones:| mail.nmap.org | 45.33.49.119 | 119.49.33.45.in-addr.arpa | ack.nmap.org | sectools.org | svn.nmap.org | inseguro.com | mail.seclists.org | seclists.org | espejo.secools.org | www.inseguro.org | nmap.org | inseguro.org | www.nmap.org |_ www.insecure.com
Identificar la ubicación geográfica de un host determinado
# nmap --traceroute --script traceroute-geolocalización.nse -p 80 ejemplo.com
Salida de muestra:
::::::::::::::::Resultados del script del host:| traceroute-geolocalización:| HOP RTT DIRECCIÓN GEOLOCACIÓN | 1 0.44 14.0.0.1 23,113 China (Guangdong) | 2 0.88 10.180.141.1 -, - | 3 1.58 144.16.192.34 20,77 India () | 4 1.87 14.139.1.30 20,77 India () | 5 1.61 10.118.248.45 -, - | 6 11.62 10.161.18.5 -, - | 7 ...| 8 13.32 10.255.221.34 -, - | 9 14.71 115.249.209.6 18,72 India (mah \ xc4 \ x81r \ xc4 \ x81shtra) | 10 ...| 11 ...| 12 ...| 13 293.92 XE-3-0-6.0.cjr01.sin001.flagtel.com (62.216.129.201) 51,0 Reino Unido () | 14 293.77 GE-2-0-0.0.pjr01.hkg005.flagtel.com.25.95.85.in-addr.arpa (85.9 5.25.41) 51,0 Reino Unido () | 15 168.70 So-1-0-0.0.pjr01.wad001.flagtel.com (85.95.25.193) 51,0 Reino Unido () | 16 168.13 SO-2-2-0.0.PJR01.WAD001.FLAGTEL.com (85.95.25.37) 51,0 Reino Unido () | 17 293.97 SO-2-1-0.0.pjr01.lax002.flagtel.com (85.95.25.17) 51,0 Reino Unido () | 18 275.17 any2ix.coresite.com (206.223.143.232) 38, -97 Estados Unidos () | _ 19 295.32 93.184.216.34 42, -70 Estados Unidos (Massachusetts) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:C. ::::::::::::::::::
Por ejemplo, identifique la lista de scripts relacionados con HTTP:
# localizar nse |grep http /usr/share/nmap/nselib/http.lua /usr/share/nmap/nselib/httpspider.lua /usr/share/nmap/nselib /data/http-default-accounts-fingerprints.lua /usr/share/nmap/nselib/data/http-devframework-fingerprints.lua /usr/share/nmap/nselib/data/http-fingerprints.lua /usr/share /nmap/nselib/data/http-folders.txt /usr/share/nmap/nselib/data/http-sql-errors.lst /usr/share/nmap/nselib/data/http-web-files-extensions.lst /usr/share/nmap/scripts/http-adobe-coldfusion-apsa1301.nse /usr/share/nmap/scripts/http-afiliado-id.nse /usr/share/nmap/scripts/http-apache-negotiation.nse /usr/share/nmap/scripts/http-auth-finder.nse /usr/share/nmap/scripts/http-auth.nse /usr/share/nmap/scripts/http-avaya-ipoffice-users.nse /usr /share/nmap/scripts/http-awstatstotals-exec.nse /usr/share/nmap/scripts/http-axis2-dir-traversal.nse /usr/share/nmap/scripts/http-backup-finder.nse /usr /share/nmap/scripts/http-barracuda-dir-traversal.nse /usr/share/nmap/scripts/http-brute.nse /usr/ compartir/nmap/scripts/http-cakephp-version.nse /usr/share/nmap/scripts/http-chrono.nse /usr/share/nmap/scripts/http-cisco-anyconnect.nse /usr/share/nmap/ scripts/http-coldfusion-subzero.nse /usr/share/nmap/scripts/http-comments-displayer.nse /usr/share/nmap/scripts/http-config-backup.nse /usr/share/nmap/scripts/ http-cors.nse /usr/share/nmap/scripts/http-cross-domain-policy.nse /usr/share/nmap/scripts/http-csrf.nse /usr/share/nmap/scripts/http-date. nse /usr/share/nmap/scripts/http-default-accounts.nse /usr/share/nmap/scripts/http-devframework.nse /usr/share/nmap/scripts/http-dlink-backdoor.nse /usr/ compartir/nmap/scripts/http-dombased-xss.nse /usr/share/nmap/scripts/http-domino-enum-passwords.nse /usr/share/nmap/scripts/http-drupal-enum-users.nse / usr/share/nmap/scripts/http-drupal-enum.nse /usr/share/nmap/scripts/http-enum.nse /usr/share/nmap/scripts/http-errors.nse /usr/share/nmap/ scripts/http-exif-spider.nse /usr/share/nmap/scripts/http-favicon.nse /usr/share/nmap/scripts/http-feed.nse /usr/ compartir/nmap/scripts/http-fetch.nse /usr/share/nmap/scripts/http-fileupload-exploiter.nse /usr/share/nmap/scripts/http-form-brute.nse /usr/share/nmap/ scripts/http-form-fuzzer.nse /usr/share/nmap/scripts/http-frontpage-login.nse /usr/share/nmap/scripts/http-generator.nse /usr/share/nmap/scripts/http- git.nse /usr/share/nmap/scripts/http-gitweb-projects-enum.nse :::::::::::::::::::::
Del resultado anterior, puede copiar el nombre del script y usarlo con –script opción.
Obtener información del servicio HTTP (sin root)
Hay muchas secuencias de comandos para obtener información del servicio HTTP, como el título de la página web, los encabezados HTTP, la búsqueda de varias rutas conocidas de la aplicación web, etc...
$nmap --script=http-title 14.0.0.5 El host está activo (latencia de 0,0000070 s). No se muestra:998 puertos cerradosPORT STATE SERVICE22/tcp open ssh80/tcp open http|_http-title:Apache2 Página predeterminada de Ubuntu:funciona
Obtener información del encabezado HTTP (sin root)
$ nmap --script=http-cabeceras 14.0.0.5PORT STATE SERVICE22/tcp open ssh80/tcp open http| encabezados http:| Fecha:lunes, 11 de julio de 2016 07:08:05 GMT| Servidor:Apache/2.4.18 (Ubuntu)| Última modificación:lunes, 11 de julio de 2016 07:04:49 GMT| Etiqueta electrónica:"2c39-53756c49f4280"| Rangos de aceptación:bytes | Contenido-Longitud:11321| Variar:Aceptar-Codificación| Conexión:cerrar| Tipo de contenido:texto/html||_ (Tipo de solicitud:HEAD)
Identifique las rutas conocidas de la aplicación web HTTP (sin root)
$ nmap --script=http-enumeración 14.0.0.580/tcp abierto http| http-enum:|_ /server-status/:Carpeta potencialmente interesante
Detectar vulnerabilidad Heartbleed SSL (sin raíz)
Es posible que hayas oído hablar de la vulnerabilidad SSL heartbleed. El comando Nmap se puede usar para detectar esta vulnerabilidad como se muestra a continuación:
nmap -sV -p 443 --script=ssl-heartbleed 14.0.0.0/24
Identificar el whois de un nombre de dominio (sin root)
$ nmap -sV --script=dominio-whois.nse www.ejemplo.com
Salida de muestra:
Resultados de la secuencia de comandos del host:| dominio whois:|| Registro de nombre de dominio encontrado en whois.iana.org| % servidor IANA WHOIS| % para obtener más información sobre la IANA, visite http://www.iana.org| % Esta consulta devolvió 1 objeto|| dominio: EJEMPLO.COM|| organización:Autoridad de Números Asignados en Internet|| creado: 1992-01-01| fuente: IANA|_
TCP Syn y UDP Scan (raíz)
# nmap -sS -sU -PN 14.0.0.6
El comando anterior escaneará 2000 puertos TCP y UDP comunes. El –PN solicitud de opción nmap para omitir el escaneo de ping y asumir que el host está activo. La opción es útil cuando la máquina remota tiene el firewall habilitado y descarta todos los paquetes ICMP.
Escaneo de conexión TCP (sin raíz)
$nmap-sT 14.0.0.6
El comando anterior solicita al sistema operativo que establezca una conexión TCP a los 1000 puertos comunes en lugar de enviar un paquete TCP SYN.
Escanear direcciones IPv6 (sin root)
Todos los comandos de ejemplo anteriores estaban escaneando una dirección IPv4, pero también puede escanear una dirección IPv6. Para hacerlo, debe usar la opción '-6 ‘ seguido de una dirección IPv6.
$ nmap -6 2001:db8:000:3eff:fe52:77
Lista de interfaces de host y rutas (sin raíz)
$ nmap --iflist Iniciando Nmap 7.01 ( https://nmap.org ) a las 2016-07-11 09:53 UTC********************* ***INTERFACES************************DEV (CORTO) IP/MÁSCARA TIPO UP MTU MAClo (lo) 127.0.0.1/8 loopback up 65536lo (lo) ::1/128 loopback arriba 65536ens3 (ens3) 14.0.0.5/24 ethernet arriba 1450 FA:16:3E:C0:14:5Fens3 (ens3) fe80::f816:1eff5:3 ethernet 1450 FA:16:3E:C0:14:5F***************************RUTAS*********** *************** DST/MASK DEV METRIC GATEWAY169.254.169.254/32 ENS3 0 14.0.0.114.0.0.0/24 ENS3 00.0.0.0/0 ENS3 0 14.0.0.1::1/128 lo 0fe80::f816:3eff:fec0:145f/128 lo 0fe80::/64 ens3 256ff00::/8 2 6 2 5Guardar resultados de Nmap en un archivo de texto
$ nmap -oN nmap_text.txt 14.0.0.6Guardar la salida de Nmap como XML
$ nmap -oX nmap_xml.xml 14.0.0.6Guardar la salida en un formato para grep
$ nmap -oG nmap_grep.txt 14.0.0.6Guarde la salida de Nmap en todos los formatos
$ nmap -oA allformats_file 14.0.0.6Nmap con GUI
Descarga Zenmap (o) instálalo usando apt-get/yum
$ sudo apt-get install zenmap