Brut 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

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]

 

 

 

Rectangle à coins arrondis: -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
Mode verbeux / Affichage systématique de la combinaison login/mot de passe
server
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

Options :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

Rectangle à coins arrondis: L’adresse IP de
la machine
victime
 


Rectangle à coins arrondis: Le port d’écoute si 0 le port par défaut
sera utilisé
Rectangle à coins arrondis: Le protocole
utilisé pour
l’authentification
Rectangle à coins arrondis: Liste des adresses IPs
des machines victimes

 

Rectangle à coins arrondis: La liste des utilisateursRectangle à coins arrondis: Liste des mots de passes Rectangle à coins arrondis: Mot de passeRectangle à coins arrondis: Le nom de
l’utilisateur

 

Rectangle à coins arrondis: Paramétrage de la
connexion
Rectangle à coins arrondis: Le Time out en msRectangle à coins arrondis: Le nombre de
threads qui se
lancent  en parallèle

Rectangle à coins arrondis: Lancer le Test
 


Rectangle à coins arrondis: Sauvegarder la
console dans un fichier 
Rectangle à coins arrondis: Effacer la consoleRectangle à coins arrondis: Arrêter le Test

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Brute Force SSH and 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

 


 

Rectangle à coins arrondis: Login Rectangle à coins arrondis: Mot de passe
 

 

 

 


Le deuxième test qu’on fera, on teste hydra sur une machine distance, dans notre cas on le utilisera une machine virtuelle.

Avant de taper la commande hydra, on scanne notre réseau en utilisant l’outil «nmpa »

 

 

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

 

L’exemple qui suit montre l’utilisation de Hydra en mode graphique

 

Rectangle à coins arrondis: Le port
d’écoute si 0 le
port par défaut
sera utilisé
Rectangle à coins arrondis: Le protocole
utilisé pour
l’authentification
Rectangle à coins arrondis: L’adresse ip de
la machine victime 
victime

 

Rectangle à coins arrondis: Le nombre de
threads qui se
lancent en parallèle
Rectangle à coins arrondis: Le nom de
l’utilisateur ici
c’est root
Rectangle à coins arrondis: La liste des
mots de
passe

 

Rectangle à coins arrondis: Paramétrage de la
connexion
Rectangle à coins arrondis: Le Time out en ms

 

 

 

 

Rectangle à coins arrondis: Mot de passe
trouvé
Rectangle à coins arrondis: Démarrer le test

 

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