Md5 Hashları BruteForce İle Kırma

DarkCod3r

Key&RC4 Coder
Perl ile yazılmış script kullanarak MD5 Hashları Bruteforce tekniğiyle kırmanızı sağlicak çok güzel bir araç.

not defterine kaydedin sonra md5.pl olarak kaydedin ve activeperl de çalıştırın.

kolay gelsin

#!/usr/bin/perl
# use strict; Sorry next time i’ll use it ;)
# MD5 Hash Bruteforce Kit
# by Iman Karim ([email protected])
# URL : http://home.inf.fh-rhein-sieg.de/~ikarim2s/
# Date : 11.02.2007
# Info[0] : This Cracker is by far not the fastest! But it helped me alot to find "lost" passwords ;)
# Info[1] : Written under Kubuntu Linux (Throw away Windows!)
# Info[2] : If you can code a bit perl, you can modify it to crack sha etc too...
# Greets to: Invisible!
$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 Iman Karim (iman.karim\\@smail.inf.fh-bonn-rhein-sieg.de)\\n";
print "http:\\/\\/home.inf.fh-rhein-sieg.de\\/~ikarim2s\\/\\n\\n";
print "USAGE\\n";
print "./md5crack <charset> <mincount> <maxcount> <yourMD5>\\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 = 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]<length($alpha));
}

sub checkhash{
$CharSet = shift;
$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();
}

if ($ARGV[3] eq $hash){
die "\\n**** Password Cracked! => $ret\\n";
}

}
 
Üst