facebook facebook twitter rss

MD5 Hash Crack (Bruteforce)

Author: R3NW4 , Published: 07-08-2015
# !/usr/bin/perl
# MD5 Hash Crack (Bruteforce)
# Author:R3NW4
# twitter.com/R3NW4
# Date : 21 / 1 / 2015
# this is fastest MD5 Cracker, and full free. it gives u the password %100
# coded with Linux(Ubuntu) thanks for all KURDISH Hackers and Forums

$dbgtmr = "1";

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]=~"1") {
$alpha = "abcdefghijklmnopqrstuvwxyz";}
if ($ARGV[0]=~"2") {
$alpha = $alpha. "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}
if ($ARGV[0]=~"3") {
$alpha = $alpha."1234567890";}
if ($ARGV[0]=~"4") {
$alpha = $alpha. "!\"\$%&/()=?-.:\\*'-_:.;,";}

if ($alpha eq "" or $ARGV[3] eq "") {usage();};
if (length($ARGV[3]) != 32) { die "Error:this is not vailed <MD5>
HASH, it should be 32 character length... \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 "MD5 HASH bruteforce Crack v1.0 (R3NW4)\n";
print "R3NW4 Hacker - programmer\n";
print "twitter.com/R3NW4\n";
print "Usage:\n";
print "perl r3nw4.pl <charset> <start.from> <length.charset> <MD5>\n";
print " <charset> must be: [1 , 2 , 3 , 4] or together. \n";
print " 1 = {abcdefghijklmnopqrstuvwxyz}\n";
print " 2 = {ABCDEFGHIJKLMNOPQRSTUVWXYZ}\n";
print " 3 = {1234567890}\n";
print " 4 = {!\"\$%&/()=?-.:\\*'-_:.;,}\n";
print " <start.from> must be a number >0 .and <length.charset> must
be a number = or >(start.from)\n ";
print " <MD5> must be exactly 32 character\n ";
print " EXAMPLES:\n ";
print "perl r3nw4.pl 12 2 3 900150983cd24fb0d6963f7d28e17f72\n ";
print " This example try to crack the given <MD5> with all lowercase
and uppercase\n ";
print " this example charset start from (2), and (3) is length of charset\n ";
print " perl r3nw4.pl 1234 1 10 900150983cd24fb0d6963f7d28e17f72\n ";
print " This example try to crack the given <MD5> with nearly every
character, and charset start from (1) to (10).\n ";
die "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-\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 "Error: Crack done with ($CharSet) <length.charset>. No
Result found. try again with another <length.charset>. or change
($alpha) <charset> chosen... \n";
$cnt=0;
return false;
}
$RawString[$i+1]++;
$RawString[$i]=0;
}
}
if ($CharSet<=0){ die " Error:Set <start.from> to a value more than (0)! \n"};

###################################################
$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 (R3NW4) **** Password Cracked Succes! **** => ($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 Succes! **** => ($ret)\n";
}

}

Like us on Facebook :