Publicado el 12 de Octubre del 2020
720 visualizaciones desde el 12 de Octubre del 2020
741,6 KB
46 paginas
Creado hace 13a (12/12/2011)
www.securityartwork.es
www.csirtcv.gva.es
www.s2grupo.es
NMAP
José Luis Chica Uribe
Técnico en seguridad
CSIRT-cv
Índice
• Indroducción
• Descubrimiento de equipos y puertos
• Detectando la versión del SSOO y del servicio
• Detección y evasión de firewalls e IDS
• Nmap Scripting Engine
• Consejos de optimización del rendimiento
• Contramedidas contra Nmap
2
Introducción
• Herramienta de exploración y auditoría
• Escanea equipos y redes
• Primera versión 1997 por Fyodor
• Gratuita, abierta, GPL
• Multiplataforma
• Documentada
• Respaldada por una gran comunidad
3
Como funciona?
• Hace un barrido, enviando sondas
• En función de las respuestas, reconoce
equipos y servicios activos.
• Aprovecha ambigüedades en protocolos
de red para adivinar la versión del SSOO
• Necesario conocimientos básicos del
protocolo TCP para entender y aprovechar
al máximo el funcionamiento de Nmap
4
TCP
SYN
PETICIÓN DEL CLIENTE PARA CONECTARSE A UN PUERTO
5
TCP
SYN
SYN/ACK
SI ESTÁ DISPONIBLE,
RESPUESTA AFIRMATIVA DEL SERVIDOR
6
TCP
SYN
SYN/ACK
ACK
CONFIRMACIÓN DEL CLIENTE,
COMPLETANDO LA CONEXIÓN
7
TCP
Un paquete TCP entra a un bar y dice:
Quiero una cerveza.
El camarero le contesta:
Una cerveza quieres?
El paquete TCP responde:
Si, una cerveza.
8
Un primer ejemplo
# nmap T4 192.168.111.222
Not shown: 995 filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp closed ssh
25/tcp open smtp
80/tcp open http
8080/tcp open httpproxy
Nmap done: 1 IP address (1 host up) scanned in 12.69
seconds
9
Explicación estado puertos
• ABIERTO: el puerto es alcanzable y hay
alguna aplicación a la escucha.
• CERRADO: el puerto es alcanzable, pero
no hay ninguna aplicación a la escucha.
• FILTRADO: no hay respuesta.
Seguramente hay un firewall en medio.
10
Enumeración de equipos
Barrido con pings
# nmap sP 192.168.1.0/24
Si el tráfico ICMP está filtrado, se puede
hacer barrido con ping TCP
# nmap sP PS80,21,22,25 192.168.1.0/24
11
Otros ejemplos
Escaneo a puertos específicos p <nums>
# nmap T4 p21,22,25,80,137,8080 192.168.1.0/24
Escaneo rápido, 100 puertos más usuales F
# nmap T4 F 192.168.1.0/24
12
Detección del SSOO
# nmap T4 O 10.10.10.30
Not shown: 997 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbiosssn
445/tcp open microsoftds
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 SP2, Server 2008,
or Windows 7 Ultimate
13
Detección de versión
# nmap T4 sV 10.10.10.30
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.2.16 (Debian)
3333/tcp open ssh OpenSSH 5.5p1 Debian
6+squeeze1 (protocol 2.0)
14
Todo en uno
# nmap T4 A 10.10.10.30
Modificador A
– Detección de versión sV
– Detección de SSOO O
– Uso de scripts sC
– Uso de traceroute traceroute
15
Escaneo a UDP
# nmap T4 sU F 10.10.10.20
Not shown: 997 closed ports
PORT STATE SERVICE
67/udp open|filtered dhcps
68/udp open|filtered dhcpc
135/udp open|filtered msrpc
- En UDP no podemos determinar si un puerto
está abierto o filtrado (por eso tarda tanto)
Interesante usar sV para reconocer servicio
y F (hay pocos puertos comunes en UDP)
16
AUDITANDO FIREWALLS
• Nmap como herramienta de análisis de
configuración de firewalls
• Detección de la política por defecto.
– DEFAULT ACCEPT
– DEFAULT DROP
• Detección del tipo de firewall
– STATELESS
– STATEFULL
• Evasión de firewalls e IDS
17
AUDITANDO FIREWALLS
POLITICA POR DEFECTO
Basado en el estado de los puertos “no
mostrados” en un escaneo
– Cerrados: accept by default
– Filtrados: deny by default
18
AUDITANDO FIREWALLS
FIREWALL ACCEPT POR DEFECTO
#nmap T4 ejemplo.com
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbiosssn
445/tcp filtered microsoftds
Respuesta activa RST de 995 puertos
19
AUDITANDO FIREWALLS
FIREWALL DROP POR DEFECTO
#nmap T4 asdf.com
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp closed smtp
80/tcp open http
113/tcp closed auth
Sin respuesta de 996 puertos
20
AUDITANDO FIREWALLS
DETECCIÓN DEL TIPO DE FIREWALL
• Statefull: capaz de controlar las sesiones TCP
• Se lanza Nmap normal (SYN scan)
– Se lanza otro escaneo “exótico”
• ACK scan
• Xmas scan
• FIN scan
• Si el segundo scan no muestra resultado, es un
firewall statefull
21
AUDITANDO FIREWALLS
FIREWALL STATEFULL
#nmap sA T4 asdf.com
Not shown: 1000 filtered ports
Firewall detecta paquetes ACK sin establecer
conexión previa y los dropea
22
AUDITANDO FIREWALLS
FIREWALL SIN ESTADO
#nmap sA T4 asdf.com
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp unfiltered ssh
25/tcp unfiltered smtp
80/tcp unfiltered http
113/tcp unfiltered auth
Sondas ACK han burlado el firewall
23
EVASIÓN DE FIREWALLS
Manipulación del puerto de origen
• Puertos que el equipo considera de “confianza”
• Permiten todo el tráfico entrante
• Aún teniendo reglas que lo bloqueen implícitamente!!!
Ej:
• W2K y XP permitía todo tráfico TCP y UDP desde el
puerto 88 (Kerberos)
• OS X TIGER permitía tráfico desde el puerto 67
(DHCP) y 5353 (Zeroconf)
24
EVASIÓN DE FIREWALLS
Escaneo IPv6
• Servicios que escuchan IPv6
• No se tienen en cuenta
• Electrónica que aún no soporta reglas de
filtrado IPv6
• Posibilidad de llegar a servicios que están
filtrados solo en IPv4
25
EVASIÓN DE FIREWALLS
#nmap -T4 asdf.com
PORT STATE SERVICE
22/tcp open ssh
25/tcp filtered smtp
80/tcp open http
113/tcp closed auth
#nmap -T4 -6 asdf.com
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
113/tcp closed auth
26
EVASIÓN DE FIREWALLS
Fragmentación IP
• Firewalls que no tratan paquetes
fragmentados
• Podrían dejarlos pasar todos los
fragmentos (o ignorarlos)
• Modificador f <numbytes>
• Se puede usar también –mtu
27
EVASIÓN DE IDS
BARRIDOS LEEEEENTOS
• Ralentizar los envíos de sondas
• Evitar detección por reglas de X paquetes en Y
segundos.
• Modificador T0: envío de sonda por cada 300sg
_zZzZzz
• Modificador T1: envío de sonda por cada 15sg
28
NMAP SCRIPTING ENGINE
• Herramienta muy potente y flexible
• Permite al usuario escribir scripts para
automatizar tareas
• Basado en lenguaje LUA
• Permite:
– Detección de vulnerabilidades
– Explotación de vulnerabilidades
– Etcetcetc........
29
NMAP SCRIPTING ENGINE
# nmap sC p139 T4 1.2.3.4
Starting Nmap ( http://nmap.org )
Nmap scan report for flog (1.2.3.4)
PORT STATE SERVICE
139/tcp open netbiosssn
Host script results:
| smbosdiscovery: Unix
| LAN Manager: Samba 3.0.310.fc8
|_Name: WORKGROUP
Nmap done: 1 IP address scanned in 0.33 seconds
30
NMAP SCRIPTING ENGINE
• Actualmente:
– 284 scripts
– 74 librerias
• Mantenidos activamente por comunidad
en lista de correo nmapdev
• Categorias:
– Bruteforce, version, fuzzing, DoS
http://nmap.org/nsedoc/
31
NMAP SCRIPTING ENGINE
• uso de un script especifico
script <nombre/categoria>
• si necesita algún argumento
scriptargs
32
OPTIMIZACIÓN NMAP
• Capaz de escanear redes MUY extensas y
heterogeneas
• No es lo mismo escanear una red lejana
que una LAN
• Ni con firewalls que sin ellos
• Los tiempos de respuesta son diferentes
33
OPTIMIZACIÓN NMAP
• Necesidad de utilizar configuración personalizada
• Plantillas de tiempo: T0...T5
– T0,T1 MUY lento. Evasión de IDS
– T2,T3, lento. Redes muy saturadas o inferiores a
modems 56Kb
– T4,T5 rápido, apaña para redes WAN o LAN
• (Por defecto T3)
34
OPTIMIZACIÓN NMAP
Pero a veces no es suficiente
–Perfiles demasiado genéricos
–Se puede exprimir más!
–Uso de modificadores para
configuración avanzada de tiempo
35
OPTIMIZACIÓN NMAP
minhostgroup, maxhostgroup
Agrupa las IPs y las escanea en paralelo
Interesante usarlo en escaneos UDP o con
pocos puertos por host
36
OPTIMIZACIÓN NMAP
maxrtttimeout,initialrtttimeout
Ajusta el tiempo de rtt (round trip time)
Se puede aproximar con ping/hping3
5 packets transmitted, 5 received, time 4005ms
rtt min/avg/max/mdev=210.736/215.089/221.475/4.063
37
OPTIMIZACIÓN NMAP
minparallelism, maxparalleism
Número de sondas pendientes de respuesta
que es capaz de manejar.
Nmap calcula este valor de forma dinámica
Si se están perdiendo paquetes, ralentiza el
envío de sondas y reduce el número de
respuestas pendientes, para no perder precisión
38
OPTIMIZACIÓN NMAP
TABLA DE TIEMPOS
T3
100
T2
100
T0
min-rtt-timeout 100
max-rtt-timeout 300,000 15,000 10,000 10,000 1,250
Initialrtt-timeout 300,000 15,000 1,000
max-retries
host-timeout
min-parallelism
max-parallelism 1
min-hostgroup
max-hostgroup
1,000
10
10
0
0
Dinámico
1
Dinámico
Dinámico
T4
100
500
6
0
Dinámico
T5
50
300
250
2
900,000
T1
100
10
0
1
10
0
39
OPTIMIZACIÓN NMAP
nmap T4 1.2.3.0/24
# Nmap done at Tue Nov 29 14:45:36 2011 256 IP
addresses (229 hosts up) scanned in 3475.76 seconds
nmap T4 initialrtttimeout 250 maxrtttimeout
500 maxretries 2 minparallelism 70 1.2.3.0/24
# Nmap done at Wed Nov 30 11:30:57 2011 256 IP
addresses (229 hosts up) scanned in 1052.46 seconds
40
OPTIMIZACIÓN NMAP
SCAN MLP EDITION
nmap T4 217.124.152.0/22
# Nmap done at Wed Dec 7 12:50:22 2011 1024 IP
addresses (339 hosts up) scanned in 2227.96 seconds
nmap T4 initialrtttimeout 2 maxrtttimeout 5
maxretries 2 minparallelism 70 217.124.152.0/22
# Nmap done at Wed Dec 7 13:33:08 2011 1024 IP
addresses (395 hosts up) scanned in 875.07 second
41
DEFENSA CONTRA NMAP
UN BUEN ATAQUE!
• Escanea tu red
• Cierra puertos innecesarios
• Busca vulnerabilidades y arréglalas!
• Interesante programar escaneos periódicos
y comparar resultados con Ndiff
42
DEFENSA
Comentarios de: Nmap (0)
No hay comentarios