domingo, 14 de junio de 2009

TargetSearch v0.2

Hace unos días publiqué un post con una herramienta llamada TargetSearch que desarrollé para facilitarme la tarea de buscar en Google nombres de objetivos para test de intrusión. Tras publicarla, Pedro Laguna me notificó un problema al buscar dominios que contengan webs muy grandes, ya que Google te devuelve un número de resultados limitado y, si una de las webs encontradas es muy grande, es posible que sus resultados copen la gran mayoría de resultados, por lo que habrá otras webs que no serán encontradas.

Para solucionar esto, cambié ligeramente la manera en la que el script realizaba las búsquedas, de tal manera que en cada búsqueda toma el primer resultado encontrado, lo guarda como un resultado válido y añade la cadena "-site:resultado.dominio.es" a la cadena de búsqueda, y vuelve a repetirla, con lo que todos los resultados de esta web que ya hemos encontrado habrán desaparecido.

Se ha optado por usar site ya que las pruebas realizadas usando "-www" o "-mail" corrían el riesgo de eliminar cualquier resultado que contuviera la cadena "www" o "mail" en cualquier parte de la web, y no únicamente en la URL.

Aún así, se observan aún algunas anomalías en el funcionamiento de esta versión 0.2, como por ejemplo algunos nombres de host que desde la web se pueden encontrar pero que no son devueltos usando el API de Google. Este problema parece más un problema de Google que del script, pero en cualquier caso le pegaré una pensada a ver si se pudiera solucionar.

CORRECCIÓN: Según he mirado a posteriori, parece ser que estos nombres de hosts que no aparecen en el Script pero sí en la web de Google no existen, por lo que es altamente posible que sea el Script el que ofrece mejores resultados al atacar directamente al API de Google (La web accederá a una caché local?).

El segundo problema, en este caso teórico porque no he encontrado ningún sitio donde probarlo, es el problema en dominios que contengan varios niveles de subdominios, ya que el excluir "-site:resultado.dominio.es" eso va a excluir de la siguiente búsqueda también todos sus subdominios, es decir, "mail.resultado.dominio.es" también sería excluido, y por desgracia Google no proporciona ninguna palabra clave para hacer un "site exclusivo". Es algo sobre lo que también intentaré mejorar en futuras versiones.

Mientras tanto, acabo de colgar en tools.pentester.es la nueva versión, así que os animo a que la probeis y me mandeis cualquier otro problema que podais encontrar por correo electrónico (mirad en mi ficha personal, ahí se ve más o menos mi correo).

DESCARGA

Muchas gracias a todos por vuestro feedback :)

9 comentarios :

Jose Selvi dijo...

Por cierto, que no sé porque, pero me pillasteis en "un día tonto" el otro día, porque no caí que "-www" y "-mail" era simplemente excluir esas palabras de la búsqueda, pensé que eran algunas opciones de Google que no conocía :P

Si es que no se puede desayunar flojo por las mañanas... ;)

Gracias a todos!

Anónimo dijo...

Podríais usar la busqueda en bing:
IP:69.69.69.69
Por cada IP encontrada para obtener los dominios albergados, algo muy útil a la hora de realizar una auditoria web.

Aunque para eso ya existe el programa VHoster de SecurityByDefault que coge los datos de ahí.
http://www.securitybydefault.com/2009/05/vhoster-obtencion-de-virtualhost.html

Jose Selvi dijo...

Sí, tenía pensado usar LiveSearch para sacar las IPs, pero el problema es que he estado buscando algún API para hacerlo pero sólo lo he encontrado en .NET

La manera en la que había pensado hacerlo era precisamente haciendo sniffing de VHoster para ver que peticiones envía y luego hacermelas yo a mano en Perl :)

Pero eso lo dejaré para dentro de alguna semanas, que en 2 semanas entrego trabajos del doctorado y tengo que ir a muerte! ;)

Gracias por el aporte y por el comentario!

GigA ~~ dijo...

Buena evolución Jose, pilla muchos más resultados que la 0.1

Otra idea que quizás te sirva es añadirle salida por el proxy, para lo que podrías valerte de esto:

http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP/UserAgent.pm

Muy util para aquellos que no tenemos salida directa a Internet :-)

Suerte con el doctorado!

Jose Selvi dijo...

Muy buen aporte lo del proxy GigA!

Tomo nota para siguientes versiones :)

El problema que le veo es que yo uso directamente la clase para acceder al API de Google, así que estoy un poco atado a si esa clase permite definir un proxy o no.

Me miraré la documentación mejor a ver que posibilidades nos ofrece.

Gracias por el comentario y por el aporte! ;)

OzX dijo...

Hi Bro
Soy Ozx de Undersecurity.net
El otro dia Codie algo Similar ocupando la Api de Google (json ajax). (SIR)

http://foro.undersecurity.net/read.php?23,1102,1102#msg-1102

obtiene la lista de paginas apartir de un reverse dns

http://foro.undersecurity.net/read.php?23,881,1014#msg-1014

Lo que al buscar en una Pagina, podrias tener todos los sitios alojados en el mismo servidor, luego le entregas esta lista al programa a S.I.R para que busque en google todos los posibles inputs vulnerables para mysql , basandose en el google dork

site: sitio.com inurl:php

Luego de testearlo un buen rato me parecio increible que como decias estas "mini tools" se puede obtener tan buen resultado.

Te invito a la comunidad para que te des una vuelta y quien sabe porder codear un Tools Completa para Auditorias basandose en TargetSearch y S.I.R
Saludos Bro
Oz¡

Jose Selvi dijo...

Gracias OzX, ya me he dado de alta en vuestra comunidad, gracias por la invitación :)

plot dijo...

no hay problema, cualquie aporte para mejorar es valido.

millonario dijo...

voy a utilizarlo, espero que me sirva. gracias