home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl -w
- # Apoc-Crack.pl by Adam Rogoyski (apoc@laker.net) Temperanc on EFNet irc
- # Copyright (C) 1997 Adam Rogoyski
- # Simple brute force attack on a unix encrypted password. checks all
- # printable 7-bit ascii characters.
- # give it a file on the command line containing just an encrypted pw.
- # warning: this program may take thousands of years to finish one run.
- # bash-2.00$ ./apoc-crack.pl happy.pw
- # --- GNU General Public License Disclamer ---
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
-
- use strict;
- my ($encrypted, $salt, $temp, $flag, $i, $j, $k, $l, $m, $n, $o, $p, $beep);
- $encrypted = <>;
- $salt = substr($encrypted, 0, 2);
- $temp = "";
- $flag = 0;
- for ($i = 33; $i < 126; $i++)
- {
- $temp = crypt( chr($i), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i);
- $flag = 1;
- last;
- }
- }
- if ($flag) { exit 0; }
- else { print "Password is at least 2 Characters Long\n"; }
-
- for ($i = 33; $i < 126; $i++) {
- if ($flag) { exit 0; }
- for ($j = 33; $j < 126; $j++)
- {
- $temp = crypt( chr($i) . chr($j), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j);
- $flag = 1;
- last;
- }
- } }
- if ($flag) { exit 0; }
- else { print "Password is at least 3 Characters Long\n"; }
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- if ($flag) { exit 0; }
- for ($k = 33; $k < 126; $k++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k);
- $flag = 1;
- last;
- }
- } } }
- if ($flag) { exit 0; }
- else { print "Password is at least 4 Characters Long\n"; }
-
-
-
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- for ($k = 33; $k < 126; $k++) {
- if ($flag) { exit 0; }
- for ($l = 33; $l < 126; $l++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k)
- . chr($l);
- $flag = 1;
- last;
- }
- } } } }
- if ($flag) { exit 0; }
- else { print "Password is at least 5 Characters Long\n"; }
-
-
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- for ($k = 33; $k < 126; $k++) {
- for ($l = 33; $l < 126; $l++) {
- if ($flag) { exit 0; }
- for ($m = 33; $m < 126; $m++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
- . chr($m), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k)
- . chr($l) . chr($m);
- $flag = 1;
- last;
- }
- } } } } }
- if ($flag) { exit 0; }
- else { print "Password is at least 6 Characters Long\n"; }
-
-
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- for ($k = 33; $k < 126; $k++) {
- for ($l = 33; $l < 126; $l++) {
- for ($m = 33; $m < 126; $m++) {
- if ($flag) { exit 0; }
- for ($n = 33; $n < 126; $n++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
- . chr($m) . chr($n), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k)
- . chr($l) . chr($m) . chr($n);
- $flag = 1;
- last;
- }
- } } } } } }
- if ($flag) { exit 0; }
- else { print "Password is at least 7 Characters Long\n"; }
-
-
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- for ($k = 33; $k < 126; $k++) {
- for ($l = 33; $l < 126; $l++) {
- for ($m = 33; $m < 126; $m++) {
- for ($n = 33; $n < 126; $n++) {
- if ($flag) { exit 0; }
- for ($o = 33; $o < 126; $o++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
- . chr($m) . chr($n) . chr($o), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k)
- . chr($l) . chr($m) . chr($n)
- . chr($o);
- $flag = 1;
- last;
- }
- } } } } } } }
- if ($flag) { exit 0; }
- else { print "Password is at least 8 Characters Long\n"; }
-
-
-
- for ($i = 33; $i < 126; $i++) {
- for ($j = 33; $j < 126; $j++) {
- for ($k = 33; $k < 126; $k++) {
- for ($l = 33; $l < 126; $l++) {
- for ($m = 33; $m < 126; $m++) {
- for ($n = 33; $n < 126; $n++) {
- for ($o = 33; $o < 126; $o++) {
- if ($flag) { exit 0; }
- for ($p = 33; $p < 126; $p++)
- {
- $temp = crypt( chr($i) . chr($j) . chr($k) . chr($l)
- . chr($m) . chr($n) . chr($o) . chr($p), $salt);
- if ($encrypted eq $temp)
- {
- $beep = chr(7);
- printf "$encrypted = %s $beep\n", chr($i) . chr($j) . chr($k)
- . chr($l) . chr($m) . chr($n)
- . chr($o) . chr($p);
- $flag = 1;
- last;
- }
- } } } } } } } }
- if ($flag) { exit 0; }
- else { print "Password uses characters other than 7-bit Ascii\n"; }
-
- exit 0;
-