Charla Nmap Jose Luis Chica Murcialanparty 11

1,152 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,152
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
49
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • -T4 es el esquema de timings. Va desde el 0 al 5. Cuanto más alto más agresivo. T4 suele ser el recomendado en líneas con mayor capacidad que modems.... A veces interesa usar tiempos lentos, para evitar que un posible IDS detecte el escaneo.
  • -PS envía paquetes TCP SYN. Se puede usar también -PA y -PU que envía sondas TCP ACK y UDP respectivamente.
  • Charla Nmap Jose Luis Chica Murcialanparty 11

    1. 1. <ul>José Luis Chica Uribe <li>Técnico en seguridad
    2. 2. CSIRT-cv </li></ul><ul>NMAP </ul><ul>www.securityartwork.es </ul>www.csirtcv.gva.es <ul><li>www.s2grupo .es </li></ul>
    3. 3. <ul>Índice </ul><ul><li>Indroducción
    4. 4. Descubrimiento de equipos y puertos
    5. 5. Detectando la versión del SSOO y del servicio
    6. 6. Detección y evasión de firewalls e IDS
    7. 7. Nmap Scripting Engine
    8. 8. Consejos de optimización del rendimiento
    9. 9. Contramedidas contra Nmap </li></ul><ul></ul>
    10. 10. <ul>Introducción </ul><ul><li>Herramienta de exploración y auditoría
    11. 11. Escanea equipos y redes
    12. 12. Primera versión 1997 por Fyodor
    13. 13. Gratuita, abierta, GPL
    14. 14. Multiplataforma
    15. 15. Documentada
    16. 16. Respaldada por una gran comunidad </li></ul><ul></ul>
    17. 17. <ul>Como funciona? </ul><ul><li>Hace un barrido, enviando sondas
    18. 18. En función de las respuestas, reconoce equipos y servicios activos.
    19. 19. Aprovecha ambigüedades en protocolos de red para adivinar la versión del SSOO
    20. 20. Necesario conocimientos básicos del protocolo TCP para entender y aprovechar al máximo el funcionamiento de Nmap </li></ul><ul></ul>
    21. 21. <ul>TCP </ul>PETICIÓN DEL CLIENTE PARA CONECTARSE A UN PUERTO <ul></ul>
    22. 22. <ul>TCP </ul>SYN/ACK SI ESTÁ DISPONIBLE, RESPUESTA AFIRMATIVA DEL SERVIDOR <ul></ul>
    23. 23. <ul>TCP </ul>SYN/ACK CONFIRMACIÓN DEL CLIENTE, COMPLETANDO LA CONEXIÓN <ul></ul>
    24. 24. <ul>TCP </ul><ul>Un paquete TCP entra a un bar y dice: <ul>- Quiero una cerveza. </ul>El camarero le contesta: <ul>- Una cerveza quieres? </ul>El paquete TCP responde: <ul>- Si, una cerveza . </ul></ul><ul></ul>
    25. 25. <ul>Un primer ejemplo </ul><ul># 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 http-proxy </ul>Nmap done: 1 IP address (1 host up) scanned in 12.69 seconds <ul></ul>
    26. 26. <ul>Explicación estado puertos </ul><ul><li>ABIERTO : el puerto es alcanzable y hay alguna aplicación a la escucha.
    27. 27. CERRADO : el puerto es alcanzable, pero no hay ninguna aplicación a la escucha.
    28. 28. FILTRADO : no hay respuesta. Seguramente hay un firewall en medio. </li></ul><ul></ul>
    29. 29. <ul>Enumeración de equipos </ul>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 <ul></ul>
    30. 30. <ul>Otros ejemplos </ul>- 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 <ul></ul>
    31. 31. <ul>Detección del SSOO </ul># nmap -T4 -O 10.10.10.30 Not shown: 997 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds Running: Microsoft Windows Vista|2008|7 OS details: Microsoft Windows Vista SP0 - SP2, Server 2008, or Windows 7 Ultimate <ul></ul>
    32. 32. <ul>Detección de versión </ul># 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) <ul></ul>
    33. 33. <ul>Todo en uno </ul># nmap -T4 -A 10.10.10.30 Modificador -A <ul><ul><li>Detección de versión -sV
    34. 34. Detección de SSOO -O
    35. 35. Uso de scripts -sC
    36. 36. Uso de traceroute --traceroute </li></ul></ul><ul></ul>
    37. 37. <ul>Escaneo a UDP </ul># 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) <ul></ul>
    38. 38. <ul>AUDITANDO FIREWALLS </ul><ul><li>Nmap como herramienta de análisis de configuración de firewalls
    39. 39. Detección de la política por defecto. </li><ul><li>DEFAULT ACCEPT
    40. 40. DEFAULT DROP </li></ul><li>Detección del tipo de firewall </li><ul><li>STATELESS
    41. 41. STATEFULL </li></ul><li>Evasión de firewalls e IDS </li></ul><ul></ul>
    42. 42. <ul>AUDITANDO FIREWALLS </ul><ul>POLITICA POR DEFECTO </ul>Basado en el estado de los puertos “no mostrados” en un escaneo <ul><ul><li>Cerrados : accept by default
    43. 43. Filtrados : deny by default </li></ul></ul><ul></ul>
    44. 44. <ul>AUDITANDO FIREWALLS </ul>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 netbios-ssn 445/tcp filtered microsoft-ds Respuesta activa RST de 995 puertos <ul></ul>
    45. 45. <ul>AUDITANDO FIREWALLS </ul>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 <ul></ul>
    46. 46. <ul>AUDITANDO FIREWALLS </ul>DETECCIÓN DEL TIPO DE FIREWALL <ul><li>Statefull: capaz de controlar las sesiones TCP
    47. 47. Se lanza Nmap normal (SYN scan) </li><ul><li>Se lanza otro escaneo “exótico” </li><ul><li>ACK scan
    48. 48. Xmas scan
    49. 49. FIN scan </li></ul></ul><li>Si el segundo scan no muestra resultado, es un firewall statefull </li></ul><ul></ul>
    50. 50. <ul>AUDITANDO FIREWALLS </ul>FIREWALL STATEFULL #nmap -sA -T4 asdf.com Not shown: 1000 filtered ports Firewall detecta paquetes ACK sin establecer conexión previa y los dropea <ul></ul>
    51. 51. <ul>AUDITANDO FIREWALLS </ul>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 <ul></ul>
    52. 52. <ul>EVASIÓN DE FIREWALLS </ul>Manipulación del puerto de origen <ul><li>Puertos que el equipo considera de “confianza”
    53. 53. Permiten todo el tráfico entrante
    54. 54. Aún teniendo reglas que lo bloqueen implícitamente!!! </li></ul>Ej: <ul><li>W2K y XP permitía todo tráfico TCP y UDP desde el puerto 88 (Kerberos)
    55. 55. OS X TIGER permitía tráfico desde el puerto 67 (DHCP) y 5353 (Zeroconf) </li></ul><ul></ul>
    56. 56. <ul>EVASIÓN DE FIREWALLS </ul>Escaneo IPv6 <ul><li>Servicios que escuchan IPv6
    57. 57. No se tienen en cuenta
    58. 58. Electrónica que aún no soporta reglas de filtrado IPv6
    59. 59. Posibilidad de llegar a servicios que están filtrados solo en IPv4 </li></ul><ul></ul>
    60. 60. <ul>EVASIÓN DE FIREWALLS </ul>#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 <ul></ul>
    61. 61. <ul>EVASIÓN DE FIREWALLS </ul>Fragmentación IP <ul><li>Firewalls que no tratan paquetes fragmentados
    62. 62. Podrían dejarlos pasar todos los fragmentos (o ignorarlos)
    63. 63. Modificador -f <numbytes>
    64. 64. Se puede usar también –mtu </li></ul><ul></ul>
    65. 65. <ul>EVASIÓN DE IDS </ul>BARRIDOS LEEEEENTOS <ul><li>Ralentizar los envíos de sondas
    66. 66. Evitar detección por reglas de X paquetes en Y segundos.
    67. 67. Modificador T0: envío de sonda por cada 300sg -_-zZzZzz
    68. 68. Modificador T1: envío de sonda por cada 15sg </li></ul><ul></ul>
    69. 69. <ul>NMAP SCRIPTING ENGINE </ul><ul><li>Herramienta muy potente y flexible
    70. 70. Permite al usuario escribir scripts para automatizar tareas
    71. 71. Basado en lenguaje LUA
    72. 72. Permite: </li><ul><li>Detección de vulnerabilidades
    73. 73. Explotación de vulnerabilidades
    74. 74. Etcetcetc........ </li></ul></ul><ul></ul>
    75. 75. <ul>NMAP SCRIPTING ENGINE </ul># 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 netbios-ssn Host script results: | smb-os-discovery : Unix | LAN Manager: Samba 3.0.31-0.fc8 |_Name: WORKGROUP Nmap done: 1 IP address scanned in 0.33 seconds <ul></ul>
    76. 76. <ul>NMAP SCRIPTING ENGINE </ul><ul><li>Actualmente: </li><ul><li>284 scripts
    77. 77. 74 librerias </li></ul><li>Mantenidos activamente por comunidad en lista de correo nmap-dev
    78. 78. Categorias: </li><ul><li>Bruteforce, version, fuzzing, DoS </li></ul><li>http://nmap.org/nsedoc/ </li></ul><ul></ul>
    79. 79. <ul>NMAP SCRIPTING ENGINE </ul><ul><li>uso de un script especifico </li></ul>--script <nombre/categoria> <ul><li>si necesita algún argumento </li></ul>--script-args <ul></ul>
    80. 80. <ul>OPTIMIZACIÓN NMAP </ul><ul><li>Capaz de escanear redes MUY extensas y heterogeneas
    81. 81. No es lo mismo escanear una red lejana que una LAN
    82. 82. Ni con firewalls que sin ellos
    83. 83. Los tiempos de respuesta son diferentes </li></ul><ul></ul>
    84. 84. <ul>OPTIMIZACIÓN NMAP </ul><ul><li>Necesidad de utilizar configuración personalizada
    85. 85. Plantillas de tiempo: -T0...T6 </li><ul><li>T0,T1 MUY lento. Evasión de IDS
    86. 86. T2,T3, lento. Redes muy saturadas o inferiores a modems 56Kb
    87. 87. T4,T5 rápido, apaña para redes WAN o LAN </li></ul><li>(Por defecto T3) </li></ul><ul></ul>
    88. 88. <ul>OPTIMIZACIÓN NMAP </ul><ul>Pero a veces no es suficiente <ul><li>Perfiles demasiado genéricos
    89. 89. Se puede exprimir más!
    90. 90. Uso de modificadores para configuración avanzada de tiempo </li></ul></ul><ul></ul>
    91. 91. <ul>OPTIMIZACIÓN NMAP </ul><ul>--min-hostgroup, --max-hostgroup </ul>- Agrupa las IPs y las escanea en paralelo - Interesante usarlo en escaneos UDP o con pocos puertos por host <ul></ul>
    92. 92. <ul>OPTIMIZACIÓN NMAP </ul><ul>--max-rtt-timeout,--initial-rtt-timeout </ul>- 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 <ul></ul>
    93. 93. <ul>OPTIMIZACIÓN NMAP </ul><ul>--min-parallelism, --max-paralleism </ul>- 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 <ul></ul>
    94. 94. <ul>OPTIMIZACIÓN NMAP </ul>T0 T1 T2 T3 T4 T5 min-rtt-timeout 100 100 100 100 100 50 max-rtt-timeout 300,000 15,000 10,000 10,000 1,250 300 Initialrtt-timeout 300,000 15,000 1,000 1,000 500 250 max-retries 10 10 10 10 6 2 host-timeout 0 0 0 0 0 900,000 min-parallelism Dinámico max-parallelism 1 1 1 Dinámico min-hostgroup Dinámico max-hostgroup Dinámico TABLA DE TIEMPOS <ul></ul>
    95. 95. <ul>OPTIMIZACIÓN NMAP </ul><ul>- nmap -T4 1.2.3.0/24 </ul># Nmap done at Tue Nov 29 14:45:36 2011 -- 256 IP addresses (229 hosts up) scanned in 3475.76 seconds - nmap -T4 --initial-rtt-timeout 250 --max-rtt-timeout 500 --max-retries 2 --min-parallelism 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 <ul></ul>
    96. 96. <ul>OPTIMIZACIÓN NMAP </ul><ul>SCAN MLP EDITION - nmap -T4 217.124.152.0/22 </ul># Nmap done at Wed Dec 7 12:50:22 2011 -- 1024 IP addresses (339 hosts up) scanned in 2227.96 seconds - nmap -T4 --initial-rtt-timeout 2 --max-rtt-timeout 5 --max-retries 2 --min-parallelism 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 <ul></ul>
    97. 97. <ul>DEFENSA CONTRA NMAP </ul><ul>UN BUEN ATAQUE! <li>Escanea tu red
    98. 98. Cierra puertos innecesarios
    99. 99. Busca vulnerabilidades y arréglalas!
    100. 100. Interesante programar escaneos periódicos y comparar resultados con Ndiff </li></ul><ul></ul>
    101. 101. <ul>DEFENSA CONTRA NMAP </ul><ul>DETECTAR ESCANEOS <li>Firewalls o IDS son capaces de detectar
    102. 102. Es habitual ignorar la detección, debido a que casi siempre son inofensivos
    103. 103. Pero a veces es precursor a una intrusión
    104. 104. Interesante correlar esta información </li><ul><li>Escaneo y acceso SSH
    105. 105. Escaneo y caida de servicio </li></ul></ul><ul></ul>
    106. 106. <ul>DEFENSA CONTRA NMAP </ul><ul>“ OCULTAR” PUERTOS <li>Nmap escanea 1000 puertos usuales
    107. 107. Interesante bindear un servicio a un puerto poco conocido
    108. 108. Obligas a hacer un barrido completo
    109. 109. Valorar seguridad vs usabilidad </li><ul><li>Poco util servidor web puerto 23981 </li></ul></ul><ul></ul>
    110. 110. <ul>DEFENSA CONTRA NMAP </ul><ul>OTROS <li>OS Spoofing </li><ul><li>Operating System: MS Mapache 2011 </li></ul><li>Port Knoking </li><ul><li>“ Llamar” a una secuencia de puertos </li></ul><li>Honeypots </li><ul><li>Falsos servicios abiertos y golosos para entretener al atacante </li></ul></ul><ul></ul>
    111. 111. www.neuronasdigitales.com Twitter: @spankito <ul></ul>

    ×