Rabu, 12 Mei 2010

md5 bruteforcer simple :P

simple code aje... pake perl

dimana

char_set = jenis karakter (a=a-z, d=0-9, A=A-Z, x=symbol)
min_length = minimum lebar karakter
max_length = maximum lebar karakter
hash = MD5 hash yg akan di crack


nih code nya....

$ver = "01";  $dbgtmr = "1"; #Intervall of showing the current speed + lastpassword in seconds.    if ($dbgtmr<=0){ die "Set dbgtmr to a value >=1 !\n";};  use Digest::MD5 qw(md5_hex);  use Time::HiRes qw(gettimeofday);    if ($ARGV[0]=~"a") {   $alpha = "abcdefghijklmnopqrstuvwxyz";}  if ($ARGV[0]=~"A") {   $alpha = $alpha. "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}  if ($ARGV[0]=~"d") {   $alpha = $alpha."1234567890";}  if ($ARGV[0]=~"x") {   $alpha = $alpha. "!\"\$%&/()=?-.:\\*'-_:.;,";}    if ($alpha eq "" or $ARGV[3] eq "") {usage();};  if (length($ARGV[3]) != 32) { die "Sorry but it seems that the MD5 is not valid!\n";};    print "Selected charset for attack: '$alpha\'\n";  print "Going to Crack '$ARGV[3]'...\n";    for (my $t=$ARGV[1];$t<=$ARGV[2];$t++){   crack ($t);  }    sub usage{   print "\n\nMD5 Hash Bruteforce Kit v_$ver\n";   print "by unix_chro alias backtrack (311733@yahoo.com)\n";   print "Member in staff leader:elite-members,ubuntu-hackers\n\n";   print "USAGE\n";   print "./md5crack    \n";   print " Charset can be: [aAdx]\n";   print " a = {'a','b','c',...}\n";   print " A = {'A','B','C',...}\n";   print " d = {'1','2','3',...}\n";   print " x = {'!','\"',' ',...}\n";   print "EXAMPLE FOR CRACKING A MD5 HASH\n";   print "./md5crack.pl ad 1 3 900150983cd24fb0d6963f7d28e17f72\n";   print " This example tries to crack the given MD5 with all lowercase Alphas and all digits.\n";   print " MD5 Kit only tries combinations with a length from 1 and 3 characters.\n-------\n";   print "./md5crack.pl aA 3 3 900150983cd24fb0d6963f7d28e17f72\n";   print " This example tries to crack the given MD5 with all lowercase Alphas and all uppercase Alphas.\n";   print " MD5 Kit only tries passwords which length is exactly 3 characters.\n-------\n";   print "./md5crack.pl aAdx 1 10 900150983cd24fb0d6963f7d28e17f72\n";   print " This example tries to crack the given MD5 with nearly every character.\n";   print " MD5 Kit only tries combinations with a length from 1 to 10 characters.\n";   die "Quitting...\n";  }    sub crack{   $CharSet = shift;   @RawString = ();   for (my $i =0;$i<$CharSet;$i++){ $RawString[i] = 0;}   $Start = gettimeofday();   do{    for (my $i =0;$i<$CharSet;$i++){     if ($RawString[$i] > length($alpha)-1){      if ($i==$CharSet-1){      print "Bruteforcing done with $CharSet Chars. No Results.\n";      $cnt=0;      return false;     }     $RawString[$i+1]++;     $RawString[$i]=0;     }    }  ##################################################  #     $ret = "";     for (my $i =0;$i<$CharSet;$i++){ $ret = $ret . substr($alpha,$RawString[$i],1);}     $hash = md5_hex($ret);     $cnt++;     $Stop = gettimeofday();     if ($Stop-$Start>$dbgtmr){      $cnt = int($cnt/$dbgtmr);      print "$cnt hashes\\second.\tLast Pass '$ret\'\n";      $cnt=0;      $Start = gettimeofday();     }              print "$ARGV[3] != $hash ($ret)\n";     if ($ARGV[3] eq $hash){      die "\n**** Password Cracked! => $ret\n";     }  ##################################################  #    #checkhash($CharSet)."\n";      $RawString[0]++;   }while($RawString[$CharSet-1]$dbgtmr){    $cnt = int($cnt/$dbgtmr);    print "$cnt hashes\\second.\tLast Pass '$ret\'\n";    $cnt=0;    $Start = gettimeofday();   }     if ($ARGV[3] eq $hash){    die "\n**** Password Cracked! => $ret\n";   }    }









credit bwat suhu bloodiez

Tidak ada komentar:

Posting Komentar

 
;