La Biblia Del Footprinting
La Biblia Del Footprinting
La Biblia Del Footprinting
Flu Project
2011
CONTENIDO
Prólogo ......................................................................................................................................................... 3
7. Metadatos ......................................................................................................................................... 38
2
PRÓLOGO
Hemos intentado describir mediante una serie de pasos una posible manera de
realizar la búsqueda de información necesaria para las posteriores fases de la
auditoría, analizando algunas de las principales herramientas disponibles en el
mercado.
El libro será ampliado en futuras versiones con más herramientas y análisis más
profundos.
3
LA FASE DE FOOTPRINTING
1. Footprinting.
2. Fingerprinting.
3. Análisis de vulnerabilidades.
4. Explotación de vulnerabilidades.
5. Generación de informes.
Pongamos como ejemplo que tenemos que auditar a la organización Flu Project
que tiene en el dominio flu-project.com su sitio Web y desde el que se pueden
conectar a distintos servicios que ofrece su organización.
El primer paso será evidentemente entrar en el sitio Web que vamos a auditar.
Deberemos navegar por todas sus páginas y aplicaciones, ya que nunca sabemos
que nos vamos a encontrar. Es habitual, sobretodo en sitios Web muy grandes,
que se dejen olvidados enlaces a sitios que no deberían estar, o algún error en una
llamada a BBDD (algo más común de lo que se piensa). Tras hacernos una idea del
estado de la web continuaremos con el siguiente paso.
4
ocasiones ciertas páginas que no deberían haberse publicado pero que han estado
cierto tiempo visibles desde Internet mientras se estaban probando, y han
quedado cacheadas en Google. Por tanto, podríamos verlas mirando la caché o con
algún servicio como “archive.org”.
Por ejemplo, es interesante ver qué saben o dicen los demás de nuestro
objetivo, para ello, podemos ayudarnos de la siguiente búsqueda en Google,
donde el “–“ indica que queremos ver todos los resultados menos los del dominio
objetivo:
5
filetype o ext: para buscar archivos de un formato determinado, por
ejemplo pdfs, rdp (de escritorio remoto), imágenes png, jpg, etc. para
obtener información EXIF y un largo etcétera.
intitle: para buscar páginas con ciertas palabras en el campo title.
inurl: para buscar páginas con ciertas palabras en la URL.
O buscar por ejemplo por la frase “index of” para encontrar listados de
archivos de ftps, etc.
6
En esta herramienta también tenéis la posibilidad de indicar los verbos en las
casillas en blanco para facilitaros más la tarea:
Una vez que hayamos realizado algunas búsquedas específicas será interesante
listar todas las páginas que pendan del dominio raíz. Para ello podemos ayudarnos
de la búsqueda:
site:flu-project.com
7
<!—Comentario del Diseñador al Programador, el usuario para conectarse a la
BBDD es PEPITO y la clave MENGANITO-->
Otro dato interesante será listar los subdominios que pendan del dominio
principal con sus correspondientes direcciones IP y, por tanto, máquinas y
servidores. De esta manera, nos podremos dar cuenta rápidamente del tamaño de
la organización. Para ello, nos podremos ayudar de nuevo de la herramienta
Anubis que automatiza búsquedas de Google Hacking con los verbos “site” e
“inurl”. Con estos datos posteriormente en la fase de Fingerprinting (activo), con
Nmap por ejemplo, podremos intentar obtener más datos y en fases posteriores
realizar otro tipo de ataques:
8
Anubis lleva integrada también esta búsqueda y, como veis, se obtienen los
mismos resultados, solo que ya filtrados, eliminando los resultados repetidos :
9
Para esta tarea podéis utilizar también algún servicio Web como los
siguientes:
http://serversniff.net/content.php?do=hostonip
http://www.myipneighbors.com/
10
Todos estos datos deberíamos irlos enumerando de una manera adecuada y
permitiendo cierta trazabilidad entre los distintos elementos que vayamos
encontrando, esta tarea es todo un arte, y es algo que han tenido presente los
desarrolladores de algunas herramientas como Maltego, OPTOS, Foca, y Anubis.
De esta última podéis ver una captura a continuación:
Netcraft (http://searchdns.netcraft.com)
11
12
Cuwhois (http://www.cuwhois.com/)
Entre los datos más interesantes que nos podrá aportar se encuentran la IP,
Servidores DNS, Registrador del dominio, País, Idioma, Lenguaje de programación
del sitio Web, codificación, modelo del Servidor Web, la posición en distintos
rankings, feeds, incluso si comparte servidor Web con otras páginas nos
proporcionará un listado con sus vecinos:
Chatox (http://www.chatox.com/whois/whois.html)
13
IPTools (http://www.iptools.com/)
Robtex (http://www.robtex.com/)
14
Otro servicio parecido a Cuwhois, muy completo, que cuenta también con
una gran cantidad de herramientas:
Yougetsignal (http://www.yougetsignal.com/)
Intodns (http://www.intodns.com/)
15
Freednsinfo (http://www.freednsinfo.com/)
16
Dnsstuff (http://www.dnsstuff.com)
DnsQuirty (http://www.dnsenquiry.com/)
Otro servicio que nos permitirá analizar el whois, dns lookup y ping.
Visualware
Servicio Web que nos permitirá seguir visualmente el camino que se recorre
hasta llegar a la IP del servidor objetivo. Requiere Java:
17
123people (http://www.123people.es/)
18
4. BÚSQUEDA DE LOS SISTEMAS OPERATIVOS Y MODELOS DE SERVIDOR WEB
19
En la herramienta Anubis podéis encontrar una automatización de esta
técnica:
Será de utilidad conocer los modelos de servidor web más comunes. Puede
ocurrir que algún webmaster nos intente engañar, colocando por ejemplo en un
20
IIS6 una página de error falsa de Apache, por lo que será necesario contrastar la
información, por ejemplo, consultando el banner del servidor Web.
21
Para facilitar las cosas, en la herramienta Anubis, de la que ya hemos
hablado, hemos automatizado esta operación, por lo que para visualizar el banner
nos bastará con colocar el dominio y pulsar el botón Blind Scan:
Para automatizar más aún las cosas, una vez que hayáis encontrado varios
subdominios/IPs, etc., por ejemplo por los métodos de búsqueda con buscadores
que vimos en el primer artículo de la cadena (pestaña Scan with Google de
Anubis), si pulsamos el botón “send”, nos almacenará toda esta información en
una tabla resumen que podéis ver en la pestaña “summary”:
22
Si ahora pulsamos sobre el botón “Operative System Scan”, Anubis
intentará visualizar el sistema operativo y modelo del servidor Web mediante la
consulta del banner de todas las máquinas que haya en la lista resumen
actualmente:
Como veis más sencillo no se puede tener. Otra manera de averiguar estos
datos es la consulta de los servicios Web que utilizamos en el segundo artículo de
la cadena.
23
Y si analizamos el correo completo…:
Podemos utilizar otras herramientas, como por ejemplo Nmap, para intentar
averiguar el sistema operativo de una máquina, pero sería Fingerprinting (activo)
24
ya que hay que forzar al servidor a que nos muestre la información, y eso se sale
de la temática de este libro.
Para obtener información de los DNS vamos a utilizar cuatro técnicas diferentes:
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.
25
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.
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?:
26
Ahora buscaremos los servidores de DNS de nuestro objetivo:
Ahora ya nos queda tan solo para realizar la transferencia de zona ejecutar el
comando LS contra el dominio que queramos (ls dominio.com). Y disfrutar de todo el
listado de máquinas que contienen las zonas:
27
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:
28
Para facilitar la tarea, en Anubis se ha incorporado un módulo que es capaz de
realizar una transferencia de zona con un solo clic:
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.
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:
29
Z.Y.X.193.in-addr.arpa -> pericoeldelospalotes.com
Y verificaríamos que:
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
30
hacer éste proceso para unas 1000 IPs… ¿qué hartura no? Para éste caso hemos
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:
31
Ataques de fuerza bruta mediante fuzzers o por diccionario.
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:
32
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.
33
Como vemos, Google Sets ha encontrado varios términos relacionados con la
palabra “neptuno”:
34
Y… premio, tenemos un listado de subdominios reales.
6. FUZZEANDO WEBS
Por ejemplo, puede ocurrir que en la misma carpeta de una máquina donde se
encuentra la página web (www, …) haya otro tipo de archivos que el webmaster utilice
para sus quehaceres, pero que no tenga enlazados en el sitio Web, porque no es algo
que los usuarios deberían ver. Por ejemplo, puede utilizar el servidor para compartir
fotos suyas con un amigo, lo típico que las cuelga en un Zip, y les pasa el enlace directo
a sus amigos para que las descarguen, o por poner otro ejemplo, un script de
mantenimiento, o un panel de control, que no protege con contraseña porque piensa
que si no está enlazado al sitio web nadie lo encontrará, o los típicos phpinfo.php,
paneles de contol de joomla (/administrator) de wordpress (/wp-admin), etc.
Son bastante interesantes ya que dan mucha información del servidor Web:
35
Otro fichero interesante que podemos buscar es el phpmyadmin. Para buscarlo
por Google podéis utilizar la siguiente búsqueda-truco:
inurl:phpMyAdmin/Documentation ext:html
Y una vez que hayáis encontrado alguna página, quitáis de la URL la parte
“/Documentation.html” y deberíais acceder al panel phpMyAdmin.
Ahora que ya sabemos qué tipo de ficheros nos interesaría encontrar, vamos a
fuzzear. A nosotros el fuzzer que más nos gusta es Wfuzz. Es un programa de consola,
fácil de integrar por tanto con otras aplicaciones, muy sencillo de utilizar y que nos
permitirá hacer ataques por diccionario. De serie trae un gran número de diccionarios
con palabras, posibles ficheros, inyecciones, etc. Anubis lleva una automatización de
este fuzzer, al que hemos añadido de hecho un nuevo diccionario que se echaba en
falta con palabras “freaks”.
36
Ahora marcaremos Recursion level, si queremos que cada vez que encuentre
una nueva ruta, vuelva a realizar un escaneo entero sobre ella. Podremos marcarle el
número de recursiones que queremos realizar. Pero tened en cuenta que a más
recursiones, más tiempo tardará en finalizar:
37
Como veis han aparecido algunos ficheros que empiezan por “a” y por “b” ya
que hemos realizado un escaneo con el diccionario big.
7. METADATOS
Como sabréis, los metadatos son una serie de datos que son almacenados junto
con los documentos para ayudar en su identificación. Su intención es representar el
contenido del documento, por lo que suelen almacenar bastantes datos, en ocasiones
más de la que nos gustaría, lo que conlleva a que sea más fácil, por ejemplo, identificar
al usuario que ha creado cierto documento, las herramientas con las que lo ha hecho,
la situación física donde se encontraba, un path que puede darnos información del
sistema operativo, etc. Este hecho trae repercusiones que pueden llegar a ser muy
graves, pongamos por ejemplo que a través de un metadato se averigua que se ha
generado un documento con una versión de cierto programa para generar ficheros
PDF que tiene un exploit conocido; entonces se estaría poniendo en peligro un
sistema. Otro ejemplo que ha traído una gran repercusión hace unos meses fue el de la
caza de unos pederastas a través de la información de los metadatos del
posicionamiento por GPS de las fotos realizadas con un iPhone y que compartían por
foros de Internet. Por lo que parece que los metadatos pueden ser más peligrosos de
lo que inicialmente parece.
Como no podía ser menos, nosotros también hemos querido hacer una pequeña
aportación a la fase de Footprinting con Anubis, y añadímos en la versión 1.1 el primer
módulo de análisis de metadatos, que es capaz de analizar los metadatos de los
ficheros PDF y realizar listados de usuarios y de software encontrado, para ayudaros en
la búsqueda de posibles exploits.
38
El funcionamiento es tan sencillo como poner un dominio y pulsar el botón
“Metadata”. Cuando la barra de progreso llegue al final ya podréis ver los metadatos
de los ficheros PDF mostrados en el árbol de la ventana izquierda:
39
Ahora si pulsáis sobre el botón “SEND”, se enviará la información a la pestaña
“SUMMARY”, donde se listarán todos los usuarios y software encontrados:
40
REFLEXIONES FINALES
Con este libro habréis podido analizar algunas técnicas con las que realizar la
búsqueda inicial de los datos necesarios para realizar un Test de Intrusión o una
auditoría de Caja Negra.
41