#!/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: MoX-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 "\t[+] Merci $host :P Enjoy ;) \n\n"; exit(0); } } close($sock); } } print q( trez le hash MD5 ample : b2f3d1e0efcb5d60e259a34ecbbdbe00 sh MD5: ); $hash=; chomp ($hash); unless($hash =~ /[0-9a-fA-Z]{32}/) {die "n'est pas un md5 :-/ !\n"}; print "erche 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&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";