Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.
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