EVet Arkadaşlar Size Md5cracker Perl'ini Paylaşcam
Kod:
#!/usr/bin/perl
# use strict; Sorry next time i'll use it ;)
# MD5 Hash Bruteforce Kit
# by Iman Karim (iman.karim@smail.inf.fh-bonn-rhein-sieg.de)
# 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. "ABCDEFGHIİJKLMNOPQRSTUVWXYZ";}
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 "Md5 Bulunamadi!\n";};
print "Secilen Md5 hash : '$alpha\'\n";
print "Cozumleniyor '$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 default (\default.\@mit.tc)\n";
print "http:\/\/home.inf.fh-rhein-sieg.de\/~ikarim2s\/\n\n";
print "~~KULLANIM~~\n";
print "./md5cracker <charset> <mincount> <maxcount> <yourMD5>\n";
print " Karakterler Boyle olmali: [aAdx]\n";
print " a = {'a','b','c',...}\n";
print " A = {'A','B','C',...}\n";
print " d = {'1','2','3',...}\n";
print " x = {'!','\"','§',...}\n";
print "~~Ornek Cozumlenecek Md5 HAsh~~\n";
print "./md5cracker.pl ad 1 3 900150983cd24fb0d6963f7d28e17f72\n";
print " Ornegin yukaridaki kodlamada 1 ile 3 karakter kucuk harf ve sayilar seklindedir.\n";
print "./md5cracker.pl aA 1 10 900150983cd24fb0d6963f7d28e17f72\n";
print " Ornegin yukarida 3 ile 10 karakter kucuk harf ve buyuk harftir. \n";
print "./md5cracker.pl aAdx 1 10 900150983cd24fb0d6963f7d28e17f72\n";
print "./www.tekplatform.com | Turkce ceviri: Ceberus\n";
die "Md5 bekleniyor...\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 basladi! $CharSet karakterliden sonuc bulunamadi.\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();
}
if ($ARGV[3] eq $hash){
die "\n**** Sifre Cozuldu! => $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**** Sifre Cozuldu!Sifre: => $ret\n";
}
}
e]
Yeni Bir MEtin Belgesi Olşturun Kodu İçine Atin Farkli Kaydet'e Basip md5.pl die kaydedin ardindan dosyayi perl/bin klasörüne Atin
Kullanımı
./md5cracker <charset> <mincount> <maxcount>
Örn:/md5cracker.pl aA 1 10 900150983cd24fb0d6963f7d28e17f72
perl md5.pl as3dsc43df31352 aA 1 10