Nmap: escaneo de redes y hosts

¿Qué es Nmap?

host


Nmap es una herramienta de código abierto para exploración de red y auditoría de seguridad. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap utiliza paquetes IP "crudos" («raw», N. del T.) en formas originales para determinar qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando así como docenas de otras características. Aunque generalmente se utiliza Nmap en auditorías de seguridad, muchos administradores de redes y sistemas lo encuentran útil para realizar tareas rutinarias, como puede ser el inventariado de la red, la planificación de actualización de servicios y la monitorización del tiempo que los equipos o servicios se mantiene activos.


scan


¿Donde lo consigo?

Nmap está incluido by default en distros enfocadas a pentest como Backtrack, pero normalmente se encuentra en los repositorios de la mayoría de distros, y para otros sistemas como Solaris,Windows, Mac OS X, FreeBSD, NetBSD y OpenBSD pueden descargar los binarios o el source code para compilarlo en:
http://nmap.org/download.html




spoofing

Cómo se usa?
Nmap se usa generalmente desde la linea de comandos, aunque también está disponible Zenmap, que es una interfaz gráfica para Nmap.

La sintaxis de nmap es muy sencilla y es la siguiente:


#nmap [tipos de análisis] [Opciones] [especificación de objetivos]


noten el símbolo "#" delante de nmap, esto significa que se debe ejecutar como root para poder usar ciertas funciones como el OS fingerprinting.

nmap

Resumen de Opciones

ESPECIFICACIÓN DE OBJETIVO:
Se pueden indicar nombres de sistema, direcciones IP, redes, etc.
Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL <archivo_entrada> Lee una lista de sistemas/redes del archivo.
-iR <número de sistemas> : Selecciona objetivos al azar
--exclude <sist1[,sist2][,sist3],...> Excluye ciertos sistemas o redes
--excludefile <fichero_exclusión> Excluye los sistemas indicados en el fichero

DESCUBRIMIENTO DE HOSTS:
-sL Sondeo de lista - Simplemente lista los objetivos a analizar
-sP: Sondeo Ping - Sólo determina si el objetivo está vivo
-P0: Asume que todos los objetivos están vivos
-PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados
-PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red
-n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces]
--dns-servers <serv1[,serv2],...>: Especificar servidores DNS específicos
--system-dns: Utilizar la resolución del sistema operativo


TÉCNICAS DE ANÁLISIS:
-sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon
-sN/sF/sX: Análisis TCP Null, FIN, y Xmas
--scanflags <indicador>: Personalizar los indicadores TCP a utilizar
-sI <sistema zombi[:puerto_sonda]>: Análisis pasivo («Idle», N. del T.)
-sO: Análisis de protocolo IP
-b <servidor ftp rebote>: Análisis por rebote FTP

ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS:
-p <rango de puertos>: Sólo sondear los puertos indicados
Ej: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services
-r: Analizar los puertos secuencialmente, no al azar.

DETECCIÓN DE SERVICIO/VERSIÓN:
-sV: Sondear puertos abiertos, para obtener información de servicio/versión
--version-intensity <nivel>: Fijar de 0 (ligero) a 9 (probar todas las sondas)
--version-light: Limitar a las sondas más probables (intensidad 2)
--version-all: Utilizar todas las sondas (intensidad 9)
--version-trace: Presentar actividad detallada del análisis (para depurar)

DETECCIÓN DE SISTEMA OPERATIVO
-O: Activar la detección de sistema operativo (SO)
--osscan-limit: Limitar la detección de SO a objetivos prometedores
--osscan-guess: Adivinar el SO de la forma más agresiva


TEMPORIZADO Y RENDIMIENTO:
-T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos)
--min-hostgroup/max-hostgroup <tamaño>: Paralelizar los sondeos
--min-parallelism/max-parallelism <msegs>: Paralelización de sondeos
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msegs>: Indica
el tiempo de ida y vuelta de la sonda
--max-retries <reintentos>: Limita el número máximo de retransmisiones de las
sondas de análisis de puertos
--host-timeout <msegs>: Abandonar un objetivo pasado este tiempo
--scan-delay/--max-scan-delay <msegs>: Ajusta el retraso entre sondas

EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS: (no hace magia, pero es muy util)
-f; --mtu <valor>: fragmentar paquetes (opc. con el MTU indicado)
-D <señuelo1,señuelo2[,ME],...>: Disimular el análisis con señuelos
N. del T.: «ME» es «YO» mismo.
-S <Dirección_IP>: Falsificar la dirección IP origen
-e <interfaz>: Utilizar la interfaz indicada
-g/--source-port <numpuerto>: Utilizar el número de puerto dado
--data-length <num>: Agregar datos al azar a los paquetes enviados
--ttl <val>: Fijar el valor del campo time-to-live (TTL) de IP
--spoof-mac <dirección mac/prefijo/nombre de fabricante>: Falsificar la dirección MAC
--badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa

SALIDA:
-oN/-oX/-oS/-oG <file>: Guardar el sondeo en formato normal, XML,
s|<rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N. del T.),
respectivamente, al archivo indicado.
-oA <nombre_base>: Guardar en los tres formatos principales al mismo tiempo
-v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto)
-d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9)
--packet-trace: Mostrar todos los paquetes enviados y recibidos
--iflist: Mostrar interfaces y rutas (para depurar)
--append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o.
--resume <archivo>: Retomar un análisis abortado/detenido
--stylesheet <ruta/URL>: Convertir la salida XML a HTML según la hoja de estilo
XSL indicada
--webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable
--no_stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL

MISCELÁNEO:
-6: Habilitar análisis IPv6
-A: Habilita la detección de SO y de versión
--datadir <nombreDir>: Indicar la ubicación de los archivos de datos Nmap
personalizados.
--send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP
"crudos"
--privileged: Asumir que el usuario tiene todos los privilegios
-V: Muestra el número de versión
-h: Muestra esta página resumen de la ayuda.

Nmap: escaneo de redes y hosts

Ejemplos:

Escaneo Convencional


nmap -sP 192.168.1.0/24

Esto escaneará las 255 direcciones de la red 192.168.1.0 Envia un ping (ICMP echo request) y un paquete TCP ACK al puerto 80. Si el destino contesta con otro ping o con un paquete TCP RST significa que está operativo.

Escaneo en función de los paquetes

sólo el ping:
nmap -PE 192.168.1.0/24


sólo el paquete ACK dirigiéndolo a un puerto determinado, p. ej. el 20
nmap -PA20 192.168.1.0/24


paquetes SYN al puerto 20
nmap -PS20 192.168.1.0/24


paquetes UDP al puerto 20
nmap -PU20 192.168.1.0/24


paquetes timestamp
nmap -PP 192.168.1.0/24


paquetes netmask request
nmap -PM 192.168.1.0/24


paquetes null
nmap -sN 192.168.1.100


paquetes Xmas
 nmap -sX 192.168.1.100 

host

Detección de versiones de Servicios y Sistema Operativo:

Detectar el sistema operativo:
nmap -O 192.168.1.100


Detectar el SO y las versiones de software que estan escuchando en los puertos especificados
nmap -sV -O -p 22,25,3306 192.168.1.100

Detectar el SO y las versiones de los servicios corriendo, pero con escaneo sigiloso:
nmap -sS -P0 -sV -O 192.158.1.100

scan

Maneras interesantes de usar nmap:

Listar servidores con un puerto especifico abierto
nmap -sT -p 80 -oG – 192.168.1.* | grep open


Encontrar IP’s no usadas en una subnet
nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp


Escanear red en busca de AP falsos

nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8




usar direcciónes IP como carnada mientras se escanea para no ser detectado (la victima creerá que esta siendo escaneada por varias máquinas)
nmap -sS 192.168.1.100 -D 192.168.1.55,192.168.1.54,192.168.1.34
(lo que está después de la -D son las IP's a usar como carnada, que por cierto, deben estar activas)


Suplantar una dirección IP durante el escaneo:
nmap -e <interfaz> -S <IP a suplantar> -PN <IP objetivo>
(la IP a suplantar debe estar activa)


Listar los registros DNS inversos de una subred
nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘
Este comando hace un reverse DNS lookup en una subred, se crea una lista con las direcciones IP de los registros PTR en la subred indicada. Se puede insertar la subred en notación CDIR (ejemplo: /24 para la Clase C). Puedes agregar “-dns-servers x.x.x.x” después del parámetro “-sL” si quieres realizar el listado sobre un servidor DNS especifico.

spoofing


Usando Nmap junto con Metasploit

Se puede usar Nmap junto con Metasploit framework para realizar un ataque automatizado conocido como autopwn:


 
       =[ metasploit v3.7.0-release [core:3.7 api:1.0]
+ -- --=[ 684 exploits - 355 auxiliary
+ -- --=[ 217 payloads - 27 encoders - 8 nops

msf > db_create
[*] Creating a new database instance...
[*] Successfully connected to the database
[*] File: /home/jorgepastor66/.msf3/sqlite3.db
msf > db_connect
[*] Successfully connected to the database
[*] File: /home/jorgepastor66/.msf3/sqlite3.db
msf > db_nmap -p 445 -sS 10.12.1-2.0-255


con esto guarda los resultados en una base de datos y luego se usa el siguiente comando:

 msf> db_autopwn -p -e -b 

entonces se iniciará la función autopwn, que lanza todos los exploits disponibles a los puertos de los hosts escaneados en nmap hasta que consigue vulnerarlos.

nmap

Referencias:
http://nmap.org/man/es/man-briefoptions.html
http://foro.elhacker.net/hacking_basico/nmap_metasploit_pasar_resultado_de_escaneo_de_nmap_al_msf-t279852.0.html
http://www.thewilfamily.com/hacking/nmap-a-fondo-escaneo-de-redes-y-hosts
http://foro.elhacker.net/hacking_basico/maneras_interesantes_de_usar_nmap-t314304.0.html;new

Nmap: escaneo de redes y hosts