Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.
Wordlist MD5 Cracker + Suffixes - Perl Code Bank
Wordlist MD5 Cracker + Suffixes
To every word from a wordlist will be added some common suffixes and numbers and trying to 'crack' a MD5.
a = words + numbers from 1940 to 2012
b = words + number from 1 to 100
c = words + date numbers (ex: 2412, 0503)
d = make leet words (ex: ever = 3v3r)
e = words + suffixes (ex: 4you, 1234, 666)
Enjoy!
#!/usr/bin/perl
# Coded by Trizen
# Created on: 18 April 2010
# Last edit on: 09 March 2011
# Email: echo dHJpemVueEBnbWFpbC5jb20K | base64 -d
# Website: http://trizen.go.ro
sub Digest::base::clone;
sub Digest::base::digest;
sub Digest::base::add;
sub Digest::base::new;
use Digest::MD5 ('md5_hex');
$a = $ARGV[0];
if ($a) {
if ( $a =~ /^(-h|--help)$/ ) {
print "
\t\t\t*** Wordlist MD5 Cracker ***
Usage: $0 [MD5] [File] [Options]
Available Options: -abcde
Where:
a = words + numbers from 1940 to 2012
b = words + number from 1 to 100
c = words + date numbers (ex: 2412, 0503)
d = make leet words (ex: ever = 3v3r)
e = words + suffixes (ex: 4you, 1234, 666)
-v = verbose mode (shows words during hashing)
-l = hash original words from list too
[*] Example: $0 348148ed80df985f4ef034d9734bcc6e file.txt -x=abde
[!] Also you can use in script '\$list' and '\$md5' lines...
";
exit;
}
}
if ( $ARGV[0] ) {
for ( $nr = 0 ; $nr <= $#ARGV ; ++$nr ) {
if ( $ARGV[$nr] =~ /^-(.+)/ ) {
push @args, $ARGV[$nr];
}
push @args2, $ARGV[$nr];
}
}
$arg = join( '', @args );
if ( $arg =~ /a/ ) {
$A = 1;
}
if ( $arg =~ /b/ ) {
$B = 1;
}
if ( $arg =~ /c/ ) {
$C = 1;
}
if ( $arg =~ /d/ ) {
$D = 1;
}
if ( $arg =~ /e/ ) {
$E = 1;
}
foreach $argument (@ARGV) {
if ( $argument eq '-v' ) {
$verbose = 1;
}
if ( $argument eq '-l' ) {
$LIST = 1;
}
}
foreach $argv (@args2) {
if ( $argv =~ /^([a-fA-F\d]{32})$/ ) {
$md5 = $1;
}
if ( not $argv =~ /^-/ and $argv ne $md5 ) {
$list = $argv;
}
}
print "
\t ***************************************
\t > WordList MD5 Cracker <
\t < + sufixes >
\t > Coded by Trizen <
\t < 18 April 2010 >
\t ***************************************
\t";
unless ($list) {
print "\n=>> Type the wordlist name: ";
chomp( $list = <STDIN> );
}
die "\n[!] $!...\n\n" unless open WORDLIST, $list;
unless ($md5) {
print "\n=>> Insert a valid MD5: ";
chomp( $md5 = <STDIN> );
}
until ( $md5 =~ /^([a-fA-F\d]{32})$/ ) {
print "\n=>> Insert a valid MD5: ";
chomp( $md5 = <STDIN> );
}
$md5 = "\L$md5\E";
print "\n\nWorking... Please wait...\n";
sub die {
close WORDLIST;
die "\t\n Hash successfully cracked!\n\n\t$hash == $Word\n\n";
}
@suffixes = (
'`', '```', '^', '^^',
'^^^', '^&*', '^&*(', '~',
'~!@', '<>?', '|+_', '_',
'_+|', '-', '-=-', '-=\\',
'---', ',./', '!', '!)',
'!@', '!@#', '/', '.',
'(_)', '()', '()_', '()_+',
')_(', ')_+', ')_+|', ')(',
')(*', ')(*~!@', '[]', '@',
'@))(', '@#$', '@#$%', '$',
'$%^', '$%^&', '*', '*()',
'**', '***', '****', '{}',
'&', '&*(', '&*()', '#',
'#$%', '#$%^', '%', '%^&',
'%^&*', '+', '00', '000',
'0000', '000000', '007', '0099',
'0101', '04', '05', '06',
'07', '08', '09', '098',
'098123', '0987', '`1', '`1\\=',
'100', '1010', '111', '1111',
'111111', '112', '1122', '112233',
'`12', '`12-=\\', '1209', '121',
'1211', '1212', '121212', '123',
'123--', '123#', '123098', '123123',
'1232', '123321', '1234', '12340987',
'1234321', '12344321', '12345', '123456',
'1234567', '12345678', '123456789', '1234qwer',
'1234wasd', '123654', '123qwe', '1337',
'1q2w3e', '1q2w3e4r', '1q2w3e4r5t', '1qa2ws',
'222', '2o11', '2o12', '2o1o',
'2oo9', '(%3', '321', '333',
'3333', '3v3r', '4321', '444',
'456', '4ev3r', '4ever', '4life',
'4ng3l', '4sex', '4u', '4y0u',
'4you', '555', '5555', '654321',
'666', '6666', '69sex', '777',
'7777', '7up', '888', '8888',
'909', '9900', '999', '9999',
'a', 'aa', 'aaa', 'aaaa',
'aaaaa', 'aaaaaa', 'abc123', 'admin',
'angel', 'asd', 'asdasd', 'asdf',
'asdfg', 'asdfgh', 'azerty', 'boss',
'eu', 'foryou', 'justme', 'l0l',
'l33t', 'linux', 'lol', 'lol123',
'me4u', 'pass', 'qaws', 'qazwsx',
'qwer', 'qwerty', 'r00t', 'reqw',
'root', 's3x', 'saqw', 'sex',
'sex69', 'sexxx', 'test', 'test123',
'tux', 'us', 'wasd', 'win32',
'x', 'x7', 'xxx'
);
sub MD5 {
if ( $Word ne $lastword ) {
if ($verbose) {
print "$Word\n";
}
$hash = md5_hex($Word);
if ( $md5 eq $hash ) {
¨
}
}
$lastword = $Word;
}
foreach $key (@suffixes) {
$Word = $key;
&MD5;
}
if ($LIST) {
while ( defined( $_ = <WORDLIST> ) ) {
chomp( $word = $_ );
next unless $word;
$Word = $word;
&MD5;
}
}
while ( defined( $_ = <WORDLIST> ) ) {
chomp( $word = $_ );
next unless $word;
if ($E) {
foreach $key (@suffixes) {
$Word = $word . $key;
&MD5;
}
}
if ($A) {
for ( $year = 1940 ; $year <= 2012 ; ++$year ) {
$Word = $word . $year;
&MD5;
}
}
if ($B) {
for ( $nr = 1 ; $nr <= 100 ; ++$nr ) {
$Word = $word . $nr;
&MD5;
}
}
if ($C) {
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '01';
&MD5;
}
for ( $number = 1 ; $number <= 29 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '02';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '03';
&MD5;
}
for ( $number = 1 ; $number <= 30 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '04';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '05';
&MD5;
}
for ( $number = 1 ; $number <= 30 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '06';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '07';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '08';
&MD5;
}
for ( $number = 1 ; $number <= 30 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '09';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '10';
&MD5;
}
for ( $number = 1 ; $number <= 30 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '11';
&MD5;
}
for ( $number = 1 ; $number <= 31 ; ++$number ) {
if ( $number < 10 ) {
$nr = "0$number";
}
else {
$nr = $number;
}
$Word = $word . $nr . '12';
&MD5;
}
}
if ($D) {
$word =~ s/o/0/gi;
$Word = $word;
&MD5;
$word =~ s/0/o/gi;
$Word = $word;
&MD5;
$word =~ s/s/5/gi;
$Word = $word;
&MD5;
$word =~ s/5/s/gi;
$Word = $word;
&MD5;
$word =~ s/t/7/gi;
$Word = $word;
&MD5;
$word =~ s/7/t/gi;
$Word = $word;
&MD5;
$word =~ s/z/2/gi;
$Word = $word;
&MD5;
$word =~ s/2/z/gi;
$Word = $word;
&MD5;
$word =~ s/i/1/gi;
$Word = $word;
&MD5;
$word =~ s/1/i/gi;
$Word = $word;
&MD5;
$word =~ s/a/4/gi;
$Word = $word;
&MD5;
$word =~ s/e/3/gi;
$Word = $word;
&MD5;
$word =~ s/3/e/gi;
$Word = $word;
&MD5;
$word =~ s/e/3/gi;
$Word = $word;
&MD5;
$word =~ s/o/0/gi;
$Word = $word;
&MD5;
$word =~ s/i/1/gi;
$Word = $word;
&MD5;
$word =~ s/t/7/gi;
$Word = $word;
&MD5;
$word =~ s/7/t/gi;
$Word = $word;
&MD5;
$word =~ s/s/5/gi;
$Word = $word;
&MD5;
$word =~ s/g/9/gi;
$Word = $word;
&MD5;
$word =~ s/z/2/gi;
$Word = $word;
&MD5;
$word =~ s/9/g/gi;
$Word = $word;
&MD5;
$word =~ s/4/a/gi;
$Word = $word;
&MD5;
$word =~ s/3/e/gi;
$Word = $word;
&MD5;
$word =~ s/1/i/gi;
$Word = $word;
&MD5;
$word =~ s/2/z/gi;
$Word = $word;
&MD5;
$word =~ s/5/s/gi;
$Word = $word;
&MD5;
$word =~ s/7/t/gi;
$Word = $word;
&MD5;
}
}
close WORDLIST;
die "\n[!] Done... The hash '${md5}' wasn't cracked...\n\n";
Comments
Sorry but there are no comments to display