1
0
mirror of https://github.com/opsxcq/mirror-textfiles.com.git synced 2025-08-12 15:44:23 +02:00
Files

965 lines
25 KiB
Plaintext

+------------------------------------------------------+
| |
| KILLER CRACKER: Portable Un*x Password Cracker |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Version 8.00 LTD, Dated 7/28/91 |
| |
| Written By Doctor Dissector |
| Copyright (c) 1991, By Doctor Dissector |
| |
+------------------------------------------------------+
*** LIMITED EDITION !!!!! DO NOT DISTRIBUTE !!!!! LIMITED EDITION ***
License
-------
This program is NOT free software BUT may be used without charge or
payment in any form IF your copy is a "registered" distributed version.
You may modify it as much as you please, however, you MAY NOT
re-distribute it, in any shape or for: ie. modified OR unmodified,
without the expressed written consent (ie. e-mail) of Doctor
Dissector. (bbs.doctord@doomsday.spies.com)
This program was initially 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.
Disclaimer
----------
This program was written and released just to prove that Un*x
accounts can be effectively cracked utilizing modified DES password
encryption (crypt) routines and proper programming skills.
I, Doctor Dissector, the author of Killer Cracker, do not endorse
any type of illegal appropriation of computer accounts using programs
such as this; my goal is only to prove that the Un*x operating
system's greatest weakness in security lies in the /etc/passwd file.
Doctor Dissector will not be held responsible for the actions of
anyone who may misuse this program since he cannot control the actions
of the people who might become exposed to this program's use for illegal
means.
Quick Instructions
------------------
To compile under any operating system using "make", edit the file
"Makefile" included with this package to your needs and type "make".
File Listing & Description
--------------------------
WHATSNEW.800 -- Info on new modifications/additions to this version
KC.DOC -- This document file
KC.EXE -- MS/PC-DOS executable
KC.H -- Killer Cracker source code header file
KC.C -- Killer Cracker source code
MAKEFILE. -- Makefile for KC, edit this and use "make" to compile!
B_ORDER.C -- Determines if your machine is Network Byte Order
BCRYPT.H -- Bcrypt encryption source code header file
BCRYPT.C -- Bcrypt encryption source code
XFDES.H -- XFDES encryption source code header file
XFDES.C -- XFDES encryption source code
GOODWORD.W -- Collection of words from various sources
GIRLWORD.W -- Collection of female first names
Description
-----------
Killer Cracker (KC) is a program which effectively, and quickly,
encrypts a sequence of guesses (words) utilizing a modified form of the
DES Un*x password encryption alogrithm. These encrypted guesses are
then compared to the fields in any typical /etc/passwd file; any matches
are recorded for future reference.
Guesses to KC are read from several sources. The primary source of
guesses to encrypt come from a textfile (ASCII) of words separated by
CR/LF pairs or LFs (depending on operating system). Other guesses are
taken from each individual account in any /etc/passwd file; the login name
and two respective GECOS field entries. In addition, single characters
(a-z, A-Z, 0-9) and "funny" characters (^A-^Z, ESC, SPACE) can be tested
as guesses as well. KC also has the ability to make several combinations
for several guesses from one guess (i.e. test the guess in normal case,
uppercase, lowercase, and backwards) and the option to pre-pend or append
any number of characters to the beginning or end of any guessed word.
KC was also written in C source, which has been released and included
in KC's release package. The source was developed to be highly portable
with most other C compilers, especially the Un*x C compilers.
Execution
---------
Killer Cracker can be invoked using various methods from the command
line (shell prompt). Normally, KC will be called directly from the command
line; thus, usage from the command line will be discussed first. In order
to obtain a brief summary of KC's options from the command line, KC can be
invoked with the '-?' or '/?' flag. Incedentally, all flags to KC must be
either preceded by a '-' or a '/' character. The following info will
discuss KC's command line flags and offer detailed descriptions for each.
Under some Un*x shells, you may have to type the -? in double quotes ("-?")
in order to get the appropriate response.
Usage: kc -?bcfghlostu -<1|2>[:]<chars> -<p|w|v>[:]<filename> -z[:]<minutes>
kc -r[:]<filename>
Parms: -1 prefix chars -p /etc/passwd file -r restore file
-2 suffix chars -w guess word file -v valid account file
Flags: -? explain usage -b test backwards -c test up/low cases
-f test funny chars -g test GECOS fields -h hog resources
-l test login names -o suppress output -s single char test
-t test crypt result -u user based crack -z timeout (minutes)
Brief Summary Of Flags
----------------------
-? KC will print a brief summary of the available command line flags
as shown above.
Description Of Flags
--------------------
-p[:]<file> Filename/path+filename of the /etc/passwd file to be
cracked. The ':' character is optional (can be used to
clarify the command line). If no filename is specified,
KC will prompt you for one.
-w[:]<file> Filename/path+filename of the wordfile where all password
guesses are stored. Format of the words inside this
wordfile must be one word per line, no blank lines are
allowed. The ':' character is optional (can be used to
clarify the command line). If no filename is specified,
KC will prompt you for one.
-v[:]<file> Filename/path+filename of the output file, where all
valid account/password combinations will be saved.
The ':' character is optional (can be used to clarify the
command line). If no filename is specified, KC will
prompt you for one.
-r[:]<file> Filename/path+filename of the restorefile you would like
KC to read options and restoredata from. If this flag is
invoked without a following filename (i.e. "kc -r"), KC
will assume a default filename of "restore". Also note
that if this flag is specified, all other flags from the
command line will be ignored. The ':' character is
optional (can be used to clarify the command line).
-1[:]<char> The characters KC will be instructed to pre-pend to the
front of each word tested, one single character at a time.
For example, if you used the flag "-1:abc", each test
would test each word as "aWORD", "bWORD", and "cWORD".
-2[:]<char> The characters KC will be instructed to append to the
end of each word tested, one single character at a time.
For example, if you used the flag "-1:abc", each test
would test each word as "WORDa", "WORDb", and "WORDc".
-z[:]<time> Under the Un*x environment, this will instruct KC to
abort after the specified <time> in MINUTES.
-b KC will be instructed to create a word combination from the
available guesses as the reverse (backwards) from of the original
guess. KC is intelligent and will not repeat testing of guesses
which are the same foreward and backward (i.e. "MOM" backwards is
"MOM", KC will not test this guess in reverse). Refer to "Examples
Of Guesses" for more information.
-c KC will be instructed to create word combinations from the
available guesses in all uppercase and all lowercase. KC is
intelligent and guesses which are the same in all uppercase or
all lowercase will be skipped from testing in the respective
combination. See "Examples Of Guesses" for more information.
-f KC will be instructed to test the "funny" control characters ^A-^Z,
ESC, and SPACE as guesses before testing guesses from the wordfile.
-g KC will be instructed to test two words from the /etc/passwd GECOS
field of each individual account as guesses for that particular
account. KC will skip over entries in the GECOS field who's second
character is the '.' period character to avoid testing initials.
-h KC will be instructed to hog all available system resources under
(and ONLY under) the BSD Unix system. This means that KC will
attempt to raise the current resource limit of its process to the
maximum allowed value (if it is not at its maximum already). This
could result in dramatic performance increases as well as increased
suspicion to the process, but the end result is for you, the
end user to decide.
-l KC will be instructed to test the login name from the /etc/passwd
GECOS field of each individual account as a guess for that
particular account.
-o KC will be instructed to suppress all output from printing to the
local console/terminal. Normally, information about the current
session is printed to the standard output; however, on the Un*x
operating system where background processing requires output to be
directed away from the local console/terminal, verbose output could
be a problem. Also note that this flag, when executed under the
Un*x operating system, will automatically fork KC into the
background (returning you quickly to the shell prompt) and the
NOHUP flag (HUP signal ignore) will be placed on its process (so
logoff will not result in termination of the current session).
-s KC will be instructed to test the single characters, a-z, A-Z, and
0-9 as guesses before testing guesses from the wordfile.
-t KC will be instructed to test the result of a single, pre-installed,
encrypt/comparison using the default encryption routines. If you
get an encryption error, then your system WILL NOT effectively
crack passwords.
-u KC will be instructed to compare every word from the wordfile
avainst an account before moging to the next account. When
cracking by WORDS, KC will enable same-word-memory which
increses speed over cracking by users up to 40%. Normally,
KC will crack for passwords in the following format:
Default Format
--------------
word #1: test account #1's password
test account #2's password...
word #2: test account #1's password
test account #2's password...
word #3: test account #1's password
test account #2's password... (etc.)
This flag will instruct KC to follow the following format:
Optional Format
---------------
user #1's password: test word #1
test word #2
test word #3...
user #2's password: test word #1
test word #2
test word #3...
user #3's password: test word #1
test word #2
test word #3... (etc.)
Usage Examples
--------------
kc -c -p:passwd.212 -w:dict.txt -v:valid.212
The above command will instruct KC to read encrypted passwords
from the file passwd.212 (/etc/passwd format), read guesses from
the file dict.txt, and write any valid account/password
combinations to the file valid.212. All guesses will be tested
in normal, upper, and lowercase. Output will be verbose to the
console.
kc -cbo -ppwfile.txt -wwords.txt -vresults.txt
The above command will instruct Killer Cracker to read encrypted
passwords from the file pwfile.txt, read guesses from words.txt,
and write all valid account/password combinations into
results.txt. All guesses will be tested in normal, upper,
lowercase and reverse-normal, reverse-upper, and reverse-
lowercase. All output will be suppressed.
kc -glu -ppasswd.txt -wwords.txt -vvalid.txt
The above command will instruct Killer Cracker to read encrypted
passwords from passwd.txt, read guesses from words.txt, and write
valid account/password combinations to valid.txt. In addition,
the account/login names will be tested as passwords for each
account, and the GECOS field strings will be tested as passwords
for each account. When cracking begins, KC will crack passwords
using the optional format. Output will be verbose to the standard
output.
kc -c -p:passwd.txt
The above command will instruct KC to read encrypted passwords
from passwd.txt, interactively request the filenames for the
wordfile and the validfile, and test guesses in normal, upper,
and lowercase.
kc -rOLDCRACK.KC
The above command will instruct KC to read the restorefile
OLDCRACK.KC and restore the session as saved in that file.
Examples Of Guesses
-------------------
Killer Cracker can test words as normal, uppercase, lowercase,
reversed, and with numerical suffixes. The following table displays the
guesses for the words "Guess", "password", "PW", and 'MOM'. The '$' fields
are areas which are skipped because the guess would be a repeat and the
'X' fields are areas which are never accessed.
+-----------------------------------------------------------------------+
| Flags | Normal | Upcase |Lowcase |Reverse |Ureverse|Lreverse| Suffix |
|--------+--------+--------+--------+--------+--------+--------+--------|
| "c" |Guess |GUESS |guess |XXXXXXXX|XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |password|PASSWORD|$$$$$$$$|XXXXXXXX|XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |PW |$$$$$$$$|pw |XXXXXXXX|XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |MOM |$$$$$$$$|mom |XXXXXXXX|XXXXXXXX|XXXXXXXX|XXXXXXXX|
|--------+--------+--------+--------+--------+--------+--------+--------|
| "r" |Guess |XXXXXXXX|XXXXXXXX|sseuG |XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |password|XXXXXXXX|XXXXXXXX|drowssap|XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |PW |XXXXXXXX|XXXXXXXX|WP |XXXXXXXX|XXXXXXXX|XXXXXXXX|
| |MOM |XXXXXXXX|XXXXXXXX|$$$$$$$$|XXXXXXXX|XXXXXXXX|XXXXXXXX|
|--------+--------+--------+--------+--------+--------+--------+--------|
| "rc" |Guess |GUESS |guess |sseuG |SSEUG |sseug |XXXXXXXX|
| |password|PASSWORD|$$$$$$$$|drowssap|DROWSSAP|$$$$$$$$|XXXXXXXX|
| |PW |$$$$$$$$|pw |WP |$$$$$$$$|wp |XXXXXXXX|
| |MOM |$$$$$$$$|mom |$$$$$$$$|$$$$$$$$|$$$$$$$$|XXXXXXXX|
+-----------------------------------------------------------------------+
Killer Cracker's Symbols
------------------------
When Killer Cracker is cracking passwords and output is allowed to the
standard output, KC will print one of three symbols to the console for
each comparison done.
"-" This symbol is printed to the standard output when KC has
completed one encryption/comparison.
"+" This symbol is printed to the standard output when KC has
already cracked the account in question or if the account had
been flagged as "inactive." KC will skip the encryption/
comparison as a result.
"*" This symbol is printed to the standard output when KC is
skipping the particular encryption/comparision because the
guess tested would repeat a previous comparision using the
same word in a different configuration. See "Examples Of
Guesses" for information.
Quitting Killer Cracker
-----------------------
Normally, Killer Cracker will continue cracking until it has
completed the last word (in the default format) or the last account
(in the optional format). If cracking must be aborted in the middle of
a job, the normal terminate key sequence Control-C for MS/DOS machines,
Control-\ for Un*x can be used to stop the job, close all files
properly, and create a restorefile (named "restore") for future
continuation of the crack (if desired). If any other method is used to
terminate the crack job (powerdown, warm/cold boot, kill -9, etc) the
files may not be updated properly and data may be lost. If you are not
familiar with Un*x job control, and KC places itself in the background,
you can either send a SIGQUIT/SIGINT to the KC pid or you can bring
the KC process into the foreground and then type Control-C.
Also note that when KC is running under suppressed output mode,
the response to hitting Control-C may take up to several minutes on
MS/DOS machines; just hit Control-C like three times, then sit back
and wait for KC to abort (patience, my friend!).
Restorefile Format
------------------
Killer Cracker's option to restore aborted sessions or to "read"
options from a normal (ASCII) file can come in handy in many
circumstances.
The following text describes the format of this file and how KC
interprets the information in it. Note that the BASIC format of the
restorefile is "IDENTIFIER=TOKEN<newline>" where <newline> is either
a CR/LF pair or a LF (depending on system implementation). Case is
ignored in the IDENTIFIER but the TOKEN's case may be important in
filenames, accountnames, and words in a particular wordfile.
Example: Filename "restore"
---------------------------
Passwordfile=/etc/passwd
Wordfile=crackwords.txt
Validfile=valid.txt
Prefixes=abc
Suffixes=123
Flags=1rc
Timeout=0
Lastaccount=daemon
Lastword=phoenix
Description Of Identifiers
--------------------------
Passwordfile Filename of the passwordfile (same as -p<file> from
the command line).
Wordfile Filename of the wordfile (same as -w<file> from the
command line).
Validfile Filename of the validfile (same as -v<file> from
the command line).
Prefixes The characters which would be used to prefix the
words being tested (same as -1<chars> from the
command line).
Suffixes The characters which would be used to suffix the
words being tested (same as -2<chars> from the
command line).
Flags Flags which are currently active (same flags as
offered on the command line).
Timeout The minutes before Killer Cracker will abort the
restored session.
Lastaccount Last account cracked during an aborted session; the
first account to begin cracking when the session
begins (skip all preceding accounts). This
identifier is only read if the session is based on
users (if the -u flag is specified). If the -u
flag is specified in the "Flags" identifier and
this field does not exist or the account does not
exist in the passwordfile, KC will yield an error.
Lastword Last word cracked during an aborted session; the
first word to begin cracking from when the session
begines (skip all preceding words in the given
wordfile). This identifier is only read if the
session is based on words (default, no -u flag).
If this identifier is missing and cracking is based
on words, KC will yield an error. If the Lastword
word does not occur in the wordfile, the session
will start and end without cracking anything.
System Dependent Information
----------------------------
Implementation Options/Restrictions
-------------- -------------------------------------------------------
MS/PC-DOS Killer Cracker has an upper account limit of around
2000-3000 accounts per session (max accounts per
passwordfile) depending on how much system memory
you have free at the time of execution.
BSD Un*x If the '-o' flag is used, Killer Cracker will
automatically fork itself into the background and
the NOHUP flag (ignore HUP, hangup signal) will be set.
NOTE: KC has a special command line flag which can
be used ('-h') to "hog" all available system resources
to KC during any given session. This is a flag which
should be used with caution, because when KC hogs
resources, KC HOGS resources! (ie. on one system,
w/o resource hogging, KC got 12 crypts/second... with
hogging on, it got 37 crypts/second) This could arouse
suspicion upon the superuser's part as other users of
the system find they can't do shit while the cracker
is running. The timeout feature is enabled.
SYSV Un*x If the '-o' flag is used, Killer Cracker will fork
itself into the background as in BSD Un*x. The timeout
feature is enabled.
STRIPPED Signal processing (CONTROL-C) is ignored (hitting
CONTROL-C will not save KC's process state,
terminating the session "abruptly").
Notes
-----
1. When using the default format for cracking, Killer Cracker will
skip accounts which already have been cracked in the following
hypothetical format:
Default Format, Hypothetical Situation: 10 words, 10 users.
Word #1, Users Tested: 1,2,3,4,5,6,7,8,9,10
Word #2, Users Tested: 1,2,3,4,5,6,7,8,9,10
Word #3, Users Tested: 1,2,3,4,5,6,7,8,9,10 (Valid For User #3)
Word #4, Users Tested: 1,2,4,5,6,7,8,9,10
Word #5, Users Tested: 1,2,4,5,6,7,8,9,10
Word #6, Users Tested: 1,2,4,5,6,7,8,9,10 (Valid For User #9)
Word #7, Users Tested: 1,2,4,5,6,7,8,10 (Valid For User #5)
Word #8, Users Tested: 1,2,4,6,7,8,10
Word #9, Users Tested: 1,2,4,6,7,8,10
Word #10, Users Tested: 1,2,4,6,7,8,10
When using the [u] option, Killer Cracker will jump to the next
account when (if) a valid password is cracked for the current user.
2. When cracking accounts using Killer Cracking in "by-word" format,
encryption/comparisions take place up to 100% (2x) faster than when
cracking by users. This is due to an optimization in BCRYPT/XFDES which
allows KC to remember the mask of the current word being cracked and
the calculation does not have to be re-done for all other comparisions
with that same word. Note: these optimizations will not be as apparent
when cracking a small amount of users and/or when cracking the login/gecos
fields, as each user is tested against a different guess anyway.
------------------------------------------------------------------------------
Thanx to Razor, So76, Scooter, PLAGUE, VIz, and all others who aided in the
research and development of this password cracker.
-(c) 1991-----------------------------------------------------------------EOF-