Este documento presenta Nmap, un popular escáner de puertos y herramienta de descubrimiento de red de código abierto. Explica las técnicas utilizadas por Nmap para descubrir equipos en línea, escanear puertos, identificar versiones de servicios y sistemas operativos, y optimizar su velocidad y ocultación. El documento también discute cuestiones éticas relacionadas con el uso de Nmap y proporciona detalles sobre su licencia, instalación y versiones actuales.
4. Software libre con 12 años
1-sep-97: sin versión, sólo para GNU/Linux,
●
creada por Gordon “Fyodor” Lyon
Feb-04: v3.50 denegada a SCO Caldera por no
●
adhesión a la GPL. Le obliga a rehacer la ISO.
Dic-06: v4.21ALPHA1 NSE
●
Ago-08: v4.68 presentada en la Blackhat
●
Defcon
Mar-09: v4.85BETA7 Conficker
●
5. Software libre con 12 años
Nuevas contribuciones:
●
Funcionalidades, algoritmos, huellas
●
Google SoC: 2005, 2006, 2007, 2008
●
6. Software libre con 12 años
Películas:
●
The Matrix Reloaded (may-03),...
●
Otras: 13 Game of death, The listening, ...
●
7. Usos
Descubrimiento
Resolución inversa
de equipos online
de nombres
Resolución de nombres:
●Servidores DNS preestablecidos
(resolv.conf)
Información de estado
●Otros servidores DNS
de puertos tcp/udp, etc. ●S.O. (hosts,nsswitch.conf)
Trazado de rutas
Reconoc. de versiones
servicios de red y S.O.
ncat, ndiff
Detección de agujeros
de seg. y malware
En otros software's
Nessus, metasploit,...
8. Cuestiones éticas y legales
No hay una respuesta sencilla
●
En general no problemático, pero a veces sí
●
(políticas, dañar equipos)
9. Cuestiones éticas y legales
Consejos:
●
Focalizar el objetivo: nº IPs y puertos, timing
●
Respetar las políticas establecidas, si existen
●
Avisar de antemano
●
O... stealthiness
●
10. Versión actual: 4.85BETA7
Licencia GPL v2
●
Corre en GNU/linux, *BSD, Windows, Mac OS
●
X,...
1760 huellas de S.O.
●
4805 huellas de servicios tcp/udp
●
55 scripts NSE y 26 librerías LUA
●
Ejecutables: ncat, ndiff, nmap, zenmap
●
Otros ficheros: 140 protocolos, 2124 servicios
●
tcp/udp, 8406 fabricantes de MACs, Servicios
RPC
11. Instalación
debian 5.0 lenny: 4.62-1
ubuntu 9.04 jaunty: 4.76
tar.bz2 (v4.85BETA7: 6.2 Mb)
./configure && make && sudo make install
(abierto a lectura desde dic-06)
12. Descubrimiento equipos
online
Técnicas:
●
(ping [-b] xxx.yyy.zzz[.255])
●
Ping ICMP echo request, timestamp,
●
netmask
TCP SYN, mejor contra FW stateful
●
TCP ACK, mejor contra FW stateless
●
Ping UDP (por defecto a udp/31338)
●
Otros protocolos IP: ICMP, IGMP, IP-in-IP
●
ARP scan. Más rápido en LANs
●
13. Descubrimiento equipos
online
Por defecto:
●
Superusuario: ICMP y ACK a tcp/80
●
No superusuario: SYN a tcp/80 a través del
●
stack TCP/IP del S.O. (connect syscall). Más
lenta.
Si se está en red local: ARP
●
A veces por defecto no se descubre
●
Interesante nombres resueltos
●
Entidad versus Proveedor servicio
●
14. Escaneo de puertos
Según RFCs e implement. stacks protocolos.
Ej tcp:
closed
open
SYN
SYN
RST
SYN/ACK
RST
filtered
SYN
SYN/ACK
ACK SYN
Datos SYN
RST SYN
15. Escaneo de puertos
nmap define 6 estados
open closed filtered (*)
closed|filtered open|filtered unfiltered
UDP,
IP,
FIN,
ACK Idle
NULL,
Xmas
(*)No depende sólo
del puerto, también
del tipo de prueba
16. Escaneo de puertos
Detección
Motor Motores
Sin nmap versión del
ultra_scan propios
servicio
Varios TCP,UDP (ver tabla) TCP idle
netstat en ● ●
●
●TCP con flags ad-hoc ●FTP bounce
cada equipo
●TCP idle
●nc -z
●IP protocol
TCP
TCP
NULL, TCP TCP TCP
SYN, UDP
FIN, ACK Window Maimon
Connect
Xmas
TCP SYN/ACK O
UDP O
ICMP error (tipo 3, cód. 3) F C F F F F
ICMP error (tipo 3, cód. 1, 2, 9, 10, 13) F F F F F F
(nada) F O|F O|F F F O|F
TCP RST non-zero window field C C U O C
TCP RST zero window field C C U C C
17. Escaneo de puertos
TCP Connect: no requiere privilegios, pero
●
menos eficiente que SYN (gestión por S.O. y
no nmap)
UDP: más lento que TCP. A veces funciona
●
enviando contenido adecuado
TCP ACK: apto para diferenciar firewall
●
statefull/stateless
18. Escaneo de puertos
Menos eficientes y más dependientes de S.O.:
●
TCP FIN, NULL, Xmas: aptos para algunos
●
firewall stateless y filtros de paquetes
TCP Window: apto para diferenciar firewall
●
statefull/stateless.
20. Escaneo de puertos
Router/Firewall reenviando a otros equipos:
●
#PUERTOS=”P_FW1,P_FW2,...,P_REENV1,P_REENV2,...”
#nmap -PN -n -p $PUERTOS --packet-trace IPDESTINO | grep “ SA “
RCVD (0.3800s) TCP IPDESTINO:P_REENV1 > IPORIGEN:57233 SA ttl=55 …
RCVD (0.3800s) TCP IPDESTINO:P_REENV2 > IPORIGEN:57233 SA ttl=55 …
...
RCVD (0.3800s) TCP IPDESTINO:P_FW1 > IPORIGEN:57233 SA ttl=56 …
RCVD (0.3800s) TCP IPDESTINO:P_FW2 > IPORIGEN:57233 SA ttl=56 …
...
21. Fingerprinting de servicios
Resultado: servicio, aplicación y versión
●
Soporta SSL (mediante OpenSSL) y IPv6
●
Caso de servicio SunRPC: se lanza un ataque
●
por fuerza bruta para encontrar programa,
nombre y versión.
22. Fingerprinting de servicios
Técnica: Gramática de pruebas extensible:
●
Probe: Nombre de la prueba y bytes a enviar
●
ports, sslports: puertos para los que enviar
●
un probe
match, softmatch: patrón a comparar y
●
servicio/versión asociada
Otras: Exclude, totalwaitms, rarity, fallback
●
Fichero nmap-service-probes
●
23. Fingerprinting de S.O.
Resultado:
●
Tipo de dispositivo
●
Detalles: versión, fabricante, MAC, hostname
●
Uptime estimado
●
Distancia de red
●
Predicción de secuencia TCP e IP
●
24. Fingerprinting de S.O.
grep ^Class nmap-os-db | cut -f 4 -d | | sort -u
general purpose telecom-misc
web server PBX
load balancer VoIP adapter
proxy server VoIP gateway
print server VoIP phone
remote management phone
terminal server PDA
router game console
switch media device
bridge power-device
broadband router storage-misc
WAP specialized
encryption accelerator printer
firewall terminal
security-misc webcam
25. Fingerprinting de S.O.
Técnica:
●
Interpretación de respuestas a 13 pruebas
●
(ECN, IE, OPS, SEQ, T1,..., T7, U1, WIN)
mediante envío de 2 paq. ICMP, 13 paq.
TCP, 1 paq. UDP a puertos abiertos /
cerrados.
Ej. ttl por defecto:
●
/proc/sys/net/ipv4/ip_default_ttl
Fichero nmap-os-db
●
26. Fingerprinting de S.O.
Otras técnicas no empleadas:
●
Fingerprinting pasivo: nmap es activo
●
Exploits de versiones específicas
●
Tiempos de retransmisión de paquetes: lento
●
Fragmentación IP: algunos fw
●
(de)fragmentan
Qué puertos están abiertos: poco fiable
●
27. Parámetros de calidad
Fiabilidad:
●
Cantidad de información
●
No falsos positivos/negativos
●
Velocidad: Tiempo / Cantidad de info
●
Rendimiento en contextos no favorables (ej.
●
firewalls)
Ocultación o discreción (stealthiness)
●
Recursos (RAM, ancho de banda)
●
28. Fiabilidad
¡No siempre acierta!
●
Escanear más puertos
●
Escanear de forma más agresiva
●
Escanear desde otra ubicación
●
29. Velocidad
Paquetes y tiempos (1)
●
Nº pruebas / segundo (min/máx).
●
Paralelismo:
●
Nº hosts (mín/máx) en paralelo
–
– Nº pruebas simultáneas entre todos los
hosts (mín/máx).
– Múltiples instancias de nmap no siempre
aconsejable
30. Velocidad
Paquetes y tiempos (2)
●
Timeouts: estimables ej. con hping2
●
RTT (mín/máx): tiempo de espera a una
–
prueba
– Por host: tiempo máximo para descartarlo
Máximo nº de reintentos para retransmitir un
●
paquete
Retardo para envío de paquetes a un host
●
31. Velocidad
No solicitar servicios innecesarios:
●
Para ver los equipos online no es necesaria
●
la fase de escaneo de puertos
Resolución de nombres
●
Detección de versiones de S.O. y servicios
●
Trazado de rutas
●
Qué puertos escanear: los N más típicos (por
●
defecto 1000), el objetivo,...
Intensidad de pruebas de detección de versión
●
32. Velocidad
Escanear desde puntos con velocidad rápida al
●
objetivo:
Desde la red local o detrás del firewall
●
Desde puntos adecuados ej. en conexiones
●
internacionales
Hacer nmaps por fases: 1) detección rápida de
●
hosts online, 2) escaneo de puertos,...
Tiempo estimado a priori/durante
●
33. Ocultación
Características de paquetes: tamaño no nulo (--data-
●
length), TTL, fragmentación, MTU, opciones de
paquetes IP, checksum TCP/UDP inválido,
enrutamiento en origen
Envío de paquetes intermedios con otras IPs origen
●
(“señuelos”)
Spoofing de MAC, IP, puerto origen
●
Proxies abiertos
●
Orden aleatorio de hosts y puertos destinos
●
Nº de hosts, nº de puertos y frecuencia de envío
●
Técnica o tipo de probe
●
35. Denfensas contra nmap
Cerrar puertos
●
drop vs reject
●
IDSs/ Seguimiento de logs (scanlogd,...)
●
Servicios en puertos no típicos
●
Port knocking
●
Honeypots / honeynets
●
OS Spoofing
●
Retardos en respuestas (“tar pitting”)
●
Bloqueo de puertos
●
36. Formatos de salida
Fichero:
●
Normal
●
XML
●
Grepable
●
“Hack3r”
●
Se puede continuar uno ya comenzado
●
37. NSE
Nmap Scripting Engine
●
Por qué:
●
Detección más sofisticada de S.O. y
●
servicios, ej. skype v2
Deteccion de vulnerabilidades y malware
●
Scripts clasificados en categorías
●
38. NSE
NSE = intérprete LUA + biblioteca NSE
●
LUA:
●
Razones: diseñado para ser embebido de
●
forma eficiente, lic. MIT, paralelizable.
Lenguaje interpretado.
●
Utilizado en wireshark/tshark, snort,
●
OpenWRT, VLC, lighttpd, juegos,...
39. NSE
Librería NSE: conexión Nmap y LUA:
●
Paso de parámetros
●
API de red (connect I/O, raw packet I/O)
●
Ejecución de scripts en paralelo (thread
●
mutexes)
Gestión de Excepciones
●
Registro de estado
●
40. NSE
Ejemplo: showSMTPVersion.nse
●
--- Queries the version of an SMTP server.
--@output
-- 25/tcp open smtpn
-- |_ SMTP version: 220 mail.foo.com mx-2.bar.com ESMTP Exim 4.64n
id = quot;SMTP versionquot;
description = quot;Simple script which queries and prints the version of an SMTP server.quot;
author = quot;Diman Todorov <diman.todorov@gmail.com>quot;
license = quot;Same as Nmap--See http://nmap.org/book/man-legal.htmlquot;
categories = {quot;demoquot;}
require quot;commquot;
require quot;shortportquot;
portrule = shortport.port_or_service(25, quot;smtpquot;)
action = function(host, port)
local status, result = comm.get_banner(host, port, {lines=1})
if not status then
return
end
return (string.gsub(result, quot;nquot;, quot;quot;))
end
42. zenmap
GUI GTK. Otras Qt: knmap, nmapsi4
●
Qué aporta:
●
Ayuda en introducción de opciones
●
Usabilidad en presentación de resultados,
●
especialmente representación de topología