Monday, May 16, 2011

MD5 Cracker [perl]

Code:
#!/usr/bin/perl
use Digest::MD5 qw( md5_hex );
use LWP::UserAgent;
use HTTP::Request::Common;

print "MD5 Hash ToolKit [mr.pr0n]";

#*************************** [Main Menu] ******************************
menu:;
print "\nMenu:\n";
print " 1. Create your MD5 Hash. \n";
print " 2. Crack your MD5 Hash with Dictionary Attack.\n";
print " 3. Crack your MD5 Hash with Brute Force Attack.\n";
print " 4. Search for your MD5 Hash.\n";
print " 5. Exit.\n";
print "\nOption: ";
$option=;

if ($option!=1 && $option!=2 && $option!=3 && $option!=4 && $option!=5)
{
print "Oups!Wrong Option!!\n";
goto menu;
}
# Epilogh Option
if ($option==1)
{&create_md5}
if ($option==2)
{&dic_attack}
if ($option==3)
{&brute_attack}
if ($option==4)
{&search_md5}
if ($option==5)
{&quit}

#****************************** [Option 1] ******************************
sub create_md5
{
$word;
print "MD5 Hash Creator\n";
print "Give me your word: ";
$word = ;
chomp($word);
print "MD5 Hash is: ", md5_hex("$word"), "\n\n";
goto menu;
}
#****************************** [Option 2] ******************************
sub dic_attack
{
print "MD5 [Worldlist] Cracker [mr.pr0n]\n";
print "Enter MD5: ";
chomp($hash = );
if(length($hash)!=32)
{
die "$hash is NOT valid\n";
}
$words="passes.txt";
open (WORDLIST, $words);
print "Wordlist opened successfully!\n";
   @wordlist = ;
   for ($i = 0; $i < @wordlist; $i++){
      $h = $wordlist[$i];
       chomp($h);
        $dec=md5_hex($h);
       if($dec eq $hash){
         die "[+]Your password is: $h\n";}
}
print "[-]Not Cracked!!\n";
goto menu;
}
#****************************** [Option 3] ******************************
sub brute_attack
{
$min=1;
$max=10;
print "MD5 [BruteForce] Cracker [mr.pr0n]\n";
print "Enter Type: ";
chomp($type = );
if ($type=~"a") {
$alpha = "abcdefghijklmnopqrstuvwxyz";}
if ($type=~"A") {
$alpha = $alpha. "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}
if ($type=~"1") {
$alpha = $alpha."1234567890";}
if ($type=~"!") {
$alpha = $alpha. "!\"\$%&/()=?-.:\\*'-_:.;,";}
print "Enter MD5: ";
chomp($md5 = );
if(length($md5)!=32)
{die "$md5 is NOT valid\n";}
for ($j=1; $j<=10; $j++)
{mainbrute ($j);}
sub mainbrute
{
$CharSet = shift;
@RawString = ();
for ($i =0;$i<$CharSet;$i++){ $Brute[i] = 0;}
do{
for ($i =0; $i<$CharSet; $i++){
if ($Brute[$i] > length($alpha)-1){
if ($i==$CharSet-1){
print "�?h Shit!\nNo Results with type '$type' and $Chars chars.\n";
$try=0;
return false;
}
$Brute[$i+1]++;
$Brute[$i]=0;
}}
$pass = "";
for ($i =0;$i<$CharSet;$i++)
{
$pass = $pass . substr($alpha,$Brute[$i],1);
}
$hash = md5_hex($pass);
$try++;
print "$hash ($pass)\n";
if ($md5 eq $hash)
{
print "\n**FOUND PASSWORD** [ $pass ]\nTried $try passwords \n";
goto menu;
}
$Brute[0]++;
}while($Brute[$CharSet-1]
}
goto menu;
}
#****************************** [Option 4] ******************************
sub search_md5
{
print "Search for your MD5 Hash\n";
print "(�?atch your MD5 hash with six most famous online databases)";
print "\nEnter MD5: ";
chomp($hash = );
if(length($hash)!=32)
{
die "$hash is NOT valid\n";
}
$lwp = LWP::UserAgent->new;

#**** [md5oogle]****
$crack = "http://www.md5oogle.com/decrypt.php?input=$hash&meta=01";
$request = $lwp->request(HTTP::Request->new(GET=>$crack));
$c = $request->content =~ /Result: (.*?)<\/b>/;
if ($c) {
print "[md5oogle] Password: $1\n";
} else {

#**** [md5decrypter]****
$url = 'http://www.md5decrypter.com/index.php';
$response = LWP::UserAgent->new->post( $url, [ "hash" => $hash ] );
die "$url error: ", $response->status_line
unless $response->is_success;
die "Weird content type at $url -- ", $response->content_type
unless $response->content_type eq 'text/html';
if( $response->content =~ /Normal Text: <\/b>(.+)/ ) {
print "[md5Decrypter] Password: $1\n";
} else {

#**** [passcracking]****
$url = 'http://passcracking.ru/index.php';
$response = LWP::UserAgent->new->post( $url, [ "datafromuser" => $hash ] );
die "$url error: ", $response->status_line
unless $response->is_success;
die "Weird content type at $url -- ", $response->content_type
unless $response->content_type eq 'text/html';
if( $response->content =~ /(.+)<\/td>/ ) {
print "[PassCracking] Password: $1\n";
} else {

#**** [hashchecker] ****
$url = 'http://www.hashchecker.com/index.php';
$response = LWP::UserAgent->new->post( $url, [ "search_field" => $hash ] );
die "$url error: ", $response->status_line
unless $response->is_success;
die "Weird content type at $url -- ", $response->content_type
unless $response->content_type eq 'text/html';
if( $response->content =~ /

  • $hash is (.+)<\/b>/ ) {
    print "[HashChecker] Password: $1\n";
    } else {

    #**** [Milw0rm] ****
    $ua = $lwp->request(POST 'http://www.milw0rm.com/cracker/search.php',
    [ hash => "$hash", Submit => 'Submit', ] );
    @content = split(/[n]/, $ua->content);
    @password = split( /[><]/, $content[47]);
    if($password[1]) {
    print "[Milw0rm] Password: $password[1]\n";
    }else {

    #**** [GdataOnline] ****
    $gdo = $lwp->request(GET 'http://gdataonline.com/qkhash.php?mode=xml&hash='.$hash);
    @content = split(//, $gdo->content);
    @password = split( /[><]/, $content[1]);
    if(@password[0]) {
    print "[GdataOnline] Password: $password[0]\n";
    }
    else { print " Password Not Found!!"; }
    }}}}}
    goto menu;
    }
    #****************************** [Option 5] ******************************
    sub quit
    {
    exit(1);
    }
    #****************************** [The End] *******************************

  •  
     
     
     
     
     
     
     
     
     
    Save it as anything.pl
    You must have Active Perl installed. Google it Smile
    Go to CMD and type:
    cd [place where it is saved]
    ex. cd Desktop
    then: perl anything.pl

    [Image: wooo.jpg]

    No comments:

    Post a Comment