Détecter l’authentification sur un site web

Hacking

Allez aujourd’hui quelques petites commandes pour les équipes qui veulent vérifier ou détecter l’authentification sur les sites web de leur société est bien en place…
Il n’y a pas beaucoup de solution qui font ça « correctement ». Notamment parce que les méthodes d’authentifications varient fortement d’un site à l’autre (formulaire applicatif, SMB/NTLM, HTTP standard, certificat) mais en voilà quelques une pour commencer.

Détecter l’authentification sur un site web

Détecter l'authentification
Avec sa… son marteau et ses clous!

A la main, comme les vieux !

Par exemple, on peut utiliser wget accompagné de grep ou n’importe quel parseur de page web (PhantomJS par exemple) à la recherche de lien ou de champs type « login/mot de passe » :

titi@debian:~$ wget -qO- geekeries.org | grep login | wc -l 
1
titi@debian:~$ # pour le moins vieux, avec curl ça marche aussi...
titi@debian:~$ curl geekeries.org | grep login | wc -l
1

Soit la réponse est zéro, et on n’a pas trouvé de login, soit c’est un ou plus et il existe probablement une authentification par formulaire sur le site. Ce n’est pas super propre et il faut essayer tout ce qu’a pu imaginer le développeur du site comme nom pour les champs de « login » mais ça fait le boulot.

Semi-Automatique avec NMAP :

NMAP
Scanner NMAP

Bon le manuel, c’est rigolo deux secondes mais si vous voulez scanner les 36 000 sites de votre entreprise, ça va être long. C’est là que des outils comme NMAP interviennent. NMAP « tel quel » ne fait « que du scan réseau (et de port) », mais ça représente 5% des capacités de NMAP. En effet, l’outil embarque un moteur de script NSE (Nmap Scripting Engine) avec toute une flopée de scripts préexistants dont un qui nous intéresse particulièrement : http-auth-finder.

nmap -p 80,443 --script http-auth-finder --script-args 'http-auth-finder.withinhost=false,maxdepth=5,maxpagecount=50' unsite.tld
Starting Nmap 6.47 ( http://nmap.org ) at 2016-03-16 18:04 CET
Nmap scan report for unsite.tld (123.231.213.132)
Host is up (0.089s latency).
rDNS record for 123.231.213.132: unsite.tld 
PORT STATE SERVICE
80/tcp open http
443/tcp open https
| http-auth-finder: 
| Spidering limited to: maxdepth=5; maxpagecount=50; withinhost=unsite.tld
| url method
|_ https://unsite.tld:443/ HTTP: Basic
Nmap done: 1 IP address (1 host up) scanned in 9.29 seconds

De même sur un site présentant un formulaire (et mes excuses à Wikipédia pour ce scan) :

titi@debian:~$ nmap -p 80,443 --script http-auth-finder --script-args 'http-auth-finder.withinhost=false,maxdepth=5,maxpagecount=50' fr.wikipedia.org
Starting Nmap 6.47 ( http://nmap.org ) at 2016-03-16 18:07 CET
Nmap scan report for fr.wikipedia.org (91.198.174.192)
Host is up (0.022s latency).
rDNS record for 91.198.174.192: text-lb.esams.wikimedia.org
PORT STATE SERVICE
80/tcp open http
443/tcp open https
| http-auth-finder: 
| Spidering limited to: maxdepth=5; maxpagecount=50; withinhost=fr.wikipedia.org
| url method
|_ https://fr.wikipedia.org/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Wikip%C3%A9dia%3AAccueil+principal FORM
Nmap done: 1 IP address (1 host up) scanned in 20.40 seconds

Étonnamment, NMAP ne trouve pas de formulaire d’authentification sur geekeries.org, c’est dû au fait que je désactive le lien vers ce formulaire depuis l’accueil mais il pourrait aussi détecter le WordPress comme un grand avec d’autre script. L’autre avantage c’est que NMAP est capable de vous sortir un fichier formaté de type XML ou « grep-able » en sortie pour le réinjecter derrière dans un outil de traitement, un script de rapport ou ce que vous voulez !

Détecter… d’autres choses… sur votre site web

Après Nmap peut faire plus (genre : beaucoup… plus) que simplement trouver la page d’authentification du site : essayer la commande suivante sur votre site (et pas un autre)

nmap --script all votresite.tld

Mais alors attention là vous êtes loin (très loin) du scan gentil et silencieux que fait un nmap (-sS sans établir de connexion). Là, vous avez tambouriné à la porte de tous les ports ouvert de la cible (voir sur le chemin pour la joindre aussi)… donc ça pourrait être sera interprété comme une attaque par un admin firewall vigilant.

La méthode avec NMAP présente l’avantage d’être scriptable et adaptable (module CIFS, FTP) à l’infini… Un bon exemple c’est IVRE, qui fait automatise le scan NMAP à l’échelle industrielle (et sur lequel je vous prépare un article sur son installation).

Voilà, c’est tout pour aujourd’hui.
Bon weekend à tous !

PS: vous avez notez que la correction automatique essaye de remplacer NMAP par NAPALM : coïncidence ? Je ne crois pas…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.