# This is a sample options file for dkbf with explanations.
# 
#
# An ini file is also a way to inform users of the various
# options available which are numerous and growing and which requires 
# attention to set correctly.  While you probably can get away
# with running this as is (with the exception of the passwd file)
# you should spend some time with this file as many options can 
# be set to dramatically maximize your performance.  
#
# Comments begin with the pound sign '#'
# Whitespace is ignored except in the "customcharacterset" setting.
# Thus, the following line is valid:
#	 lvalue  =     rvalue 
# 1 is on; 0 is off.
# Do not use comments except at the beginning of a line.
# Do not use quotes around strings so lvalue = "rvalue" is WRONG!
#

# Job name allows you to assign a name to a job.  This will prepend all output
# files with this name so that multiple job will not overwrite previous logs.
# If this is left blank, the format "dkbfjob_[time stamp]" is used, so that by 
# leaving this blank all the time, successive jobs will not overwrite previous
# logs.  
jobname=dkbfrun1

# Current algorithms include only lanman (which in turn cracks the 
# NT dialect, but requires the weaker lanman hash.
# 1 Lanman and NT hash from PWDUMP - 
# 2 Lamnan hash only from PWDUMP
# 3 NTHash only from PWDUMP (allows for password rules; see below)
# 4 Lanman and NT hash from sniffer logs
# 5 Lanman hash only from sniffer logs
# 6 NT hash only from sniffer logs
algorithm=1        

# This is the file containing the accounts whether a pwdump or sniffer file.
pwlist=admintest.txt

# This is the file to which  cracked accounts will be logged.  The file name
# will be prepended with the [jobname_] (above).  
cracklog=crack.log

# This is the file to which slaves will log their activities.   The file name
# will be prepended with the [jobname]_[slave rank].  
slavelog=slave.log

# This is the file to which the master will log activities and reports.
# The file name will be prepended with the [jobname_] (above).  
masterlog=master.log

# These are the predefined  character sets to use to brute;
# Note: The charset is NOT generated from this
# file.  This list is purely only for reference.  
# These may be modified in the file "dkbfconfig.c"
# charset0="AB"
# charset1="ABCDEFGHIJKLMNOPQRSTUVWXYZ"	
# charset2="abcdefghijklmnopqrstuvwxyz"	
# charset3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"	
# charset4="abcdefghijklmnopqrstuvwxyz0123456789"	
# charset5="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
# charset6="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`~!@#$%^&*()-_=+\\|[{]};:'\"<,.>"
# charset7="abcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+\\|[{]};:'\"<,.>"
# charset8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"\
#	   "!@#$%^&*()"
# charset9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"\
#	   "`~!@#$%^&*()-_=+\\|[{]};:'\"<,.>"
# charset10="ABCDEFGHIJ" ; debugging and testing charset
# charset11="0123456789" ; numbers only
# Specifying a custom character set will override any settings here
# Specifying a character set with lowercase letters for an attack on the 
# Lanman Hash will not be valid.
charsetnum=1

# Custom character set;
# This allows you to define your own character set. There are some rules to
# this though.
# If the custom charset is enabled (uncommented) this will override any charset
# selection above.
# All characters after the equal sign until the end of the line (\n) will be
# included.
# Do NOT escape any characters!
# Do NOT use quotes around the characterset!
# You MUST terminate the character set string with a new line!
# Character sets may not contain duplicate characters.
# To attack the alphabet in reverse, enter the alphabet in reverse here.
#customcharacterset=ABCDEFGHIJKLMNOPQRSTUVXYZ

# Block size controls the size of a block. Blocks are ranges of passwords.  This is 
# probably the most _important_ setting, because this controls granularity. 
# Set the block too small and the high amount of communication between
# the slaves and the master will either clog bandwidth or requests will
# bottleneck at the master while slaves sit and wait.
# Set the block too large  and you risk losing large amounts of data should
# a node fail and you lose efficiency.
# The larger the block, the less reporting and hence the longer the cracked account
# is in all the other nodes queue requiring cycles for hash comparison.  
# Blocksize is set in whole number of passwords per block
# blocksize=10000000	
blocksize=10000000

# Password filtering allows you to exclude passwords that cannot be correct due to
# enforced password policies on a particular box/OS/network.  There are several 
# types of filtering - listd below. 
# In order to do ANY password filtering you MUST activate password filtering;
# Filtering is a powerful way of reducing the keyspace size.  
# However, filtering does not apply to attacks Lanman hashes obtained via pwdump.

# As for the max/min settings, just set the min to 0 and the max to any
# number above the password length if you don't want that filter to apply.
# You may also comment out these settings and they will not be applied.
#
# BE SURE TO ENABLE PASSWORD FILTERING IF YOU WANT TO FILTER ANY PASSWORDS.
# No filtering will occur  if "passwordfilter" is set to 0. 
# This option is ignored if turned on but not applicable.
#passwordfilter=0

# Minimum special character is password filtering that requires a password
# to have a certain number of special characters.  A special character is anything
# that is not a letter.  
# BE SURE TO ENABLE PASSWORD FILTERING ABOVE.
#minspecchar=0 

# Maximum special characters is password filtering that requires a password to have
# less than or equal to a maxumim number of special characters.  If you can
# gamble that the password only has 1 number in it or one special char or whatever
# you can severly restrict the number of attempted passwords.
# I recommend a conservative policy on this one.  Some people (yours truly) will
# enclose their passwords with brackets, parens, and may use ! for I or L, or
# may append a 4 digit number, or may use () for O or 0, or something of the like
# to increase the special characters in their passwords.
# BE SURE TO ENABLE PASSWORD FILTERING ABOVE.
#maxspecchar=6 

# Minimum number of uppercase characters;
#minuppercase=0

# Maximum number of uppercase characters;
#maxuppercase=12	

# Minimum number of lowercase characters;
minlowercase=0

# Maximum number of lowercase characters;
#maxlowercase=0

# Min password allows you to skip all passwords that are not of a minimum size. 
# BE SURE TO ENABLE PASSWORD FILTERING ABOVE.
#minpasswdlen=0

# Maximum password length can be set.  
# Max password length is 14 by default for all Windows based passwords, regardless
# of whether those password hashes were sniffed or dumped, with the exception
# of Lanman Hash attacks which limits password lengths to 7.
# BE SURE TO ENABLE PASSWORD FILTERING ABOVE.
#maxpasswdlen=14

# Minimum number of numeric characters [0-9]
#minnumeric=0

# Maximum number of numberic characters
#maxnumeric=14

# Minimum number of vowels including "Y". (AEIOUY)
#minvowels=0

# Maximum number of vowels including "Y". (AEIOUY)
#maxvowels=14

# Minimum number of consonants excluding "Y".
#minconsonants=0

# Maximum number of consonants excluding "Y".
#maxconsonants=14

# Maximum repeat count is the maximum number of times one particular
# letter can be used in one password.  This is not case sensitive.
# For example the password "ABbcEee" has 2 letters repeated:
# Two B's and 3 E's.  A maxrepeat_count of 2 will eliminate this
# as a password because of the 3 E's.  A maxrepeat_count of 
# 3 will not.
#maxrepeat_count=7

# Max duplicate count is the maximum number of times letters can
# can be duplicated in a password regardless of how many times
# they appear
# For example the password "AaaBbced", has the letter "A" repeating
# 3 times.  A maxdupe_count of 2 will elimiate this as a password.
# A maxdupes_count of 3 will not.
#maxdupes_count=14

# Passfilt_dll is an option that applies the rules of the 
# passfilt.dll, which can be installed to enforce a password policy
# requiring 1 letter from 3 of the 4 following categories: 
# lowercase, uppercase, numeric, special characters.
# Passwords must also be at least 6 characters long.
# Passwords not meeting this requirement are thrown out.
#passfilt_dll=0


# Logging level allows you to control how much is logged to the logfiles.
# Logging should be done only at level 1 or 0, which is no logging, unless
# you are monitoring progress carefully or debugging.  In the case of a 
# large character set the logs may easily fill up hard drive space.
# 0 = none
# 1 = bare minimum - recommended; 
# 2 = debugging level - use with caution; may produce massive amounts of data	
# dkbf will run for very long periods of time.  Monitor disk usage regularly
# since the logs will build up and no log rotation exists.
logginglevel=1

# Slave logging allows you to turn off and on logging by slaves.
# This is not really recommended except for debugging.  
# Log files are placed in the same directory as the executable, so you will
# have one file on each slave process you start on the slave.  
slavelogging=0

# "Sleep Staggering" causes each compute node to "sleep" for a number of
# seconds equivalent to its rank, before that node makes it first request 
# for a block.  Thus, node 1 will sleep for one second and node 10 will sleep for
# 10 seconds.  The idea is to stagger nodes so that they do not all hit the 
# master with requests and reports at the same time.  If your cluster is 
# sufficiently heterogenous or if your cluster is large enough, you may want
# to disable this feature.  
sleepstagger=1

# slave/node scheduling priority for Linux.
# This can be set from 0 (highest) to 20 (lowest).
slavepriority=0
 
