home *** CD-ROM | disk | FTP | other *** search
/ Hackers Toolkit v2.0 / Hackers_Toolkit_v2.0.iso / HTML / archive / Unix / c-src / apoc-crack.pl < prev    next >
Perl Script  |  1999-11-04  |  6KB  |  195 lines

  1. #!/usr/bin/perl -w
  2. # Apoc-Crack.pl by Adam Rogoyski (apoc@laker.net) Temperanc on EFNet irc
  3. # Copyright (C) 1997 Adam Rogoyski
  4. # Simple brute force attack on a unix encrypted password. checks all
  5. # printable 7-bit ascii characters.  
  6. # give it a file on the command line containing just an encrypted pw.
  7. # warning: this program may take thousands of years to finish one run.
  8. # bash-2.00$ ./apoc-crack.pl happy.pw
  9. # --- GNU General Public License Disclamer ---
  10. # This program is free software; you can redistribute it and/or modify
  11. # it under the terms of the GNU General Public License as published by
  12. # the Free Software Foundation; either version 2 of the License, or
  13. # (at your option) any later version.
  14. # This program is distributed in the hope that it will be useful,
  15. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. # GNU General Public License for more details.
  18.  
  19. use strict;
  20. my ($encrypted, $salt, $temp, $flag, $i, $j, $k, $l, $m, $n, $o, $p, $beep);
  21. $encrypted = <>;
  22. $salt = substr($encrypted, 0, 2);
  23. $temp = "";
  24. $flag = 0;
  25. for ($i = 33; $i < 126; $i++)
  26. {
  27.    $temp = crypt( chr($i), $salt);
  28.    if ($encrypted eq $temp)
  29.    {
  30.       $beep = chr(7);
  31.       printf "$encrypted = %s $beep\n", chr($i);
  32.       $flag = 1;
  33.       last;
  34.    }   
  35. }
  36. if ($flag) { exit 0; }
  37. else { print "Password is at least 2 Characters Long\n"; }
  38.  
  39. for ($i = 33; $i < 126; $i++) {
  40.    if ($flag) { exit 0; }
  41. for ($j = 33; $j < 126; $j++)
  42. {
  43.    $temp = crypt( chr($i) . chr($j), $salt);
  44.    if ($encrypted eq $temp)
  45.    {
  46.       $beep = chr(7);
  47.       printf "$encrypted = %s $beep\n", chr($i) . chr($j);
  48.       $flag = 1;
  49.       last;
  50.    }
  51. } }
  52. if ($flag) { exit 0; }
  53. else { print "Password is at least 3 Characters Long\n"; }
  54.  
  55. for ($i = 33; $i < 126; $i++) {
  56. for ($j = 33; $j < 126; $j++) {
  57.    if ($flag) { exit 0; }
  58. for ($k = 33; $k < 126; $k++)
  59. {
  60.    $temp = crypt( chr($i) . chr($j) . chr($k), $salt);
  61.    if ($encrypted eq $temp)
  62.    {
  63.       $beep = chr(7);
  64.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k);
  65.       $flag = 1;
  66.       last;
  67.    }
  68. } } }
  69. if ($flag) { exit 0; }
  70. else { print "Password is at least 4 Characters Long\n"; }
  71.  
  72.  
  73.  
  74.  
  75. for ($i = 33; $i < 126; $i++) {
  76. for ($j = 33; $j < 126; $j++) {
  77. for ($k = 33; $k < 126; $k++) {
  78.    if ($flag) { exit 0; }
  79. for ($l = 33; $l < 126; $l++) 
  80. {
  81.    $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l), $salt);
  82.    if ($encrypted eq $temp)
  83.    {
  84.       $beep = chr(7);
  85.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k) 
  86.                                       . chr($l);
  87.       $flag = 1;
  88.       last;
  89.    }
  90. } } } }
  91. if ($flag) { exit 0; }
  92. else { print "Password is at least 5 Characters Long\n"; }
  93.  
  94.  
  95.  
  96. for ($i = 33; $i < 126; $i++) {
  97. for ($j = 33; $j < 126; $j++) {
  98. for ($k = 33; $k < 126; $k++) {
  99. for ($l = 33; $l < 126; $l++) {
  100.    if ($flag) { exit 0; }
  101. for ($m = 33; $m < 126; $m++)
  102. {
  103.    $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
  104.                 . chr($m), $salt);
  105.    if ($encrypted eq $temp)
  106.    {
  107.       $beep = chr(7);
  108.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k) 
  109.                                       . chr($l) . chr($m);
  110.       $flag = 1;
  111.       last;
  112.    }
  113. } } } } }
  114. if ($flag) { exit 0; }
  115. else { print "Password is at least 6 Characters Long\n"; }
  116.  
  117.  
  118.  
  119. for ($i = 33; $i < 126; $i++) {
  120. for ($j = 33; $j < 126; $j++) {
  121. for ($k = 33; $k < 126; $k++) {
  122. for ($l = 33; $l < 126; $l++) {
  123. for ($m = 33; $m < 126; $m++) {
  124.    if ($flag) { exit 0; }
  125. for ($n = 33; $n < 126; $n++)
  126. {
  127.    $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
  128.                 . chr($m) . chr($n), $salt);
  129.    if ($encrypted eq $temp)
  130.    {
  131.       $beep = chr(7);
  132.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k) 
  133.                                       . chr($l) . chr($m) . chr($n);
  134.       $flag = 1;
  135.       last;
  136.    }
  137. } } } } } }
  138. if ($flag) { exit 0; }
  139. else { print "Password is at least 7 Characters Long\n"; }
  140.  
  141.  
  142.  
  143. for ($i = 33; $i < 126; $i++) {
  144. for ($j = 33; $j < 126; $j++) {
  145. for ($k = 33; $k < 126; $k++) {
  146. for ($l = 33; $l < 126; $l++) {
  147. for ($m = 33; $m < 126; $m++) {
  148. for ($n = 33; $n < 126; $n++) {
  149.    if ($flag) { exit 0; }
  150. for ($o = 33; $o < 126; $o++)
  151. {
  152.    $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
  153.                 . chr($m) . chr($n) . chr($o), $salt);
  154.    if ($encrypted eq $temp)
  155.    {
  156.       $beep = chr(7);
  157.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k) 
  158.                                       . chr($l) . chr($m) . chr($n)
  159.                                       . chr($o);
  160.       $flag = 1;
  161.       last;
  162.    }
  163. } } } } } } }
  164. if ($flag) { exit 0; }
  165. else { print "Password is at least 8 Characters Long\n"; }
  166.  
  167.  
  168.  
  169. for ($i = 33; $i < 126; $i++) {
  170. for ($j = 33; $j < 126; $j++) {
  171. for ($k = 33; $k < 126; $k++) {
  172. for ($l = 33; $l < 126; $l++) {
  173. for ($m = 33; $m < 126; $m++) {
  174. for ($n = 33; $n < 126; $n++) {
  175. for ($o = 33; $o < 126; $o++) {
  176.    if ($flag) { exit 0; }
  177. for ($p = 33; $p < 126; $p++)
  178. {
  179.    $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
  180.                 . chr($m) . chr($n) . chr($o) . chr($p), $salt);
  181.    if ($encrypted eq $temp)
  182.    {
  183.       $beep = chr(7);
  184.       printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k) 
  185.                                       . chr($l) . chr($m) . chr($n)
  186.                                       . chr($o) . chr($p);
  187.       $flag = 1;
  188.       last;
  189.    }
  190. } } } } } } } }
  191. if ($flag) { exit 0; }
  192. else { print "Password uses characters other than 7-bit Ascii\n"; }
  193.  
  194. exit 0;
  195.