Le principe d'un bruteforcer est d'essayer toutes les combinaisons de caractères possibles pour trouver le bon mot de passe, à partir d'une liste connue. Il existe 2 principales méthodes concernant ces listes de caractères:
1- les wordlist: (listes de mots): Ce sont des fichiers texte contenant une liste des mots de passe fréquemment utilisés. Le bruteforcer ouvrira ce fichier et testera un à un tous les mots qu'il contient.
2- Les générateurs: dans ce cas, le bruteforcer génère lui même les mots de passe et ne va pas les chercher ailleurs. Il utilise une liste de caractères qu'il va coller, les uns à coté des autres, de façon à finir par avoir une chaine de caractères qui sera testée en tant que mot de passe.
L'exemple que je vous montrerai maintenant repose sur la deuxième méthode. Il se base sur les boucles. Une boucle pour chaque caractère du mot de passe. (Si le mot de passe a une longueur de 3 caractères, on va mettre 3 boucles et ainsi de suite)
/*on déclare un tableau contenant la liste des caractères*/
- CODE:
$chars = array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'1', '2', '3', '4', '5', '6', '7', '8', '9');
/********************************
on déclare 3 boucles en admettant
que le mot de passe a une longueur
de 3 caractères, puis on affiche le résultat
********************************/
- CODE:
for($i = 0; $i < count($chars); $i++)
{ for($j = 0; $j<count($chars); $j++)
{ for($k = 0; $k<count($chars); $k++)
{
echo $chars[$i]."".$chars[$j]."".$chars[$k]."<br>";
}
}
}
En prenant en compte que le nombre des caractères utilisés est de 61 et que nous avons un mot de passe long de 3 caractères, on va se retrouver avec 61^3 mots de passes possibles, soit 226981.
Ce code source n'est pas vraiment à un brute-forcer, il ne sert qu'à afficher les possibilités, mais si au lieu d'afficher, on lui aurait dit par exemple de se connecter sur un site et tester les pass, cela aurait été autre chose. Cet exemple a ainsi pour but de présenter le squelette d'un bruteforcer et la façon dont il fonctionne.