samedi 25 juin 2011

virtualhost finder, pour détecter les virtualhost d'un site

Après ma rapide introduction sur les outils permettant de trouver les virtualhost d'un site j'ai fait le mien en bash, parce que les deux qui me semblaient intéressants tournent sous ruby1.8 et je suis en ruby1.9 (et installer ruby1.8 pour un script c'est un peu ridicule).

Ducoup le script utilise le moteur de recherche bing et extrait les donnés (wget grep sed), seulement il y a une limitation, bing a besoin de javascript pour les pages supérieur à 20 ce qui fait que le script s’arrête à la page 20.
Si l'IP ciblé contient plus de 200 virtualhost le script ne pourra en lister que 200 au max, puisque wget n'a pas de moteur javascript.

J'ai pensé à un truc pour passer cette limitation mais je l'ai pas implémenté, cela consiste à faire une recherche avec ip: et ajouter -domain: en précisant le nom de ceux que ont déja été récupérés (20 premières pages) mais la requête ne serait pas accepté (trop longue) ducoup il faudrait séparer avec genre une dizaine de host en moins.

Ce qui donne 20 requêtes de 10 hosts qui crawl 20 pages = 400 pages et un résultat incertain (vu que l'on ne blacklist pas tous les domaines par requêtes on risque de se retrouver avec plein de doublon).
Donc comme indiqué j'ai pas testé car je pense que cela ferait trop de flood par rapport au résultat.

wget http://bricowifi.free.fr/utile/virtualhost-finder
chmod +x virtualhost-finder
./virtualhost-finder

fonctionnement:
1er argument l'IP (ipv4) ou le NDD
2 eme argument facultatif "w" pour écrire le résultat dans votre home.

ex:

./virtualhost-finder ebay.com

Searching virtualhost for 66.135.205.14

Get: http://www.bing.com/search?q=ip%3A66.135.205.14&go=&first=11
Get: http://www.bing.com/search?q=ip%3A66.135.205.14&go=&first=21
Get: http://www.bing.com/search?q=ip%3A66.135.205.14&go=&first=31

http://artist-index.ebay.com
http://billmelater.ebay.com
http://blogs.ebay.com
http://category-keyword.ebay.com
http://chatboards.ebay.com
http://clp-index.ebay.com
http://ebay.com
http://financing-center.ebay.com
http://giftcard.ebay.com
http://givingworks.ebay.com
http://id.ebay.com
http://keyword-index.ebay.com
http://keyword-index.motors.ebay.com
http://mail.ebay.com
http://pages.ebay.com
http://pages.ebay.co.za
http://pages.e-bay.de
http://pages.half.ebay.com
http://pages.motors.ebay.com
http://product-index.ebay.com
http://srx.main.ebayrtm.com
http://store-index.ebay.com
http://www.ebaygivingworks.com

Virtualhost found: 23

Voila, c'est pas forcement très propre comme script mais ça a le mérite de fonctionner (pour le moment, si bing modifie le moteur il y a de fortes chances pour que ça ne fonctionne plus)
Un problème? Venez en parler sur le forum, tout a une solution :D

4 commentaires:

Uggy a dit…

Un autre script en bash:
http://www.morningstarsecurity.com/research/bing-ip2hosts

* a dit…

ah ouai pas mal, ducoup j'ai fait le mien pour rien, en plus celui de morning star se limite pas à 200 vhost comme le mien :/

par contre à partir d'un ndd il récupère pas l'ip chez moi vu que j'ai pas de "resolveip" il aurait du mettre quelque chose du coreutils ou du style comme ping pour le mien.

En fait il utilise la version mobile du site bing, ce qui fait qu'il n'a pas la limitation javascript comme moi.

Bon, je vais peut etre maj le mien je sais pas trop.

Merci du tuyau

Uggy a dit…

Pour la resolution (comme indiqué dans le post de mon site) tu peux modifier
# IP=`resolveip -s "$1"`
IP=`dig "$1" +short`

Anonyme a dit…

Sinon... The Harvester que je découvre, a cette recherche (parmi d'autres):

./theHarvester.py -d ebay.com -b all

en retourne entre 70 et 80 au rayon virtuel hosts...

 
LinuxStore