Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # !/usr/bin/perl
- # MD5 Hash Crack (Bruteforce)
- # Author:VanGans
- # facebook : Extazy Hehe
- # Date : pwk,2 februari 2019
- # 100% working happy friends
- # coded with Linux(Ubuntu) thanks to all friends
- $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 v2.0 (Extazy)\n";
- print "VanGans - programmer\n";
- print "facebook.com/irfanarekporjo\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 van.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 van.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 (extazy) **** 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";
- }
- }
Add Comment
Please, Sign In to add comment