Projet Sécurité Brute Force SSH and Hydra Auteur : Youcef BRAIK
Introduction : La sécurité est un des thèmes récurrents de la programmation. Chaque technique ou protocole utilisé dans le développement contient un risque, c est pourquoi il est important de prendre conscience de la sécurité et les techniques liées. Mon projet consiste à faire un tutoriel sur l utilisation de brute force SSH sous Hydra. Avant de passer aux principes d utilisation de Hydra, je vous expose en premier lieu l installation de Hydra sur différentes plateformes Linux, Windows. Hydra est un outil permet de réaliser des brute force en ligne c'est-à-dire d essayer toutes les combinaisons possibles de login et de mot de passe. Il est développé par le team HTC. Il est supposé d être le meilleur outil pour craquer des mots de passe en ligne. Il supporte plusieurs protocoles d authentification tels que ssh2, imap, ftp, etc. La version actuelle est 7.2, cet outil est disponible en ligne de commande en tapant la commande «hydra» dans une console et en mode graphique ( xhydra) Installation de Hydra : Sous BackTrack, Hydra est installé par défaut. Hydra dépend de la librairie libssh/libssh.h pour l utilisation du protocole ssh, pour l installer sous ubuntu, il faut taper la commande suivante : «sudo apt-get install libsshdev» Pour l installer sous linux, il faut télécharger le package Hydra en tapant la commande suivante «wget http://thc.org/releases/hydra-7.1-src.tar.gz», ensuite décompresser l archive en tapant la commande suivante : «tar xvzf hydra-7.1-src.tar.gz», une fois l archive est bien extrait, déplacer vers le répertoire Hydra en tant que root (super utilisateur) et taper la commande suivante (./configure && make && make install ). Pour installer Hydra sous windows, il faut installer cygwin ou avoir cygwin déjà installé et ensuite refaire la même procédure d installation sous linux. Utilisation : Hydra est utilisable en mode linge de commande en tapant la commande hydra et en mode graphique en tapant la commande xhydra. Pour l utilisation de Hydra à travers un proxy, il faut paramétrer les variables d environnement suivantes : HYDRA_PROXY_HTTP/HYDRA_PROXY_CONNECT HYDRA_PROXY_AUTH En ligne de commande : La syntaxe de base est : youcef@youcef-vgn-fz18m:~$ hydra Brute force SSH and Hydra Page 2
Hydra v5.9 [http://www.thc.org] (c) 2010 by van Hauser / THC <vh@thc.org> Syntax: hydra [[[-l LOGIN -L FILE] [-p PASS -P FILE]] [-C FILE]] [-e ns] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vv] server service [OPT] Options : -R Permet de restaurer une session précédente (utile en cas de crash ou interruption) -S connexion via SSL -s <PORT> Permet de spécifier le port d ecoute du serveur -l <LOGIN> ou -L <FILE> Spécifie un nom d utilisateur fixe (-l) ou un fichier qui contient des noms des utilisateurs (-L) -p <PASS> ou -P <FILE> Spécifie un mot de passe fixe (-p) ou un fichier de mots de passe (-P) -e ns Contrôles additionnels ("n" pour les mots de passe vides, "s" pour un identifiant vide) -C <FILE> Utilisation alternative à -L/-P. Syntaxe : "login:pass" -M <FILE> Permet de spécifier une liste de serveurs cibles pour paralléliser une attaque (une ligne par serveur) -o <FILE> Exporte les couples login/mot de passe valides dans un fichier plutôt que sur la sortie s tandard (stdout) -f Stoppe le programme dès l'obtention d'un couple valide (si -M est utilisé, un couple par serveur) -t <TASKS> Nombre d'attaques parallèles (par défaut 16) -w <TIME> Attente maximum (en sec) de la réponse serveur (par défaut : 30 secondes) -v / -V server Mode verbeux / Affichage systématique de la combinaison login/mot de passe Nom du serveur (mode exclusif avec l'option -M) service Service cible - cisco - pop3[-ntlm] - cisco-enable - postgres - cvs - rexec - ftp - rlogin - http-{get post}-form - rsh - http-proxy - sapr3 (requiert la compilation d'hydra avec l'option sapr3) - http[s]-{head get} - sip - icq - smb - imap[-ntlm] - smbnt - ldap2 - smtp-auth[-ntlm] - ldap3 - snmp - mssql - socks5 - mysql - ssh2 (requiert la compilation d'hydra avec l'option libssh) - nntp - svn - oracle-listener - teamspeak - pcanywhere - telnet - pcnfs - vmauthd - vnc Brute force SSH and Hydra Page 3
En mode graphique : L utilisation de Hydra est très simple en mode graphique, il suffit juste de taper la commande xhydra dans un terminal et la fenêtre de Hydra s affiche à l écran. L adresse IP de la machine victime Liste des adresses IPs des machines victime s Le protocole utilisé pour l authentificatio n La liste des utilisateurs Le port d écoute si 0 le port par défaut sera utilisé Mot de passe Le nom de l utilisateur ici La liste des mots de passe Le nombre de thread qui se lance en parallèle Le Time out en ms s Paramétrage de la connexion Lancer le Test Arrêter le Test Sauvegarder la console dans un fichier Effacer la console Brute force SSH and Hydra Page 4
Brute Force ssh avec Hydra : Pour faire un brute force, on aura besoin d un dictionnaire. Un dictionnaire présente une liste de mot de passe déjà testés. Le dictionnaire présent par défaut sous Back Track 5 se trouve dans : /pentest/passwords/wordlists/darkc0de.lst Le premier test qu on va faire, on va tester hydra en ligne de commande sur ma machine locale en tapant la commande suivante : hydra l root P /pentest/passwords/wordlists/darkc0de.lst 127.0.0.1 ssh Au bout de quelque temps, le login et le mot de passe s affiche sur la console LOGIN Password Avant de taper la commande hydra, on scanne notre réseau en utilisant l outil «nmpa» Brute force SSH and Hydra Page 5
Notre cible est la machine youcef-vgn-fz18m, on scan avec nmap les ports qui sont ouverts On voit bien que le port 22 est ouvert. Se qui signifie que le serveur SSH écoute sur le port 22 On lance Hydra en passant en paramétrés une liste de login et une liste de mots de passe On attend quelque minute, Hydra trouve le mot de passe de l utilisateur youcef Dans le test qui suit, on utilisera une option dans la ligne de commande hydra, cette option permet de générer des combinaisons de lettres et des chiffres. L option x 1 :9 :aa1 signifie essayer tous les mots de passe de longueur de 1 à 9 caractères en combinat les lettres minuscules, les lettres majuscules et le chiffres Brute force SSH and Hydra Page 6
L exemple qui suit montre l utilisation de Hydra en mode graphique L adresse ip de la machine victime Le protocole utilisé pour l authentificatio n Le port d écoute si 0 le port par défaut sera utilisé Le nom de l utilisateur ici c est root La liste des mots de passe Le nombre de thread qui se lance en parallèle Le Time out en ms s Paramétrage de la connexion Brute force SSH and Hydra Page 7
Démarrer le test Mot de passe trouvé Conclusion : Dans ce tutoriel, on avait montré la facilité de craquer un mot de passe en utilisant Hydra. Hydra permet de s assurer que les mots de passe qu on utilise sont sécurisés. Pour assurer la sécurité d un système, il faut utiliser des mots de passe long qui contient des chiffres, des lettres majuscules, minuscule et des caractères spéciaux, et il faut le changer périodiquement ainsi qu il faut modifier le paramétrage du serveur SSH pour qu il écoute sur un autre port et non le port 22. Ressource Web : http://www.madirish.net/content/hydra-brute-force-utility http://thc.org/thc-hydra/ http://www.madirish.net/content/hydra-brute-force-utility Brute force SSH and Hydra Page 8