11 abr 2011

La Biblia del Footprinting (IV de VII)

  

La Biblia del Footprinting (I de VII)La Biblia del Footprinting (II de VII)La Biblia del Footprinting (III de VII)La Biblia del Footprinting (IV de VII)La Biblia del Footprinting (V de VII)La Biblia del Footprinting (VI de VII)La Biblia del Footprinting (VII de VII)


 

Buenas a todos! Hoy arrancamos el cuarto post de la cadena de artículos sobre Footprinting donde hablaremos de una de las temáticas que a mí personalmente más me gustan en esta fase de los Pentest, los DNS, en especial por la cantidad de información que puede llegar a obtenerse.

 

Paso 4. Obtener información de los DNS

Para obtener información de los DNS vamos a utilizar cuatro técnicas diferentes:

  • Forzar transferencias de zona
  • Resolución inversa (a partir de una IP) mediante la consulta a los registros PTR
  • Ataques de fuerza bruta mediante fuzzers o por diccionario
  • Ataques de fuerza bruta mediante identificación de relaciones

Todos ellos los haremos a la vez con la herramienta Anubis y con la herramienta Nslookup, que tenéis disponible para Windows y Linux. Nosotros utilizaremos la versión para Windows, que cambian los comandos mínimamente con respecto a la versión de Linux.

¡Vamos allá!

 

  • Forzar transferencias de zona

Hace unas semanas hablamos de este tema precisamente en el blog por lo que me basaré en los contenidos ya abordados para explicarla.

Para comenzar os hemos dibujado un diagrama muy ilustrativo sobre cómo funcionan las zonas, en él os mostramos nuestro dominio flu-project.com, con su nombre de dominio “flu-project” dentro de la zona principal. Por otro lado tenemos tres subdominios “blog”, “www” y “ftp” (hipotéticos), estos subdominios pueden configurarse dentro de la zona principal, o en otra separada, como por ejemplo el caso del subdominio “ftp”, que estaría administrado por la zona “prueba”.

 

Para que una zona nueva delegada de la principal, por ejemplo la zona prueba, funcione, es necesario configurar algunos recursos, para que tenga información sobre la delegación a los otros servidores de DNS autorizados. Es de extrema importancia que las zonas estén disponibles desde varios servidores de DNS por temas de disponibilidad.Para que otros servidores además del principal puedan alojar zonas, se crearon las transferencias de zona, que se encargan de hacer la replicación de todas ellas y de sincronizarlas.Ahora bien, ¿cuándo se realizan estas transferencias de zona? Tenemos cuatro posibilidades:

  1. La primera de ellas es que se instale o inicie un nuevo servidor DNS y se configure en una zona existente.
  2. La segunda, cuando finaliza el plazo de actualización de una zona.
  3. La tercera, cuando se produce algún cambio en una zona, y es necesario actualizar para replicar los cambios.
  4. Y la última, cuando manualmente se solicita una transferencia de zona.

Bien, una vez entendido bien el concepto de zona, vamos a llevarlo a la práctica. Vamos a abrir una consola de comandos de Windows y ejecutaremos el programa “nslookup”. Nslookup es una aplicación de línea de comandos que permite probar y solucionar problemas en los servidores DNS. Nosotros lo utilizaremos para activar una transferencia de zona de manera manual.Vamos a iniciar Nslookup en modo interactivo, para ello basta con abrir un CMD y escribir el comando “nslookup”:

 

Ahora vamos utilizar la instrucción SET TYPE para consultar datos de tipo DNS (NS), para ver otros tipos de consultas podéis utilizar la ayuda poniendo una interrogación ?:

 

 

Ahora buscaremos los servidores de DNS de nuestro objetivo:

 

Ya sabemos los servidores DNS de ese dominio, ahora procederemos a ponernos como uno de ellos:

 

Ahora ya nos queda tan solo para realizar la transferencia de zona ejecutar el comando LS contra el dominio que queramos:Y disfrutar de todo el listado de máquinas que contienen las zonas:

 

La transferencia de zona la hemos realizado desde fuera de la red interna debido a una mala configuración por parte de la organización. Esto no debería ocurrir, por motivos de seguridad obvios, y es que cualquiera desde su casa puede hacerse con todas las IP y dominios internos de una organización.Para que estuviese bien configurado, nos debería haber respondido al comando LS con algo como lo siguiente:

 

 

Tenéis más información sobre cómo realizar la configuración correcta aquí.

Para facilitar la tarea, en Anubis he incorporado un módulo que es capaz de realizar una transferencia de zona con un solo clic:

 

 

  • Resolución inversa (a partir de una IP) mediante la consulta a los registros PTR

Lo más habitual es utilizar los DNS para obtener una IP, pero habrá ocasiones en la que nos interese lo contrario, dada una IP averiguar el DNS. A este hecho se le conoce como resolución inversa, y es utilizado normalmente para comprobar la identidad de un cliente.

Existe un dominio, el in-addr.arpa donde se encuentran las direcciones IP de todos los sistemas pero colocados de manera invertida, es decir, para la IP 193.X.Y.Z, le correspondería el nombre Z.Y.X.193.in-addr.arpa, y esto queda definido en los registros PTR, de donde intentaremos obtener la información.

La idea es hacer lo siguiente, sabemos una dirección IP, que hemos encontrado mediante alguna de las búsquedas que aprendimos a realizar en los artículos 1 y 2 de esta cadena, pero no sabemos el nombre del dominio DNS, por tanto buscaríamos la query:

 

Z.Y.X.193.in-addr.arpa -> pericoeldelospalotes.com

 

Y verificaríamos que:

 

pericoeldelospalotes.com -> 193.X.Y.Z

 

Para ello volveremos a utilizar la herramienta Nslookup. Configuraremos el DNS interno de la organización y configuramos el type para preguntar por los registros PTR:

 

 

Y realizamos las búsquedas con algunas IP que habíamos encontrado:

 

 

Como veis una no se ha resuelto, por lo que no existe, pero la otra sí que ha tenido éxito. Imaginaros el caso de organizaciones grandes, en las que tengáis que hacer este proceso para unas 1000 IPs… ¿qué hartura no? Para este caso he implementado un módulo en Anubis que permite hacer la resolución inversa de DNS por rangos de IP de manera automatizada, simplemente habiendo encontrado previamente una dirección IP:

 

 

 

  • Ataques de fuerza bruta mediante fuzzers o por diccionario

Volveremos a configurar el DNS interno de la organización, pero ahora nos configuraremos en vez del tipo PTR el tipo A, con SET TYPE=A, para preguntar directamente por la existencia de máquinas. No sabemos el nombre de ninguna máquina, por lo que buscamos por ejemplo los subdominios a.dominioVictima.es e ia.dominioVictima.es:

 

 

Como veis, una de ellas sí existe.

Anubis lleva incorporado un módulo de fuerza bruta que nos permitirá hacer fuerza bruta de esta manera contra el DNS, bien preguntando por palabras que irá generando mediante permutaciones de símbolos, letras y números, o bien preguntando por las palabras contenidas en un diccionario:

 

 

 

  • Ataques de fuerza bruta mediante identificación de relaciones

Como habéis visto, con el ataque anterior hemos obtenido algunas máquinas con nombres curiosos y relacionados entre sí, como por ejemplo nombres de planetas y dioses.

Ahora vamos a seleccionar por ejemplo neptuno, y vamos a utilizar la funcionalidad Google Sets, que nos permite encontrar listados de palabras relacionadas con una determinada palabra (por ejemplo si buscamos por homer, nos devolverá resultados como bart, lisa, magie, nelson, moe, etc.):

 

Como vemos, Google Sets ha encontrado varios términos relacionados con la palabra “neptuno”:

Ahora comprobaremos si existen subdominios con esos nombres:

 

Y… premio, tenemos un listado de subdominios reales.

 

 

Eso es todo por hoy, espero que os esté gustando la cadena. Nos vemos en el post 5.

Saludos!

 

7 comentarios:

  1. Juan Antonio, al Anubis solo le falta que cocine también jeje =), gran herramienta y un gran post... esperamos la parte 5!un saludo!

    ResponderEliminar
  2. Gracias! Siempre se le puede hacer un módulo a lo "Cocina conmigo" http://bit.ly/ed7UBO =Psaludos

    ResponderEliminar
  3. [...] (I de VII) La Biblia del Footprinting (II de VII) La Biblia del Footprinting (III de VII) La Biblia del Footprinting (IV de VII) La Biblia del Footprinting (V de VII) La Biblia del Footprinting (VI de VII) La Biblia del [...]

    ResponderEliminar
  4. jajaja ^^No estaria malGrande como siempre@juanantonio.callesSaludos!

    ResponderEliminar
  5. [...] La Biblia del Footprinting (IV de VII) [...]

    ResponderEliminar
  6. [...] (I de VII) La Biblia del Footprinting (II de VII) La Biblia del Footprinting (III de VII) La Biblia del Footprinting (IV de VII) La Biblia del Footprinting (V de VII) La Biblia del Footprinting (VI de VII) La Biblia del [...]

    ResponderEliminar
  7. [...] (I de VII) La Biblia del Footprinting (II de VII) La Biblia del Footprinting (III de VII) La Biblia del Footprinting (IV de VII) La Biblia del Footprinting (V de VII) La Biblia del Footprinting (VI de VII) La Biblia del [...]

    ResponderEliminar