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 ) {
            &die;
        }
    }
    $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