Taller: Exploración de redes con Nmap

1,715 views

Published on

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

Published in: Internet
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,715
On SlideShare
0
From Embeds
0
Number of Embeds
360
Actions
Shares
0
Downloads
81
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Taller: Exploración de redes con Nmap

  1. 1. Exploración de redes con Nmap El arte de la exploración de redes informáticas Paulino Calderon calderon@websec.mx
  2. 2. ¿Quién soy? Repositorio personal https://github.com/cldrn/nmap-nse-scripts/ Google Summer of Code 2011 https://code.google.com/p/google-summer-of-code-2011-nmap/ Nmap 6: Network Exploration and Security Auditing Cookbook http://nmap-cookbook.com El arte de la exploración de redes informáticas Paulino Calderon calderon@websec.mx
  3. 3. El arte de la exploración de redes informáticas Paulino Calderon calderon@websec.mx 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
  4. 4. 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 calderon@websec.mx
  5. 5. 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 calderon@websec.mx
  6. 6. 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 calderon@websec.mx
  7. 7. 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 calderon@websec.mx
  8. 8. Notación CIDR (IPv4) El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  9. 9. 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 calderon@websec.mx
  10. 10. 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 calderon@websec.mx
  11. 11. Dependencias ● libssl-dev ● autoconf ● make ● g++ El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  12. 12. 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 calderon@websec.mx
  13. 13. Práctica Ejecute Nmap e identifique que información regresa. $nmap <objetivo(s)> El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  14. 14. Práctica Ejecute Nmap e identifique que información regresa. Nmap scan report for scanme.nmap.org Host is up (0.011s latency). Not shown: 996 closed ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  15. 15. 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 calderon@websec.mx
  16. 16. 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 calderon@websec.mx
  17. 17. 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 calderon@websec.mx
  18. 18. 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 calderon@websec.mx
  19. 19. 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 calderon@websec.mx
  20. 20. ¿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 calderon@websec.mx
  21. 21. 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 calderon@websec.mx
  22. 22. 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 calderon@websec.mx
  23. 23. 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 calderon@websec.mx
  24. 24. 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 calderon@websec.mx
  25. 25. 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 calderon@websec.mx
  26. 26. 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 calderon@websec.mx
  27. 27. 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 calderon@websec.mx
  28. 28. 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 calderon@websec.mx
  29. 29. 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 calderon@websec.mx
  30. 30. ARP Ping ● El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  31. 31. 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 calderon@websec.mx
  32. 32. 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 calderon@websec.mx
  33. 33. 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 calderon@websec.mx
  34. 34. Práctica Descubre que información existe en la red actual usando peticiones de tipo multicast. El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  35. 35. Práctica Descubre 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 calderon@websec.mx
  36. 36. 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 calderon@websec.mx
  37. 37. 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 calderon@websec.mx
  38. 38. Práctica Evadir la detección de sistema operativo en un ambiente UNIX. El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  39. 39. 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 calderon@websec.mx
  40. 40. 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 calderon@websec.mx
  41. 41. 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 calderon@websec.mx
  42. 42. Técnicas de escaneo ● TCP SYN ● TCP Connect ● UDP ● TCP Null ● FIN ● XMAS ● El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  43. 43. 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 calderon@websec.mx
  44. 44. 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 calderon@websec.mx
  45. 45. 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 calderon@websec.mx
  46. 46. 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 calderon@websec.mx
  47. 47. ¿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 calderon@websec.mx
  48. 48. 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 calderon@websec.mx
  49. 49. 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 calderon@websec.mx
  50. 50. Otros valores interesantes de optimización min-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 calderon@websec.mx
  51. 51. 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 calderon@websec.mx
  52. 52. 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 calderon@websec.mx
  53. 53. 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 calderon@websec.mx
  54. 54. Idle scan El 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 calderon@websec.mx
  55. 55. Idle scan Esta técnica depende de la predictibilidad del número de secuencia TCP ID Un 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 calderon@websec.mx
  56. 56. 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 calderon@websec.mx
  57. 57. Idle scan Checamos el IP ID del zombie Mandamos paquete SYN spoofeado como si viniera del zombie El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  58. 58. 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 calderon@websec.mx
  59. 59. 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 calderon@websec.mx
  60. 60. IP Protocol Scan El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  61. 61. Ndiff El arte de la exploración de redes Paulino Calderon calderon@websec.mx Herramienta diseñada para comparar escaneos de Nmap. Toma escaneos guardados en formato XML. $ndiff scan1.xml scan2.xml
  62. 62. Práctica ● Implementar un sistema de monitoreo utilizando Nmap y Ndiff. El arte de la exploración de redes Paulino Calderon calderon@websec.mx
  63. 63. 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 calderon@websec.mx
  64. 64. Desarrollo NSE (Nmap Scripting Engine) Paulino Calderon calderon@websec.mx ● 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.org GuadalajaraCON NSE == "Nmap Scripting Engine"
  65. 65. 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 calderon@websec.mx http://guadalajaracon.org GuadalajaraCON
  66. 66. 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 calderon@websec.mx
  67. 67. 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 calderon@websec.mx
  68. 68. 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 calderon@websec.mx
  69. 69. 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 calderon@websec.mx
  70. 70. 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 calderon@websec.mx
  71. 71. 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 calderon@websec.mx
  72. 72. 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 calderon@websec.mx
  73. 73. 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 calderon@websec.mx
  74. 74. El arte de la exploración de redes informáticas Paulino Calderon @calderpwn http://calderonpale.com

×