EG Information

Main Index
EG Manual
Disclaimer
Legal Information
Hall of Fame
Hall of Shame
Member Rankings
Members List
Meet the Staff

Training Missions

Read Me First New
Basic Skills
Realistic Scenarios
Cryptography
Software Cracking
Linux ELF Binary Cracking
Logical Thinking
Programming
Patching
Steganography
Deface This Wall
/dev/null
/dev/urandom

Knowledge Bank

Discussion Forums
Enigma Chat New
RSS Feeds RSS
Articles / Tutorials
Videos
Online EG MP3 Player Radio
Enigma Zine
Downloads
Tools New

Code Resources

Submit Code
Ajax
ASM
Bash
C
CPP
Csharp
Delphi
Haskell
Java
Javascript
Jython
Lisp
mIRC
MySQL
Perl
PHP
Python
QBASIC
VisualBasic

Hakipedia: An open collaborative for all your information security needs.

The Urinal

Click Here To Vote For EG!

Has Enigma Group Helped You? Then Help Us By Advertising For Us. Place One Of The Following Images On Your Site.

enigma group

enigma group

enigma group

enigma group

Enigma Group's Code Bank


perl md5 bruteforcer

By: toast  -  Date Submitted: 2009-04-04 03:55:51

  1. #!/usr/bin/perl
  2. # use strict; Sorry next time i'll use it ;)
  3. # MD5 Hash Bruteforce Kit
  4. # by Iman Karim (iman.karim@smail.inf.fh-bonn-rhein-sieg.de)
  5. # URL : http://home.inf.fh-rhein-sieg.de/~ikarim2s/
  6. # Date : 11.02.2007
  7. # Info[0] : This Cracker is by far not the fastest! But it helped me alot to find "lost" passwords ;)
  8. # Info[1] : Written under Kubuntu Linux
  9. # Info[2] : If you can code a bit perl, you can modify it to crack sha etc too...
  10. # Greets to: Invisible!
  11. $ver = "01";
  12. $dbgtmr = "1"; #Intervall of showing the current speed + lastpassword in seconds.
  13.  
  14. if ($dbgtmr<=0){ die "Set dbgtmr to a value >=1 !n";};
  15. use Digest::MD5 qw(md5_hex);
  16. use Time::HiRes qw(gettimeofday);
  17.  
  18. if ($ARGV[0]=~"a") {
  19. $alpha = "abcdefghijklmnopqrstuvwxyz";}
  20. if ($ARGV[0]=~"A") {
  21. $alpha = $alpha. "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}
  22. if ($ARGV[0]=~"d") {
  23. $alpha = $alpha."1234567890";}
  24. if ($ARGV[0]=~"x") {
  25. $alpha = $alpha. "!@$%^&#*()+-=|\/<>~`:;[]{}|,.?_ ";}
  26.  
  27. if ($alpha eq "" or $ARGV[3] eq "") {usage();};
  28. if (length($ARGV[3]) != 32) { die "Sorry but it seems that the MD5 is not valid!n";};
  29.  
  30. print "Selected charset for attack: '$alpha'n";
  31. print "Going to Crack '$ARGV[3]'...n";
  32.  
  33. for (my $t=$ARGV[1];$t<=$ARGV[2];$t++){
  34. crack ($t);
  35. }
  36.  
  37. sub usage{
  38. print "nnMD5 Hash Bruteforce Kit v_$vern";
  39. print "by Iman Karim (iman.karim@smail.inf.fh-bonn-rhein-sieg.de)n";
  40. print "http://home.inf.fh-rhein-sieg.de/~ikarim2s/nn";
  41. print "USAGEn";
  42. print "./md5crack <charset> <mincount> <maxcount> <yourMD5>n";
  43. print " Charset can be: [aAdx]n";
  44. print " a = {'a','b','c',...}n";
  45. print " A = {'A','B','C',...}n";
  46. print " d = {'1','2','3',...}n";
  47. print " x = {'!','"',' ',...}n";
  48. print "EXAMPLE FOR CRACKING A MD5 HASHn";
  49. print "./md5crack.pl ad 1 3 900150983cd24fb0d6963f7d28e17f72n";
  50. print " This example tries to crack the given MD5 with all lowercase Alphas and all digits.n";
  51. print " MD5 Kit only tries combinations with a length from 1 and 3 characters.n-------n";
  52. print "./md5crack.pl aA 3 3 900150983cd24fb0d6963f7d28e17f72n";
  53. print " This example tries to crack the given MD5 with all lowercase Alphas and all uppercase Alphas.n";
  54. print " MD5 Kit only tries passwords which length is exactly 3 characters.n-------n";
  55. print "./md5crack.pl aAdx 1 10 900150983cd24fb0d6963f7d28e17f72n";
  56. print " This example tries to crack the given MD5 with nearly every character.n";
  57. print " MD5 Kit only tries combinations with a length from 1 to 10 characters.n";
  58. die "Quitting...n";
  59. }
  60.  
  61. sub crack{
  62. $CharSet = shift;
  63. @RawString = ();
  64. for (my $i =0;$i<$CharSet;$i++){ $RawString[i] = 0;}
  65. $Start = gettimeofday();
  66. do{
  67. for (my $i =0;$i<$CharSet;$i++){
  68. if ($RawString[$i] > length($alpha)-1){
  69. if ($i==$CharSet-1){
  70. print "Bruteforcing done with $CharSet Chars. No Results.n";
  71. $cnt=0;
  72. return false;
  73. }
  74. $RawString[$i+1]++;
  75. $RawString[$i]=0;
  76. }
  77. }
  78. ###################################################
  79. $ret = "";
  80. for (my $i =0;$i<$CharSet;$i++){ $ret = $ret . substr($alpha,$RawString[$i],1);}
  81. $hash = md5_hex($ret);
  82. $cnt++;
  83. $Stop = gettimeofday();
  84. if ($Stop-$Start>$dbgtmr){
  85. $cnt = int($cnt/$dbgtmr);
  86. print "$cnt hashes\second.tLast Pass '$ret'n";
  87. $cnt=0;
  88. $Start = gettimeofday();
  89. }
  90. print "$ARGV[3] != $hash ($ret)n";
  91. if ($ARGV[3] eq $hash){
  92. die "n**** Password Cracked! => $retn";
  93. }
  94. ###################################################
  95. #checkhash($CharSet)."n";
  96.  
  97. $RawString[0]++;
  98. }while($RawString[$CharSet-1]<length($alpha));
  99. }
  100.  
  101. sub checkhash{
  102. $CharSet = shift;
  103. $ret = "";
  104. for (my $i =0;$i<$CharSet;$i++){ $ret = $ret . substr($alpha,$RawString[$i],1);}
  105. $hash = md5_hex($ret);
  106. $cnt++;
  107. $Stop = gettimeofday();
  108. if ($Stop-$Start>$dbgtmr){
  109. $cnt = int($cnt/$dbgtmr);
  110. print "$cnt hashes\second.tLast Pass '$ret'n";
  111. $cnt=0;
  112. $Start = gettimeofday();
  113. }
  114.  
  115. if ($ARGV[3] eq $hash){
  116. die "n**** Password Cracked! => $retn";
  117. }
  118.  
  119. }
Return to perl category list

Who's Online

484 Guests, 100 Users
ckryptix, rabbidmind, asapong, Nasrudin, Diznablo, CollapsingWalls, mehtaparag, bitstrike, jnony, C, Nicid1, Nusquam-Redono-Sapientia, bazcrown, saifulfaizan, The End, Ultraminor, psychomarine, st3alth, themastersinner, pgmrlink, login, lionaneesh, ishkur88, mahraja, Mac, chekifr, gandalf88, Vap0r, t0ast, tantrum6226, BnE, Distorted, Psiber_Syn, Ausome1, invas10n, oldgoat, freedaysbecumei, BinaryShinigami, Rex_Mundi, Red_beard, Strobeflux, s0m3nak3dguy, Descent, teehee, machupicchu, Genetix, Anandarl, NotMyOwn, thegamerdude, Godzila, popo12341234, RedEvolution, velocity_b, myne17, teto111, aVoid, Central-Gsm, 1101, JackalReborn, InjectioN, h4lted, c0re, DisPater, markt4death, splatta, Jackowacko, saint556, Pyron2312, Azerion, howsens, white.hat.gone.bad, vazzilly, pwunkz, Ios, Inverted, QuarterCask, Infernoe11, deskata, cr4ck3rj4ck, Blizer, jasonmax, j0sh, gwenwavor, N4g4c3N, spizeyboy, Network X, Uino59, Jae Cee, ianFDK, saykov, medhaavee, zofy, demonkiller410, Stumble, SaMTHG, kishore, Raze, helasraizam, Venom1019, Jakabo