Dimanche le 26 juillet 2009 à 06:37

MD5Spider, Reversing d’un hash MD5

Par Mohammed CHERIFI

Parmi les grands avantages de l’algorithme de hachage MD5 est le fait qu’il est irréversible, autrement dit à sens unique, du coup même si on connais la sortie, il est difficile de trouver l’entrée qui a produit cette sortie.

C’est pour cette raison que la fonction MD5 est fréquemment utilisée pour sécuriser les mots de passes dans les bases de données! en effet plusieurs CMS réputés ,comme Joomla/Drupal/OsCommerce etc.. , l’utilise comme solution de cryptage de mot de passes des utilisateurs.

La recherche autour du reversing de l’algorithme de hashage MD5 est toujours active, or à ce jour, on a pas encore parvenu à le casser! par contre il existe des outils qui permettent de bruteforcer un password, d’où le brutfeorcing est un type d’attaque qui a pour principe de tenter toutes les combinaisons possibles jusqu’à ce qu’il tombe sur le bon passe! du coups ça risque de prendre des jours voir des années si le passes est long ou contient des caractères spéciaux.

Parmi les outils que je vous recommande :

Les tests de performances on été effectués sur une machine avec un processeur Quad Core QX6700 (2.66Ghz) supporté par 4Go de RAM DDR2, une carte graphique Nvidia 8800GTX le tout sur carte mère basée sur un chipset Intel P45.

Et comme on a pas toujours le temps de bruteforcer des passwords et que ça demande un matériel puissant pour plus de rapidité, des « MD5 Reverse Databases (MD5RDB) » sont apparus sur la toile, leurs principe est de rassembler un nombre immense de correspondances (plaintext/hash) dans une table remplie à partir d’un dictionnaire, des passes déja crackés ou de mots contenu dans une page web, le remplissage est souvent automatisé comme il peut se faire manuellement par les utilisateurs, ainsi on peut questionner la base de données sur un md5 et cette dernière nous retourne son plaintext si il est connu.

il existe sur internet beaucoup de site MD5RDB qui offrent ce service gratuitement qui deviennent de plus en plus nombreux, la raison pour laquelle j’ai conçu MD5Spider: un petit script en PERL qui permet d’interroger une bonne dizaines de sites offrant ce service et récupérer le plaintext du hash si il existe dans leurs bases de données, ça vous permettra de gagner du temps avant de penser au bruteforcing de vos passes .

Voici à quoi ça ressemble son éxecution en ligne de commande :

md5spider

Ci-dessous le code source :

#!/usr/bin/perl

print q(
/---------------------------------------------------\
|                    MD5 Spider 1.0                 |
|      Mohammed CHERIFI - mohammed@mcherifi.org     |
\---------------------------------------------------/
);

use IO::Socket;

sub findme()
{
my $md5  =   $_[0];
my $host   = $_[1];
my $uri    = $_[2];
my $pdata  = $_[3].$md5;
my $regexp = $_[4];
$datalen   = length $pdata ;

syswrite STDOUT, "\n\n\tRecherche sur $host"

my $sock = new IO::Socket::INET (
PeerAddr ="$host",
PeerPort =80,
Proto ="tcp"
);

if(!$sock){
print " [!] Connection time out : $!\n";
return false;
}
else
{

print $sock "POST /$uri"."$md5"." HTTP/1.1\n";
print $sock "Host: $host\n";
print $sock "Referer: $host\n";
print $sock "Accept-Language: en-us\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "User-Agent: MorX-Zilla\n";
print $sock "Connection: Keep-Alive\n";
print $sock "Cache-Control: no-cache\n";
print $sock "Content-Length: $datalen\n\n";
print $sock "$pdata\n";

while ($answer = <$sock>)
{
if ($answer =~ /$regexp/ )
{
print "Cracked ! \n\n\n\t"
sleep(1);
print "Le plaintext est : ".$1."\n\n\t";
print "[+] Merci $host :P Enjoy ;) \n\n";
exit(0);
}
}
close($sock);
}
}

print q(
Etrez le hash MD5
Example : b2f3d1e0efcb5d60e259a34ecbbdbe00
hash MD5: );
$hash=$_1;
chomp ($hash);
unless($hash =~ /[0-9a-fA-Z]{32}/) {die "n'est pas un md5 :-/ !\n"};
print "Recherche en cours ....\n";

@sites = (
["passcracking.ru","/index.php?xD=","datafromuser=","lor=#FF0000>(.*?)<\/td>.*?<\/td><\/"],
["md5.benramsey.com","/md5.php?hash=","","TA.(.*?)..><\/s"],
["md5.noisette.ch","/md5.php?hash=","","TA.(.*?)..><\/s"],
["gdataonline.com","qkhash.php?mode=xml&amp;hash=","","t>(.*?)<\/re"],
["md52.altervista.org","index.php?md5=","","d: .*?ed\">[^\[](.*?)<\/font><\/b"]
);

$siteindex = 0;

foreach (@sites){
$site   = $sites[$siteindex][0];
$uri    = $sites[$siteindex][1];
$pdata  = $sites[$siteindex][2];
$regex  = $sites[$siteindex][3];
findme($hash,$site,$uri,$pdata,$regex);
$siteindex++;
}

print "\n\nash introuvable! John est ton ami ;)\n\n";

Télécharger md5spider.pl

Partager cet article:
  • Twitter
  • Facebook
  • Google Bookmarks
  • del.icio.us
  • Netvibes
  • viadeo FR
  • Digg
  • LinkedIn
  • Slashdot
  • Sphinn
  • Mixx
  • Blogplay
  • Identi.ca
  • Print
  • Ping.fm
  • email
  • Posterous
  • Reddit
  • Yahoo! Buzz
  • PDF
  • RSS
  • Diigo
  • Fark
  • Blogosphere News
  • blogtercimlap
Tags :, , , ,

Articles similaires

  • No Related Post

4 Commentaires to MD5Spider, Reversing d’un hash MD5

Avatar

Jester

août 4th, 2009 at 12 h 22 min

je sais pas si ce ci peut s’appeler « Reversing d’un hash » … c’est pas du RE je trouve …

Avatar

pynsso

septembre 22nd, 2009 at 22 h 51 min

3tatek khatrek t publié had l code source :D

Avatar

Canyo****N

octobre 25th, 2009 at 14 h 44 min

md5 avec grain de sel et beaucoup de poivres et on en pa

Avatar

Canyo****N

octobre 25th, 2009 at 14 h 44 min

md5 avec grain de sel et beaucoup de poivres et on en parle plus ;) lol

Réagissez à ce billet

Categories

Derniers commentaires

  • Victor: Roseny : Pour avoir les mois en Français voici mon code : $dateWidget = new sfWidgetFormI18nDate(array(...
  • abdessamad: Salam, Salutation pour cet article, N.B :  » Un md5 est une chaine de caractère en hexadécimal...
  • 0x1337: Nice tuto bien structuré et synthétisé ! La question qui se pose est ce un attaquant peut faire un Privilege...
  • Roseny: Bonjour, comment fais-t’on pour mettre les mois en français?
  • Laurent: Bonjour Mohammed et merci pour ce tuto. Que faut-il modifier pour que le champ date soit en un seul bloc au...
  • Stack: dommage que le co.ma était hacké aussi
  • Technologix: Très bon article, gg ;)
  • Wail: très bien expliqué mon khoya, génial
  • UpDeL: Respect !
  • El King Zizou: trés bonne explication j’aimerai bien voir des autres articles des attaques sur le web :)...

Flickr PhotoStream

  • Au dessus des montagnes
  • Nuages
  • Insolite hopital marocain
  • Plage bouznika
  • Maroc Blog awars with vladimire
  • Linux Party 2010 - EMI (Maroc)
  • Mawazine 2008
  • Essaouira
  • Rabat Ville with baba mimoun
  • Fucking CowBoyz
  • Essaouira 2009 - En attente de l'arrivé du cheb khaled!
  • Linux Install party Mohammadia

Twitter Feed


Warning: fread() [function.fread]: Length parameter must be greater than 0 in /homepages/44/d193174039/htdocs/mcherifi/wp-content/plugins/wordpress-twitter/BiBTweets.php on line 199
  • mcherifi: Underground Parking System http://bit.ly/aI440T original! le 27 Jul 2010 10:58
  • mcherifi: @halflings un moment j'ai pensé qu'il s'agit d'une erreur, c'est en lisant bien que j'ai compris que ya aussi #freelansing lol le 27 Jul 2010 10:38 en réponse à halflings
  • mcherifi: Comment réaliser sa première photographie en freelensing? http://bit.ly/daZewv le 27 Jul 2010 09:45
  • mcherifi: Une nouvelle loi vient d’être adoptée en #Tunisie , elle intérdit les fessées données aux enfants! Qu'allez vous faire si c'était au #Maroc ? le 26 Jul 2010 16:57
  • mcherifi: Faut-il suivre ses passions ou s’orienter vers du lucratif ? http://bit.ly/99Nsiu le 26 Jul 2010 16:30
  • mcherifi: Safari v4 & v5 critical vulnerability in the AutoFill feature http://bit.ly/9yVKco #safari #security #autofill le 26 Jul 2010 14:41
  • mcherifi: RT: @agharass : Est ce que vous avez un compte http://meme.yahoo.com ? Plz RT le 24 Jul 2010 21:20
  • mcherifi: @A_T_J pas encore mon ami, la soirée vient à peine de commencer ;) ce n'est pas qu'on tweetant pas qu'on dors :P le 24 Jul 2010 03:06 en réponse à A_T_J
  • mcherifi: Trop drôle! Insultes de développeurs http://ping.fm/SKdvT #fordeveloppersonly le 20 Jul 2010 09:02
  • mcherifi: Si vous aimez les pentests voici un ISO pour s'entrainer avec l'OS le plus vulnérable au monde http://ping.fm/a5rKi #damnvulnerablelinux le 20 Jul 2010 08:58
  • mcherifi: Oulah! c'est mon 1000 tweet, Happy day à tous! le 20 Jul 2010 08:56
  • mcherifi: Frameworks PHP: Symfony vs CodeIgniter http://ping.fm/MnLvy le 14 Jul 2010 15:42
  • mcherifi: D'ici fin juillet, l'enveloppe annuelle de la compensation sera déjà épuisée ! Que va faire l'Etat ? http://ping.fm/t2ym2 le 14 Jul 2010 14:00
  • mcherifi: Real Social Dynamics Nation : Smart people http://ping.fm/g2zfw le 14 Jul 2010 11:26
  • mcherifi: just achieved all WabLab HackMe challenges http://bit.ly/dClKUj Actual Rank: Morocco 1, World 10, waiting for the next contests.. le 11 Jul 2010 16:52
  • mcherifi: le monde est fondé sur des conventions, ce que accepte la majorité est souvent ce qui est adopté même si il est faux! le 11 Jul 2010 10:49
  • mcherifi: Youpii, ma carte son Creative Sound Blaster Live marche à merveille sous Ubuntu Lucid lynx, VIVA LINUX <3 ! le 10 Jul 2010 22:20
  • mcherifi: si vous avez du mal avec les dns google voici une version standalone du chat audio/video dans gmail 3http://ping.fm/S76qv le 06 Jul 2010 15:32