Filename | md5crack.pl |
Permission | rw-r--r-- |
Author | bLogger_Jatilawang |
Date and Time | 15.15 |
Label | hacking |
Action |
$ver = "01";
$dbgtmr = "1"; #Intervall of showing the current speed + lastpassword in seconds.
...
if ($dbgtmr=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
crack ($t);
}
sub usage{
print "nnMD5 Hash Bruteforce Kit v_$vern";
print "USAGEn";
print "./md5crack
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 HASHn";
print "./md5crack.pl ad 1 3 900150983cd24fb0d6963f7d28e17f72n";
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 900150983cd24fb0d6963f7d28e17f72n";
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 900150983cd24fb0d6963f7d28e17f72n";
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
$Start = gettimeofday();
do{
for (my $i =0;$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
$hash = md5_hex($ret);
$cnt++;
$Stop = gettimeofday();
if ($Stop-$Start>$dbgtmr){
$cnt = int($cnt/$dbgtmr);
print "$cnt hashessecond.tLast Pass '$ret'n";
$cnt=0;
$Start = gettimeofday();
}
print "$ARGV[3] != $hash ($ret)n";
if ($ARGV[3] eq $hash){
die "n**** Password Cracked! => $retn";
}
################################################## #
#checkhash($CharSet)."n";
$RawString[0]++;
}while($RawString[$CharSet-1]
}
sub checkhash{
$CharSet = shift;
$ret = "";
for (my $i =0;$i
$hash = md5_hex($ret);
$cnt++;
$Stop = gettimeofday();
if ($Stop-$Start>$dbgtmr){
$cnt = int($cnt/$dbgtmr);
print "$cnt hashessecond.tLast Pass '$ret'n";
$cnt=0;
$Start = gettimeofday();
}
if ($ARGV[3] eq $hash){
die "n**** Password Cracked! => $retn";
}
}
0 komentar:
Posting Komentar