283 lines
13 KiB
Plaintext
283 lines
13 KiB
Plaintext
|
John the Ripper's command line syntax.
|
||
|
(Updated in/for the jumbo patch by Jim Fougeron)
|
||
|
|
||
|
When invoked with no command line arguments, "john" prints its usage
|
||
|
summary.
|
||
|
|
||
|
The supported command line arguments are password file names and
|
||
|
options. Many of the supported options accept additional arguments.
|
||
|
|
||
|
You can list any number of password files right on the command line of
|
||
|
"john". You do not have to specify any options. If valid password
|
||
|
files are specified but no options are given, John will go through
|
||
|
the default selection of cracking modes with their default settings.
|
||
|
|
||
|
Options may be specified along with password files or on their own,
|
||
|
although some require that password files be specified and some do not
|
||
|
support operation on password files.
|
||
|
|
||
|
All options are case sensitive, can be abbreviated as long as the
|
||
|
abbreviations are unambiguous, can be prefixed with two dashes
|
||
|
(GNU-style) or with one dash, and can use "=" or ":" to indicate an
|
||
|
argument (if supported for a given option).
|
||
|
|
||
|
The supported options are as follows, square brackets denote optional
|
||
|
arguments:
|
||
|
|
||
|
--single[=SECTION] "single crack" mode
|
||
|
|
||
|
Enables the "single crack" mode, using rules from the configuration
|
||
|
file section [List.Rules:Single]. If --single=Single_2 then the rules
|
||
|
from [List.Rules:Single_2] section would be used.
|
||
|
|
||
|
--wordlist=FILE wordlist mode, read words from FILE,
|
||
|
--stdin or from stdin
|
||
|
|
||
|
These are used to enable the wordlist mode.
|
||
|
|
||
|
--utf8 enable UTF-8 conversion
|
||
|
|
||
|
John defaults to assuming ISO-8859-1 when converting plaintexts or salts
|
||
|
to UTF-16. Using this flag will enable UTF-8 conversion instead. This affects
|
||
|
many Microsoft formats like NT, mscash and mssql. Formats not affected will
|
||
|
silently ignore this option flag.
|
||
|
|
||
|
--rules[=SECTION] enable word mangling rules for wordlist mode
|
||
|
|
||
|
Enables word mangling rules that are read from [List.Rules:Wordlist].
|
||
|
If --rules=Wordlist_elite was used, then [List.Rules:Wordlist_elite]
|
||
|
would be the section used.
|
||
|
|
||
|
--incremental[=MODE] "incremental" mode [using section MODE]
|
||
|
|
||
|
Enables the "incremental" mode, using the specified configuration file
|
||
|
definition (section [Incremental:MODE], or [Incremental:All] by default
|
||
|
except for LM hashes for which the default is [Incremental:LanMan]).
|
||
|
|
||
|
--external=MODE external mode or word filter
|
||
|
|
||
|
Enables an external mode, using external functions defined in section
|
||
|
[List.External:MODE].
|
||
|
|
||
|
--stdout[=LENGTH] just output candidate passwords
|
||
|
|
||
|
When used with a cracking mode, except for "single crack", makes John
|
||
|
output the candidate passwords it generates to stdout instead of
|
||
|
actually trying them against password hashes; no password files may be
|
||
|
specified when this option is used. If a LENGTH is given, John
|
||
|
assumes that to be the significant password length and only produces
|
||
|
passwords up to that length.
|
||
|
|
||
|
--restore[=NAME] restore an interrupted session
|
||
|
|
||
|
Continues an interrupted cracking session, reading state information
|
||
|
from the specified session file or from $JOHN/john.rec by default.
|
||
|
|
||
|
--session=NAME give a new session the NAME
|
||
|
|
||
|
This option can only be used when starting a new cracking session and
|
||
|
its purpose is to give the new session a name (to which John will
|
||
|
append the ".rec" suffix to form the session file name). This is
|
||
|
useful for running multiple instances of John in parallel or to be
|
||
|
able to later recover a session other than the last one you interrupt.
|
||
|
john.log file will also be named NAME.log (whatever 'NAME' is), so
|
||
|
that any logging of the session work will end up in this file.
|
||
|
|
||
|
--status[=NAME] print status of a session [called NAME]
|
||
|
|
||
|
Prints status of an interrupted or running session. Note that on a
|
||
|
Unix-like system, you can get a detached running session to update its
|
||
|
session file by sending a SIGHUP to the appropriate "john" process;
|
||
|
then use this option to read in and display the status.
|
||
|
|
||
|
--make-charset=FILE make a charset, overwriting FILE
|
||
|
|
||
|
Generates a charset file based on character frequencies from
|
||
|
$JOHN/john.pot, for use with the "incremental" mode. The entire
|
||
|
$JOHN/john.pot will be used for the charset generation by default. You
|
||
|
may restrict the set of passwords used by specifying some password files
|
||
|
(in which case only the cracked passwords that correspond to those
|
||
|
password files will be used), "--format", or/and "--external" (with an
|
||
|
external mode that defines a filter() function).
|
||
|
|
||
|
--show[=left] show cracked passwords
|
||
|
|
||
|
Shows the cracked passwords for given password files (which you must
|
||
|
specify). You can use this option while another instance of John is
|
||
|
cracking to see what John did so far; to get the most up to date
|
||
|
information, first send a SIGHUP to the appropriate "john" process.
|
||
|
if --show=left then all uncracked hashes are listed (in a john 'input'
|
||
|
file format way). =left is just that literal string "=left".
|
||
|
|
||
|
--test[=TIME] run tests and benchmarks for TIME seconds each
|
||
|
|
||
|
Tests all of the compiled in hashing algorithms for proper operation and
|
||
|
benchmarks them. The "--format" option can be used to restrict this to
|
||
|
a specific algorithm.
|
||
|
|
||
|
--users=[-]LOGIN|UID[,..] [do not] load this (these) user(s)
|
||
|
|
||
|
Allows you to select just a few accounts for cracking or for other
|
||
|
operations. A dash before the list can be used to invert the check
|
||
|
(that is, load information for all the accounts that are not listed).
|
||
|
|
||
|
--groups=[-]GID[,..] load users [not] of this (these) group(s)
|
||
|
|
||
|
Tells John to load (or to not load) information for accounts in the
|
||
|
specified group(s) only.
|
||
|
|
||
|
--shells=[-]SHELL[,..] load users with[out] this (these) shell(s)
|
||
|
|
||
|
This option is useful to load accounts with a valid shell only or to
|
||
|
not load accounts with a bad shell. You can omit the path before a
|
||
|
shell name, so "--shells=csh" will match both "/bin/csh" and
|
||
|
"/usr/bin/csh", while "--shells=/bin/csh" will only match "/bin/csh".
|
||
|
|
||
|
--salts=[-]COUNT[:MAX] load salts with[out] at least COUNT passwords
|
||
|
|
||
|
This is a feature which allows to achieve better performance in some
|
||
|
special cases. For example, you can crack only some salts using
|
||
|
"--salts=2" faster and then crack the rest using "--salts=-2". Total
|
||
|
cracking time will be about the same, but you will likely get some
|
||
|
passwords cracked earlier. If MAX is listed, then no hashes are
|
||
|
loaded where there are more than MAX salts. This is so that if you
|
||
|
have run --salts=25 and then later can run --salts=10:24 and none of
|
||
|
the hashes that were already done from the --salts=25 will be re-done.
|
||
|
|
||
|
--pot=NAME pot filename to use
|
||
|
|
||
|
By default, john will use john.pot. This override allows using a different
|
||
|
john.pot-like file (to start from, and to store any found password into).
|
||
|
|
||
|
--format=NAME force hash type NAME
|
||
|
|
||
|
Allows you to override the hash type detection. Currently, valid
|
||
|
"format names" are DES, BSDI, MD5, BF, AFS, LM, and crypt (and many more
|
||
|
are added with various patches). You can use this option when you're
|
||
|
starting a cracking session or along with one of: "--test", "--show",
|
||
|
"--make-charset". Note that John can't crack hashes of different types
|
||
|
at the same time. If you happen to get a password file that uses more
|
||
|
than one hash type, then you have to invoke John once for each hash type
|
||
|
and you need to use this option to make John crack hashes of types other
|
||
|
than the one it would autodetect by default.
|
||
|
|
||
|
"--format=crypt" may or may not be supported in a given build of John.
|
||
|
In default builds of John, this support is currently only included on
|
||
|
Linux and Solaris. When specified (and supported), this option makes
|
||
|
John use the system's crypt(3) or crypt_r(3) function. This may be
|
||
|
needed to audit password hashes supported by the system, but not yet
|
||
|
supported by John's own optimized cryptographic routines. Currently,
|
||
|
this is the case for glibc 2.7+ SHA-crypt hashes as used by recent
|
||
|
versions of Fedora and Ubuntu, and for SunMD5 hashes supported (but not
|
||
|
used by default) on recent versions of Solaris. In fact, you do not
|
||
|
have to explicitly specify "--format=crypt" for hashes of these specific
|
||
|
types unless you have other hash types (those supported by John
|
||
|
natively) in the password file(s) as well (in which case another hash
|
||
|
type may get detected unless you specify this option).
|
||
|
|
||
|
"--format=crypt" is also a way to make John crack crypt(3) hashes of
|
||
|
different types at the same time, but doing so results in poor
|
||
|
performance and in unnecessarily poor results (in terms of passwords
|
||
|
cracked) for hashes of the "faster" types (as compared to the "slower"
|
||
|
ones loaded for cracking at the same time). So you are advised to use
|
||
|
separate invocations of John, one per hash type.
|
||
|
|
||
|
--subformat=LIST displays all the built-in md5-gen formats, and exits
|
||
|
|
||
|
--save-memory=LEVEL enable memory saving, at LEVEL 1..3
|
||
|
|
||
|
You might need this option if you don't have enough memory or don't
|
||
|
want John to affect other processes too much. Level 1 tells John to
|
||
|
not waste memory on login names; it is only supported when a cracking
|
||
|
mode other than "single crack" is explicitly requested. The only
|
||
|
impact is that you won't see the login names while cracking. Higher
|
||
|
memory saving levels have a performance impact; you should probably
|
||
|
avoid using them unless John doesn't work or gets into swap otherwise.
|
||
|
|
||
|
--mem-file-size=SIZE max size of wordlist to preload into memory
|
||
|
|
||
|
One of the significant performance improvements for some builds of
|
||
|
john, is preloading the wordlist file into memory, instead of reading
|
||
|
line by line. This is especially true when running with a large list
|
||
|
of --rules. The default max size file is 5 million bytes. Using this
|
||
|
option allows making this larger. NOTE if --save-memory is used,
|
||
|
then memory file processing is turned off.
|
||
|
|
||
|
--field-separator-char=c Use 'c' instead of the char ':'
|
||
|
|
||
|
By design, john works with most files, as 'tokenized' files. The field
|
||
|
separator used by john is the colon ':' character. However, there are
|
||
|
hashes which use the colon in the salt field, and there are users which
|
||
|
may have a colon for a user name (for a couple examples of problems
|
||
|
with it). However, an advanced john user can change the input files,
|
||
|
by using a different character than the ':' (and different than any
|
||
|
other 'used' character), and avoid problems of lines not being properly
|
||
|
processed. The side effects are that the pot file will get this
|
||
|
'character' used in it also (and only lines in the pot file that HAVE
|
||
|
that character will be loaded at startup), and there are other side
|
||
|
effects. Usually, this is ONLY used in very advanced situations, where
|
||
|
the user 'knows what he is doing'. If the character can not be easily
|
||
|
represented by the keyboard, then the format of
|
||
|
--field-separator-char=\xHH can be used. --field-separator-char=\x1F
|
||
|
would represent the character right before the space (space is 0x20)
|
||
|
|
||
|
--fix-state-delay=N only determine the wordlist offset every N times
|
||
|
|
||
|
This is an optimization which helps on some systems. This just
|
||
|
limits the number of times that the ftell() call is performed.
|
||
|
The one side effect, is that if john is aborted, and restarted, it
|
||
|
may redo more tests. Thus, the use of this option is only acceptable
|
||
|
and desirable for fast hash types (e.g., raw MD5).
|
||
|
|
||
|
--nolog turns off john.log file
|
||
|
|
||
|
This will turn off creation, or updating to the john.log file (which may
|
||
|
have a different name if the --session=NAME flag was used.) Often the
|
||
|
logging is not wanted, and this log file can often become very large
|
||
|
(such as working with many 'fast' rules on a fast format). The log file
|
||
|
is often used to check what work has been done, but if this will not be
|
||
|
needed, and the log file is simply going to be deleted when done, then
|
||
|
running in --nolog mode may be used.
|
||
|
|
||
|
|
||
|
Additional utilities.
|
||
|
|
||
|
There are some related utilities in John's run directory:
|
||
|
|
||
|
unshadow PASSWORD-FILE SHADOW-FILE
|
||
|
|
||
|
Combines the "passwd" and "shadow" files (when you already have access
|
||
|
to both) for use with John. You might need this since if you only
|
||
|
used your shadow file, the "Full Name" or "GECOS" information wouldn't
|
||
|
be used by the "single crack" mode (thus reducing its efficiency) and
|
||
|
you wouldn't be able to use the "--groups" and "--shells" options and
|
||
|
to select by UID with "--users". You probably also want to see all of
|
||
|
the passwd file fields with "--show".
|
||
|
|
||
|
You'll usually want to redirect the output of "unshadow" to a file
|
||
|
which you then pass to John.
|
||
|
|
||
|
unafs DATABASE-FILE CELL-NAME
|
||
|
|
||
|
Gets password hashes out of the binary AFS database and produces
|
||
|
output usable by John (you should redirect the output to a file).
|
||
|
|
||
|
unique OUTPUT-FILE
|
||
|
|
||
|
Removes duplicates from a wordlist (read from stdin) without changing
|
||
|
the order of entries. You might want to use this with John's
|
||
|
"--stdout" option if you've got a lot of disk space to trade for the
|
||
|
reduced cracking time (on possibly trying some duplicates as they
|
||
|
might be produced with word mangling rules).
|
||
|
This program has been updated. It is faster, it now can 'cut' the
|
||
|
lines (in a couple of ways), and can unique the files data, AND also
|
||
|
unique it against an existing file.
|
||
|
|
||
|
mailer PASSWORD-FILE
|
||
|
|
||
|
A shell script to send mail to all the users who got weak passwords.
|
||
|
You should edit the message inside the script before using it.
|
||
|
|
||
|
Based on (and modified in the jumbo patch):
|
||
|
$Owl: Owl/packages/john/john/doc/OPTIONS,v 1.9 2011/04/27 18:02:49 solar Exp $
|