Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Top Posters

Who's Online (2)

Powered by Vanilla. Made with Bootstrap.
MD5 Cracker [PERL]
  • undead
    Posts: 822
    MD5 Cracker

    The code is not created by me. Credits goes to pr0n for the 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=<STDIN>;

    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 = <STDIN>;
    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 = <STDIN>);
    if(length($hash)!=32)
    {
    die \"$hash is NOT valid\n\";
    }
    $words=\"passes.txt\";
    open (WORDLIST, $words);
    print \"Wordlist opened successfully!\n\";
    @wordlist = <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 = <STDIN>);
    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 = <STDIN>);
    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]<length($alpha));
    }
    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 = <STDIN>);
    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 =~ /<b>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 bgcolor=#FF0000>(.+)<\/td><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 =~ /<li>$hash is <b>(.+)<\/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(/<result>/, $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 :)
    Go to CMD and type:
    cd [place where it is saved]
    ex. cd Desktop
    then: perl anything.pl
  • deep26
    Posts: 26
    thanks for the share. will look at it now..:)
  • Xin
    Posts: 3,251
    Yeah nice share ! :)
    Xin
  • .pl cant work with prolog ?
  • Thanks trying out right now ..
  • x3n0n
    Posts: 110
    Nice share, i'm using it right now :p
    Stupid online db's can't find the passwords i'm looking for -.-

    Thx !!