Actualizado el 21 de Marzo del 2018 (Publicado el 27 de Octubre del 2017)
851 visualizaciones desde el 27 de Octubre del 2017
151,1 KB
13 paginas
Creado hace 15a (27/10/2009)
NMAP
David Montero *
27 de octubre de 2009
*Si quieres hacer algún comentario o correción, por favor envíame un correo
1
Índice
1. Presentación
2. Enumeración IPs
3. Host Discovery
4. Escaneo Puertos
5. Timing
6. Detección versiones
7. Detección SO
8. NSE
9. Evitar FW/IDS
10.Salida (output)
11.Cosas curiosas
12.Herramientas complementarias
13.URLs
2
3
3
3
5
7
8
9
10
11
12
13
13
13
1. Presentación
Nmap (Network Mapper ): escáner de puertos con estado que se lanzó en Noviembre de 1997. Tiene más
de 100 opciones en CLI.
2. Enumeración IPs
-sL: enumera IPs del rango y hace consultas DNS inversas.
-n: si no queremos hacer consultas DNS inversas.
# nmap -n -sL 192.168.1.0/24
# nmap -n -sL 192.168.1.0/24 exclude 192.168.1.0,192.168.1.255
-iR: genera IPs aleatorias (excluye privadas, multicast, ...)
# nmap -n -sL -iR 0
3. Host Discovery
host discovery == ping scan == sweep ping
El objetivo es descubrir máquinas activas y se hace uno por defecto seguido de un escaneo.
-sP: sólo host discovery (no escaneo):
root: ICMP echo request | ACK 80
# nmap -n -sP scanme.nmap.org packet-trace reason
usuario: connect TCP 80
# nmap -n -sP scanme.nmap.org packet-trace reason
-PN: sólo escaneo o lo que se especique (no host discovery)
3
Formatos soportados por Nmap: IPv4-6, nombre de dominio, CIDR, rangos:
# nmap -sP 192.168.0-255.1-254
Tipos de host discovery:
-PR: se utiliza por defecto en LANs.
Petición ARP (ignora caché ARP del SO).
# nmap -n -sP -PR send-ip 192.168.0.254 packet-trace reason
# nmap -n -sP -PR send-ip 192.168.0.254 packet-trace reason
-PS:
SYN-ACK, RST : máquina activa
root: SYN 80 (por defecto)
usuario: connect TCP 80 (por defecto)
# nmap -n -sP -PS110-143,443 scanme.nmap.org packet-trace reason
-PA:
RST : máquina activa
root: ACK 80 (por defecto)
usuario: connect TCP 80 (por defecto)
# nmap -n -sP -PA110-143,443 scanme.nmap.org packet-trace reason
Nota: para detectar FW sin estado.
-PU: UDP 31338 (por defecto)
-abierto|ltrado: máquina no activa?
-ICMP unreachable: máquina online
4
-PE: ICMP echo request.
-PP: ICMP timestamp.
-PM: ICMP address mask reply.
-PO: ICMP, IGMP y IP -IP.
Ejemplo completo:
# nmap -n -sP -PS22 -PA80,443 -PU10000-10010 -PE -PO scanme.nmap.org
-sP == -PE -PA (modo privilegiado)
4. Escaneo Puertos
scanme.nmap.org: máquina para lanzar escaneos, _no exploits ni DoS _
Existen 65536 puertos (puerto 0):
# nmap -n -PN -p- scanme.nmap.org
# nmap -n -PN -p0- scanme.nmap.org
# nmap -n -PN -F scanme.nmap.org
# nmap -n -PN top-ports 10 scanme.nmap.org packet-trace
Nota: por defecto se escanean los 1000 puertos más relevantes.
Estado puertos Nmap:
open: servicio escuchando.
close: servicio no escuchando.
ltered: drop o ICMP unreachable.
5
unltered: abierto|cerrado? [ACK scan]
open|ltered: [UDP, IP protocol, FIN, NULL y Xmas scan]
close|ltered: [Idle scan]
Tipos escaneo:
-sS: SYN
abierto: SYN-ACK, y el SO responde con RST.
cerrado: RST
ltrado: FW |ICMP unreachable
-sT: TCP connect (no son necesarios privilegios)
abierto: SYN-ACK, ACK ___ RST (mediante SO)
-sU: lento.
abierto: respuesta.
abierto|ltrado: no respuesta (envía un paquete vacío 1).
cerrado: ICMP unreachable.
-sA: FW con o sin estado?
abierto|cerrado (unltered ): RST
ltrado: ICMP unreachable | no respuesta.
-sF: FIN ag.
-sN: NULL ag.
-sX: FIN, PSH y URG ags
útiles para la detección de FW sin estado.
según RFC, los paquetes que no contiene SYN, RST o ACK :
cerrado: contestan RST
1Probar con escaneo de versiones o hping para detectar diferencias entre la cantidad de saltos (problema si el FW está en la
propia máquina).
6
abierto|ltrado: no contestan.
ltrado: ICMP unreachable.
-sW: == ACK scan, pero diferencia entre abierto y cerrado:
abierto: RST (ventana != 0)
cerrado: RST (ventana == 0)
ltrado: ICMP unreachable | no respuesta.
Nota: los valores de la ventana dependen de la implementación del SO, por lo tanto no se garan-
tiza la abilidad del escaneo.
-sM: FIN-ACK
abierto|ltrado: no respuesta.
cerrado: RST.
ltrado: ICMP unreachable.
-sI zombie: atacante no detectable.
-sO: no escanea puertos, sino protocolos utilizados [TCP, ICMP, IGMP, ...]
abierto: respuesta.
cerrado: ICMP unreachable (3,2).
-b FTP_bounce (no son necesarios privilegios)
scanags: ags personalizados
# nmap -n -PN -p22-25 scanags URGACKPSH -sS scanme.nmap.org
Ejemplo escaneo TCP-UDP :
# nmap -n -PN -sSU -pT:22-25,U:10000 scanme.nmap.org reason
5. Timing
Monitorización dinámica del timing (pruebas rtt, rate-limiting del FW, abilidad de la red, ...) y adapta
la velocidad del escaneo.
7
Optimización:
-T0 - -T5
min-rtt-timeout, max-rtt-timeout, initial-rtt-timeout
host-timeout
min-rate, max-rate
max-retries
min-host-group, max-hostgroup
min-parallelism, max-parallelism
scan-delay, max-scan-delay
6. Detección versiones
Averigua el servicio detrás de un puerto, y también el SO y tipo de dispositivo:
# nmap -n -PN -sV scanme.nmap.org
# nmap -n -PN -A scanme.nmap.org
-A == detecta versiones y SO, ejecuta scripts NSE y traceroute.
Características:
identica el nombre de la aplicación y el número de versión.
servicio con SSL: utiliza OpenSSL.
servicio SunRPC: ejecuta un script RPC de fuerza bruta.
Mediante rarity 2 indicamos si sólo queremos pruebas que suelen devolver datos o incluir más:
version-intensity <0-9>
version-light: 2
2Es un número.
8
version-all: 9
Post-processors: para hacer pruebas más intrusivas
scripts NSE
RCP grinding (-sR)
SSL tunneling
Desde el punto de vista del administrador, se puede utilizar para buscar servicios con versiones vulnerables.
7. Detección SO
Escaneo activo para determinar el SO (p0f en cambio es pasivo). Envía 15 paquetes TCP, UDP e ICMP
a puertos abiertos y cerrados:
# nmap -O scanme.nmap.org
# nmap -A scanme.nmap.org
# nmap -O -v scanme.nmap.org
-A == detecta versiones y SO, ejecuta scripts NSE y traceroute.
Información que muestra:
tipo de dispositivo (router, impresora, FW, consola, ...)
SO y versión
uptime
distancia
predicción de secuencia TCP (IP spoong)
generación IP ID
Nota: si se detectan diferentes SO, es posible que exista un dispositivo haciendo NAT.
9
Anar detección SO:
osscan-limit: sólo cuando hay al menos un puerto abierto y otro cerrado.
osscan-guess: más agresivo.
Escaneo más preciso (todos los puertos [menos el 0] TCP y UDP ):
# nmap -sSU -O -p- -v osscan-guess scanme.nmap.org
8. NSE
Scripts LUA (se ejecutan en paralelo) para conseguir más información sobre sistemas:
network discovery (whois, consultas SNMP, NFS/SMB/RPC )
detección de backdoors y gusanos.
explotar vulnerabilidades.
# nmap -p22,80 -sC scanme.nmap.org
# nmap -A -p22,80 scanme.nmap.org
# nmap -p22,80 -sC script <categoria|directorio|chero|all> script-args scanme.nmap.org
-A == detecta versiones y SO, ejecuta scripts NSE y traceroute.
Los scripts se agrupan en categorías:
discovery
malware
vuln
auth
default (-sC, -A)
...
10
9. Evitar FW/IDS
Averiguar reglas del FW 3:
SYN scan: se suelen eliminar los paquetes o enviar ICMP unreachable. También envían RST
suplantando al host destino.
ACK scan: no los bloquean los FW sin estado.
IP ID scan: para averiguar IPs origen que pueden pasar el FW (NFS, TCP wrappers, ...). Si se
incrementa el ID, es porque los paquetes atraviesan el FW y una máquina de la LAN contesta.
Escaneos útiles:
FIN
Maimon
Window
SYN/FIN
NULL
La manipulación de la fragmentación de paquetes por parte del FW depende de la implementación. Puede
que los deje pasar todos o sólo bloquee el primero:
# nmap -f -sS -v scanme.nmap.org
Spoong:
puerto origen: existen FW que permiten tráco entrante ltrando puerto origen (DNS, FTP )
# nmap -sS -g 53 scanme.nmap.org
MAC:
# nmap -sS spoof-mac <MAC falsa> 192.168.0.16
3Preguntar al administrador es una opción que no se contempla :)
11
En los IDS se detectan los escaneos basándose en un umbral. Con el n de evitarlo:
# nmap -sS -T paranoid scanme.nmap.org
o jugar más con el timing:
max-parallelism
min-rtt-timeout
scan-delay
Con el n de confundir la IP del atacante cuando se analicen los logs:
# nmap -sS -D
# nmap -sS -S <IP falsa> -sS scanme.nmap.org
Nota: en el IP spoong no obtenemos información resultante.
Importante: ninguna de estas técnicas es infalibe. Es conveniente comprender con mayor detalle el
funcionamiento de FW e IDS para saber su posible reacción.
10. Salida (output)
interactiva
normal (-oN ): básicamente lo mismo que interactiva pero en chero.
XML (-oX ): recomendada para trabajar con un parser XML.
grepable (-oG): lista información de un host por línea (grep, awk, cut, sed, ...)
kiddie (-oS )
normal, grepable y XML (-oA)
12
11. Cosas curiosas
implementa resolver DNS en paralelo.
implementa traceroute en paralelo:
# nmap traceroute -sP scanme.nmap.org
interacción durante ejecución escaneo.
Return: muestra % completado.
d/D: activa/desactiva debugging.
v/V: activa/desactiva verbose.
p/P: activa/desactiva packet tracing.
12. Herramientas complementarias
En esta web constan varias utilidades
herramientas comentadas en el libro sobre Nmap de Syngress
13. URLs
Blog RaDaJo
Nmap Online
13
Comentarios de: NMAP (0)
No hay comentarios