74
Exploración de redes con Nmap El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Taller: Exploración de redes con Nmap

Embed Size (px)

DESCRIPTION

Taller: Exploración de redes con Nmap. Exploración de redes. ○ Conceptos. ○ Fundamentos básicos de Nmap ○ Técnicas de descubrimiento de hosts ○ Identificación de sistemas operativos Descubrimiento de servicios. ○ Técnicas de escaneo de puertos ○ Identificación de servicios Detección de vulnerabilidades. ○ Recolección de información ○ Ataques de fuerza bruta ○ Detectando vulnerabilidades en servidores web

Citation preview

Page 1: Taller: Exploración de redes con Nmap

Exploración de redes con Nmap

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Page 2: Taller: Exploración de redes con Nmap

¿Quién soy?Repositorio personalhttps://github.com/cldrn/nmap-nse-scripts/

Google Summer of Code 2011https://code.google.com/p/google-summer-of-code-2011-nmap/

Nmap 6: Network Exploration and Security Auditing Cookbookhttp://nmap-cookbook.com

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Page 3: Taller: Exploración de redes con Nmap

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Exploración de redes.○ Conceptos. ○ Fundamentos básicos de Nmap○ Técnicas de descubrimiento de hosts ○ Identificación de sistemas operativos

Descubrimiento de servicios.○ Técnicas de escaneo de puertos○ Identificación de servicios

Detección de vulnerabilidades.○ Recolección de información○ Ataques de fuerza bruta○ Detectando vulnerabilidades en servidores web

Temario

Page 4: Taller: Exploración de redes con Nmap

Conceptos TCP/IP

Antes de continuar unos conceptos:● Conexión TCP de 3 vías● Banderas TCP/IP● Notación CIDR

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Page 5: Taller: Exploración de redes con Nmap

Conexiones TCP

Las conexiones TCP requieren iniciar una conexión para transmitir o recibir datos.Debemos entender el protocolo de enlace de tres vías.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 6: Taller: Exploración de redes con Nmap

Establecimiento de conexión TCP: Enlace de 3 vías

● Host #1 envia un paquete SYN a Host #2.● Host #2 envia SYN/ACK a host #1● Host #1 envia ACK a host #2 y se establece la

conexión.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 7: Taller: Exploración de redes con Nmap

Notación CIDR (IPv4)

● Dirección IP más sufijo:192.168.0.1/24

● Algunas equivalencias:○ /32 ==1 host == ○ /24 ==254 hosts==255.255.255.0○ /16==65,534 hosts==255.255.0.0

● En UNIX existe la herramienta ipcalc.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 8: Taller: Exploración de redes con Nmap

Notación CIDR (IPv4)

El arte de la exploración de redes Paulino Calderon [email protected]

Page 9: Taller: Exploración de redes con Nmap

Nmap● Página oficial: http://nmap.org● Nmap es una herramienta de código abierto para

exploración de redes y auditorías de seguridad.(*)● Se diseñó para analizar rápidamente grandes redes,

aunque funciona muy bien contra equipos individuales. (*)

● Esencial para pentesters y administradores de sistemas.

(*) http://nmap.org/es/

El arte de la exploración de redes Paulino Calderon [email protected]

Page 10: Taller: Exploración de redes con Nmap

Descargando e instalando Nmap

Para descargarlo desde el repositorio oficial:$svn co https://svn.nmap.org/nmap

Para instalarlo:$./configure$make#make install

El arte de la exploración de redes Paulino Calderon [email protected]

Page 11: Taller: Exploración de redes con Nmap

Dependencias

● libssl-dev● autoconf● make● g++

El arte de la exploración de redes Paulino Calderon [email protected]

Page 12: Taller: Exploración de redes con Nmap

Manteniendo tu copia al día

● Para actualizar su copia de nmap:

$svn up$make -j4#make install

El arte de la exploración de redes Paulino Calderon [email protected]

Page 13: Taller: Exploración de redes con Nmap

Práctica

Ejecute Nmap e identifique que información regresa.

$nmap <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 14: Taller: Exploración de redes con Nmap

PrácticaEjecute Nmap e identifique que información regresa. Nmap scan report for scanme.nmap.org

Host is up (0.011s latency).Not shown: 996 closed portsPORT STATE SERVICE53/tcp open domain80/tcp open http139/tcp open netbios-ssn445/tcp open microsoft-ds

El arte de la exploración de redes Paulino Calderon [email protected]

Page 15: Taller: Exploración de redes con Nmap

Escaneo básico de Nmap

Un escaneo de Nmap sin argumentos regresa:○ Estado del objetivo (en línea/desconectado)○ La dirección IP y nombre de host.○ Lista de servicios y puertos.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 16: Taller: Exploración de redes con Nmap

Práctica

Inicien un escaneo a su propia máquina. ● ¿Qué encontraron? ● ¿Algún servicio que no sabían que existía?

El arte de la exploración de redes Paulino Calderon [email protected]

Page 17: Taller: Exploración de redes con Nmap

Guardando escaneos de Nmap

Para guardar escaneos en los formatos grepable, XML y normal utilicen el argumento “-oA”:

$nmap -oA escaneo1 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 18: Taller: Exploración de redes con Nmap

Resolución de nombres (DNS)

● Servidores DNS resuelven nombres de dominio a direcciones IP.

● ¿Qué servidores usan?○ Los de su ISP○ Google (8.8.8.8 y 8.8.4.4)○ Internos

El arte de la exploración de redes Paulino Calderon [email protected]

Page 19: Taller: Exploración de redes con Nmap

Especificando servidores DNS

Para especificar que servidores DNS debe usar Nmap:

$nmap --dns-servers 8.8.8.8,8.8.4.4 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 20: Taller: Exploración de redes con Nmap

¿Por qué hacer descubrimiento de hosts?

● Para realizar un inventario de los equipos conectados a nuestra red.

● Para descubrir que equipos estan activos.● Para optimizar el proceso de descubrimiento de

servicios.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 21: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red

● Nmap utiliza las siguientes técnicas:● SYN/ACK● UDP● SCPT INIT● ICMP

El arte de la exploración de redes Paulino Calderon [email protected]

Page 22: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red

Durante la fase de descubrimiento de hosts, por default Nmap envia:● Una petición ICMP Echo Request● Un paquete TCP SYN a puerto 443● Un paquete ARP al puerto 80● Una petición ICMP Timestamp

El arte de la exploración de redes Paulino Calderon [email protected]

Page 23: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red

● Mandando ICMP Echo Requests a solo un host:ping <objetivo>

● O con Nmap:$nmap -sP -PE <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 24: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red

● Si estan en la misma red Nmap utilizará peticiones ARP.

● Si la red es externa usará escaneo ICMP/SYN.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 25: Taller: Exploración de redes con Nmap

TCP SYN Ping

● Nmap utilizará los paquetes de respuesta RST o SYN/ACK para determinar si el objetivo está en línea.

● Por default se manda al puerto 80.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 26: Taller: Exploración de redes con Nmap

TCP ACK Ping

● Nmap utilizará los paquetes de respuesta RST para determinar si el objetivo está en línea.

● Por default se manda al puerto 80. ● Requiere privilegios para crear raw sockets.

De lo contrario usa el método TCP SYN.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 27: Taller: Exploración de redes con Nmap

UDP Ping

● Un host responde con el mensaje ICMP port unreachable cuando se envía un paquete UDP a un puerto cerrado.

● El host puede responder con otro tipo de mensajes de error ICMP.

● Nmap utiliza estos mensajes para identificar si un host esta en linea.

● Es importante lanzar este “probe” contra un puerto cerrado.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 28: Taller: Exploración de redes con Nmap

SCTP INIT Ping

● Un host responde con ABORT o INIT ACK si esta en línea.

● Este tipo de escaneo requiere privilegios para crear paquetes “raw”.

● Este probe es enviado al puerto 80 por default.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 29: Taller: Exploración de redes con Nmap

IP Protocol Ping

● Lanza paquetes IP para tratar de ocasionar algún tipo de respuesta.

● Por default Nmap usa los siguientes protocolos:

○ ICMP (protocolo #1)○ IGMP (protocolo #2)○ IP-in-IP (protocolo #4)

El arte de la exploración de redes Paulino Calderon [email protected]

Page 30: Taller: Exploración de redes con Nmap

ARP Ping

El arte de la exploración de redes Paulino Calderon [email protected]

Page 31: Taller: Exploración de redes con Nmap

Personalizando “probes” de descubrimiento

Se puede personalizar los puertos que son utilizados para la fase de descubrimiento de hosts.

# nmap -sP -PS22,3389 192.168.0.1/24# nmap -sP -PU53 192.168.0.1/24

El arte de la exploración de redes Paulino Calderon [email protected]

Page 32: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red

● Barrido DNS:

$nmap -R -sn <objetivo(s)>

$nmap --dns-servers server1,server2 -R -sn <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 33: Taller: Exploración de redes con Nmap

Descubriendo equipos en la red| broadcast-upnp-info:| 192.168.0.5| Server: TP-LINK/TL-SC3230N/6.E.2.10117/169.254.88.241| Location: http://192.168.0.5:49152/edevicedesc.xml| 192.168.0.8| Server: Linux/3.0.8, UPnP/1.0, Portable SDK for UPnP devices/1.6.14| Location: http://192.168.0.8:49152/description.xml| 192.168.0.42| Server: Microsoft-Windows/6.2 UPnP/1.0 UPnP-Device-Host/1.0|_ Location: http://192.168.0.42:2869/upnphost/udhisapi.dll?content=uuid:383283d1-d95c-4211-9525-b27af762e967

El arte de la exploración de redes Paulino Calderon [email protected]

Page 34: Taller: Exploración de redes con Nmap

PrácticaDescubre que información existe en la red actual usando peticiones de tipo multicast.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 35: Taller: Exploración de redes con Nmap

PrácticaDescubre que información existe en la red actual usando peticiones de tipo multicast.

$nmap --script broadcast -sn -Pn -n

El arte de la exploración de redes Paulino Calderon [email protected]

Page 36: Taller: Exploración de redes con Nmap

Identificación de sistema operativo

La funcionalidad de detección de sistema operativo requiere de privilegios especiales, específicamente permisos para crear “raw sockets”.

#nmap -sV -O <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 37: Taller: Exploración de redes con Nmap

Identificación de sistema operativo

Limitar escaneo a objetivos con un puerto abierto y uno cerrado:#nmap -sV -O --osscan-limit <objetivo(s)>

¿Qué hacer si Nmap no detecta el sistema operativo?#nmap -sV -O --osscan-guess <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 38: Taller: Exploración de redes con Nmap

Práctica

Evadir la detección de sistema operativo en un ambiente UNIX.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 39: Taller: Exploración de redes con Nmap

Práctica

Evadir la detección de sistema operativo.

#echo 128 > /proc/sys/net/ipv4/ip_default_ttl

El arte de la exploración de redes Paulino Calderon [email protected]

Page 40: Taller: Exploración de redes con Nmap

Desactivando escaneo de puertos

● Para desactivar el escaneo de puertos se usa el argumento “-sn”:

$nmap --script broadcast -sn

El arte de la exploración de redes Paulino Calderon [email protected]

Page 41: Taller: Exploración de redes con Nmap

Desactivando descubrimiento de hosts● Para desactivar la fase de descubrimiento

de hosts:

$nmap -Pn -p80 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 42: Taller: Exploración de redes con Nmap

Técnicas de escaneo

● TCP SYN● TCP Connect● UDP ● TCP Null● FIN● XMAS●

El arte de la exploración de redes Paulino Calderon [email protected]

Page 43: Taller: Exploración de redes con Nmap

Posibles estados de un puerto

● open (abierto)● closed (cerrado)● filtered (filtrado)● unfiltered (no filtrado)● open|filtered (abierto|filtrado)● close|filtered (cerrado|filtrado)

El arte de la exploración de redes Paulino Calderon [email protected]

Page 44: Taller: Exploración de redes con Nmap

Especificando puertos

● Para especificar un rango

$nmap -p1-100 <objetivo(s)>● Pueden listar diferentes puertos separandolos con

comas:

$nmap -p22,23,80 <objetivo(s)>● Pueden escanear absolutamente todos los puertos

disponibles

$nmap -p- <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 45: Taller: Exploración de redes con Nmap

Especificando puertos

● También se pueden usar nombres de servicios

$nmap -p smtp <objetivo(s)>● Y nombres de servicio con wildcards:

$nmap -p smtp* <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 46: Taller: Exploración de redes con Nmap

Detección de servicios

Para iniciar el modo de detección de servicios se usa el argumento “-sV”:$nmap -sV <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 47: Taller: Exploración de redes con Nmap

¿Qué hacer cuando no los detecta?

Nmap determina que firmas usar basado en un nivel de “rareza”.

Si el servicio que queremos identificar corre en un puerto no estándar:$nmap -sV --version-all <objetivo(s)>$nmap -sV --version-intensity 9 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 48: Taller: Exploración de redes con Nmap

Identificación de servicios vulnerables¿Cómo usamos esta información para saber si un servicio es vulnerable?

Si la identificación de versión es exitosa simplemente tenemos que revisar que vulnerabilidades han sido publicadas antes.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 49: Taller: Exploración de redes con Nmap

Timing templates

● Existe un alias para usar diferentes configuraciones de rendimiento y ajustes de tiempos de espera predeterminados: -T1-5.

● T3 es el valor default que Nmap usa.

$nmap -sV -O -T4 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 50: Taller: Exploración de redes con Nmap

Otros valores interesantes de optimizaciónmin-hostgroup/max-hostgroup: Número de hosts a escanear simultáneamente.min-parallelism/max-parallelism: Número de transmisiones simultáneas.max-retries: Número de retransmisiones.host-timeout: Tiempo de espera antes de ignorar un host.scan-delay: Tiempo de espera entre “probes”.min-rate/max-rate: Número de paquetes por segundo.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 51: Taller: Exploración de redes con Nmap

TCP SYN Scan

● Escaneo utilizando técnica de “media conexión”.● Método default de escaneo en Nmap.

#nmap -sS <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 52: Taller: Exploración de redes con Nmap

TCP Connect Scan

● Técnica de escaneo que establece una conexión completa para determinar si

● Método default de escaneo en Nmap ejecutándose sin privilegios.

$nmap -sT <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 53: Taller: Exploración de redes con Nmap

TCP ACK Scan

● Útil para detectar firewalls.● Esta técnica solo determina si los puertos estan

filtrados o no filtrados. Es decir, no determina si el puerto esta abierto o cerrado.

$nmap -sA <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 54: Taller: Exploración de redes con Nmap

Idle scanEl idle scan es una técnica en la cual usamos la

predictibilidad del número de secuencia TCP IP de una máquina ”zombie” para escanear a nuestro objetivo escondiendo nuestro verdadero origen.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 55: Taller: Exploración de redes con Nmap

Idle scanEsta técnica depende de la predictibilidad del número de

secuencia TCP IDUn candidato bueno para ser usado como zombie:Debe de estar ”idle”.En nuestro mismo netblock de preferencia.Impresoras, web cams y routers son muy buenos

candidatos.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 56: Taller: Exploración de redes con Nmap

Idle scan

Para encontrar zombies:

#nmap -F --script ipidseq -n <host/ip>

#nmap -O -v <host/ip>Usandolos:#nmap -Pn -sI ZOMBIE OBJETIVO

El arte de la exploración de redes Paulino Calderon [email protected]

Page 57: Taller: Exploración de redes con Nmap

Idle scanChecamos el IP ID del zombieMandamos paquete SYN spoofeado como si viniera del zombie

El arte de la exploración de redes Paulino Calderon [email protected]

Page 58: Taller: Exploración de redes con Nmap

Idle scan● El objetivo regresa un SYN/ACK ● El zombie regresa un RST e incrementa su IP ID● Nosotros checamos el IP ID, si incremento el puerto

esta abierto.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 59: Taller: Exploración de redes con Nmap

Prácticas● Encuentra un host con id de secuencia TCP IP

incremental.● Determinemos si nuestro ISP tiene protección contra

paquetes spoofeados

El arte de la exploración de redes Paulino Calderon [email protected]

Page 60: Taller: Exploración de redes con Nmap

IP Protocol Scan

El arte de la exploración de redes Paulino Calderon [email protected]

Page 61: Taller: Exploración de redes con Nmap

Ndiff

El arte de la exploración de redes Paulino Calderon [email protected]

Herramienta diseñada para comparar escaneos de Nmap.

Toma escaneos guardados en formato XML.

$ndiff scan1.xml scan2.xml

Page 62: Taller: Exploración de redes con Nmap

Práctica

● Implementar un sistema de monitoreo utilizando Nmap y Ndiff.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 63: Taller: Exploración de redes con Nmap

Práctica

● Implementar un sistema de monitoreo utilizando Nmap y Ndiff.1. Realizar un escaneo que refleje el

estado “bueno” de la red.2. Utiliza Ndiff para comparar el estado

actual con el primer escaneo realizado.3. Automatiza la tarea!

El arte de la exploración de redes Paulino Calderon [email protected]

Page 64: Taller: Exploración de redes con Nmap

Desarrollo NSE (Nmap Scripting Engine) Paulino Calderon [email protected]

● Motor de scripts que ha expandido la funcionalidad de Nmap en todos los aspectos.

● Actualmente existen más de 400 scripts (435 el día que escribí esto) en el repositorio oficial.

http://guadalajaracon.orgGuadalajaraCON

NSE == "Nmap Scripting Engine"

Page 65: Taller: Exploración de redes con Nmap

Más consejos de uso

● Es difícil recordar el nombre de todos los argumentos.Mantengan abierta una consola en el folder de los scripts y usen:

cat <script> | grep @args

● No existe una función de autocompletar. ( Entren al folder de scripts y ejecuten sus escaneos desde ahí? ).

Desarrollo NSE (Nmap Scripting Engine) Paulino Calderon [email protected]

http://guadalajaracon.orgGuadalajaraCON

Page 66: Taller: Exploración de redes con Nmap

Ataques de fuerza bruta

Una de las funciones más poderosas de NSE. Existen 51 protocolos soportados en este momento.

Los argumentos relevantes cuando trabajamos con estos scripts son:● userdb: Archivo que contiene los nombres de usuario.● passdb: Archivo que contiene las posibles contraseñas.● firstOnly: Detener el script cuando se encuentre la

primera combinación válida.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 67: Taller: Exploración de redes con Nmap

Práctica

Realiza un ataque de fuerza bruta contra el servicio de MySQL de la máquina #3.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 68: Taller: Exploración de redes con Nmap

Práctica

Realiza un ataque de fuerza bruta contra el servicio de MySQL de la máquina #3.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 69: Taller: Exploración de redes con Nmap

Recolección de información

Además de la lista de servicios existe más información que nos puede ser de ayuda como:● Nombres virtuales de dominio.● Entradas DNS con nombres comunes.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 70: Taller: Exploración de redes con Nmap

Recolección de información

Además de la lista de servicios existe más información que nos puede ser de ayuda como:● Nombres virtuales de dominio.● Entradas DNS con nombres comunes.

El arte de la exploración de redes Paulino Calderon [email protected]

Page 71: Taller: Exploración de redes con Nmap

Descubriendo entradas DNS

El script dns-brute lanza un ataque de diccionario para encontrar entradas DNS.

$nmap --script dns-brute <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 72: Taller: Exploración de redes con Nmap

Descubriendo sitios móviles

Existe el script http-mobileversion-checker que compara peticiones usando diferentes cabeceras User Agent para descubrir sitios móviles:

$nmap -p80,443 --script http-mobileversion-checker <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Page 73: Taller: Exploración de redes con Nmap

Descubriendo vulnerabilidades de inyección de código en webapps

NSE también tiene scripts para automatizar la detección de posibles vulnerabilidades de tipo:● Cross Site Scripting● SQL Injection● Local File Inclusion

El arte de la exploración de redes Paulino Calderon [email protected]

Page 74: Taller: Exploración de redes con Nmap

El arte de la exploración de redes informáticas

Paulino Calderon@calderpwnhttp://calderonpale.com