logo Homepage
+  NewbieContest
|-+  Divers» Hacking» Les md5
Username:
Password:
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: Les md5  (Lu 12602 fois)
Mic3276
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 13


Voir le profil
« le: 10 Août 2006 à 05:42:03 »

Salut, il y a pas longtemps, alors que j'étais sous Windows, j'utilisais Cain pour bruteforcer les md5.

Je voudrais savoir si vous connaissez l'équivalent sur Linux, pour bruteforcer les md5 pures(ceux de 32 caractères). J'ai essayé John the Ripper, mais il ne fonctionne apparemment qu'avec des variantes de md5. Tant qu'à MDCrack, il ne compile pas sur mon ordi 64 bit.

C'est ça qui est ça..

Auriez-vous une solution?
Journalisée
Nebelmann

Profil challenge

Classement : 462/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1357


Voir le profil
« #1 le: 13 Août 2006 à 09:44:05 »

euh ça m'étonne que john ne marche pas avec un MD5 de base...
Journalisée

-- Nebelmann -- Registered linux user #429186
«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
Mic32768
Profil challenge

Classement : 1033/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #2 le: 18 Août 2006 à 05:02:52 »

Moi aussi, ça m'a étonné, mais ça m'a l'air bien vrai

Mais j'ai vraiment besoin d'aide! J'ai essayé de décrypter ça (avec John the Ripper):
0cc175b9c0f1b6a831c399e269772661 (qui signifie 'a')
mais ça marque: '0 passwords loaded'
et si je le mets dans un fichier, il marque 2 password loaded.. donc il n'interprète pas bien le hash.
Si quelqu'un est capable de bruteforcer ça sur Linux, dis-moi comment s'il vous plaît!

A+
Journalisée
Gardel

Profil challenge

Classement : 670/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1012


Voir le profil
« #3 le: 18 Août 2006 à 15:11:25 »

J'ai eu le même problème avec John et les md5.
Mais je n'ai pas trouvé comment faire ^^
Mais normalement John The Ripper sait tout faire
Journalisée

Selon le postulat que les filles, c'est du temps accordé et de l'argent dépensé : Filles = Temps . Argent
Et comme chacun le sait, "le temps c'est de l'argent", donc : Temps = Argent
Par conséquent : Filles = Argent . Argent
Et parce que, "l'argent est la racine du mal" : Argent = sqrt(Mal)
On en déduit que : Filles = sqrt(Mal).sqrt(Mal)
Force est de constater que : Filles = Mal
Crisis

Profil challenge

Classement : 316/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 86


Voir le profil
« #4 le: 18 Août 2006 à 15:31:52 »

Ou autrement, utilisez des sites avec des dico
~ http://ice.breaker.free.fr/
~ http://md5.c.la/
Pour ne pas les citer.
Journalisée
lordzak

Profil challenge

Classement : 2131/54282

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #5 le: 18 Août 2006 à 16:08:23 »

j'ai codé un algorithme basique de brute force en PHP si ca vous interresse ; il faudra que je le recode en C/C++... mais déjà si ça vous interresse je peux le balancer. C'est un algo simple, que vous pouvez evidemment adaptez à n'importe quel algorithme de cryptage. Pour le md5, c'est pas compliqué, en php c'est md5($chaine) ^^

C'est pas en récursif, on peut reprendre à partir d'une chaine sans problème, donc ça prend moins de mémoire. Je sais que le PHP c'est pas génial pour ce genre d'application mais pour les chaines de caractères c'est quand même plus facile (c'est pour ça que je ne l'ai pas directement codé en C).

Mais bon ca n'a rien de bien compliqué comme algo.

Si en plus qqun veut le réécrire en C/C++ ca pourrait rendre service

A++

PS : on peut se servir de l'algo pour générer des rain bow table of course
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
Gardel

Profil challenge

Classement : 670/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1012


Voir le profil
« #6 le: 18 Août 2006 à 16:24:40 »

Tu me le montrera juste par curiosité Je verrai si j'ai les compétences pour le refaire en C
Journalisée

Selon le postulat que les filles, c'est du temps accordé et de l'argent dépensé : Filles = Temps . Argent
Et comme chacun le sait, "le temps c'est de l'argent", donc : Temps = Argent
Par conséquent : Filles = Argent . Argent
Et parce que, "l'argent est la racine du mal" : Argent = sqrt(Mal)
On en déduit que : Filles = sqrt(Mal).sqrt(Mal)
Force est de constater que : Filles = Mal
lordzak

Profil challenge

Classement : 2131/54282

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #7 le: 18 Août 2006 à 16:54:36 »

ok mais tu me le rend après ^^
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
Crisis

Profil challenge

Classement : 316/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 86


Voir le profil
« #8 le: 18 Août 2006 à 16:59:09 »

Moi ça m'intérèsse en tout cas.
Pas pour le retransmettre en C parce que j'ai pas le niveau je pense, mais pour m'en servir, je veux bien.
Journalisée
lordzak

Profil challenge

Classement : 2131/54282

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #9 le: 18 Août 2006 à 17:11:50 »

haaan l'interressé... attendez j'en fais qqchose de propre et je l'envoi... enfin je pense :p
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
Gardel

Profil challenge

Classement : 670/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1012


Voir le profil
« #10 le: 18 Août 2006 à 17:22:07 »

Ok je te le rend après avec des intérêts
Journalisée

Selon le postulat que les filles, c'est du temps accordé et de l'argent dépensé : Filles = Temps . Argent
Et comme chacun le sait, "le temps c'est de l'argent", donc : Temps = Argent
Par conséquent : Filles = Argent . Argent
Et parce que, "l'argent est la racine du mal" : Argent = sqrt(Mal)
On en déduit que : Filles = sqrt(Mal).sqrt(Mal)
Force est de constater que : Filles = Mal
S0410N3
Administrateur

Profil challenge

Classement : 10/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1260


Voir le profil WWW
« #11 le: 18 Août 2006 à 18:34:03 »

en nature les intérets ?
Journalisée

Enjoy (copyleft de quelqu'un qui a trop parlé)

S0410N3

-------------------------------------------------------------------------------------
La folie est le prix à payer pour le temps passé à être trop lucide.
-------------------------------------------------------------------------------------
http://forum.hardware.fr/hfr/Discussions/Societe/francais-repere-repaire-sujet_19265_1.htm
Mic32768
Profil challenge

Classement : 1033/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #12 le: 18 Août 2006 à 19:15:55 »

...

Intéressant le bruteforcer en php!
Journalisée
lordzak

Profil challenge

Classement : 2131/54282

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #13 le: 18 Août 2006 à 19:48:56 »

Voili voilà :

Code:
<?php

$alphabet 
'abcdefghijklmnopqrstuvwxyz';

// password de départ
if(isset($_GET['pass'])) $pwd $_GET['pass']; 
else 
$pwd=$alphabet[0];

$size_alph strlen($alphabet);
$size_pwd strlen($pwd);
$position $size_pwd-1// focus

$fini 0;
while(!
$fini)
{
if(tester_password($pwd))
{
echo $pwd;
$fini 1;
}

$position=strlen($pwd)-1// on place le focus sur le dernier caractère

// tant que l'on a le dernier caractère, on remonte
while($pwd[$position]==$alphabet[$size_alph-1]) $position--;

// Si on a trop remonté, on crée un nouveau caractère
if($position<0)
{
$pwd.=0// ajout d'un élément vide

$size_pwd=strlen($pwd); // on actualise la taille
// on remet tout à zéro :
$first_letter=$alphabet[0];
for($i=0;$i<$size_pwd;$i++) $pwd[$i]=$first_letter;
}
else
{
// sinon on incrémente le caractère sur lequel on a le focus
$current_char=$pwd[$position];
$i=0
$next_letter='';
// on cherche la lettre suivante dans l'alphabet
while(!$next_letter)
{
if($alphabet[$i]==$current_char$next_letter=$alphabet[$i+1];
$i++;
}
// on met à jour la caractère
$pwd[$position]=$next_letter;

// tous les caractères qui suivent le caractère changé doivent être remis à zéro  
for($i=$position+1;$i<$size_pwd;$i++) $pwd[$i]=$alphabet[0];
}
}

function 
tester_password($pwd)
{
// Routine de vérification à changer selon les besoins :
$enc md5($pwd)
if($enc == 'hash à cracker') return 1;
else return 0;
}

?>
Si vous avez des améliorations mais surtout des optimisations je suis preneur !
Au niveau des améliorations, je pense à un max_char ; mais ça tout le monde peut le faire c'est pas bien compliqué ; enfin, si ca interresse qqun je peux le faire.


Have fun !
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
Mic32768
Profil challenge

Classement : 1033/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #14 le: 19 Août 2006 à 08:04:21 »

Salut!

Je crois bien que je vais essayer de transporter ça en c++, si j'en suis capable

Mais pour ceux que ça  intéresse, j'ai trouvé comment bruteforcer les MD5 avec John
Voici les étapes:

1-Télécharger John the Ripper (chez moi, ça fonctionne qu'avec la version 7): http://ftp://ftp.ibiblio.org/pub/linux/distributions/openwall/projects/john/1.7

2-Télécharger la patch: http://www.openwall.com/john/contrib/john-1.7-rawmd5-ipb2-4.diff.gz
3-Décompressez John ou vous voulez.
4-Décompressez le fichier contenu dans l'archive de la patch à l'intérieur du dossier 'src' de John.
5- Positionnez-vous dans le répertoire 'src' de John à l'aide de la console,

Il va maintenant falloir patcher la source originale pour qu'elle puisse accepter les MD5 standards.

6-patch -p2 < john-1.7-rawmd5-ipb2-4.diff
7-Tapez 'make' pour voir les architectures disponibles. Choisissez celle qui vous correspond.
8- Tapez 'make clean [votre-architecture-ici]

Vous pouvez ensuite aller dans le répertoire 'run' et exécuter John normalement avec le support des MD5 standards.

Voilà, j'espère que ça aura été utile à quelqu'un
Journalisée
Pages: [1] 2
  Imprimer  
 
Aller à: