pydictor

pydictor Description

pydictor is a powerful and useful dictionary builder for brute-force attacks.

You can use pydictor to create a generic wordlist, a custom wordlist based on web content, a social engineering wordlist, and so on.

You can use the built-in pydictor tool to safely delete, merge, remove duplicates, count word frequency to filter the word list, in addition, you can also specify your word list and use the “-tool handler” to filter your word list.

You can create a custom and complex wordlist by modifying multiple config files, adding your own dictionary using leet mode, filtering by length, by the number of times the symbol occurs, by the type of different characters, by regular expressions, even by adding custom encoding scripts to the /lib/encode/ folder. You can add your own plugin script to the /plugins/ folder and add your own tool script to the /tools/ folder.

You can fine-tune the program in the configuration file to suit your needs.

The program has excellent compatibility: whether you are using Python 2.7 or Python 3.x, pydictor can be run on Windows, Linux or Mac.

Homepage: https://github.com/LandGrey/pydictor

Author: LandGrey

License: GPLv3

pydictor Help

Usage:

pydictor.py [pydictor]

Not all of the options in the Help are accompanied by a description, so to understand the meaning of many options, you need to study the tables below.

Опции:

           -base        [type]
           -char        [custom charset]
           -chunk       [chunk1] [chunk2] ...
           -extend      [string or file]
           -plug        [plugin, it can be: birthday,pid8,pid4,scratch,pid6,ftp]
           --conf       [expression or file]
           --pattern    [expression or file]
           --sedb
           -o,--output  [directory]
           -tool        [tool, it can be: hybrider,uniqifer,comparer,uniqbiner,counter,handler,combiner,shredder]
           --len        [minimum length] [maximum length]
           --head       [prefix string]
           --tail       [suffix string]
           --encode     [hashing or encoding type, it can be: none,sha1,sha512,url,execjs,des,rsa,b32,b16,b64,test,sha256,md516,hmac,md5]
           --occur      [letter] [digital] [special]
           --types      [letter] [digital] [special]
           --repeat     [letter] [digital] [special]
           --regex      [regular expression]
           --level      [code]
           --leet       [code]
           --dmy

*[+] A Useful Hacker Dictionary  Builder. [+]*
 [+] Build by LandGrey    email:LandGrey@qq.com

optional arguments:
  -h, --help            show this help message and exit
  -base TYPE            Chose from  (d, L, c, dL, dc, Lc, dLc)
                            d     digital               [0 - 9]
                            L     lowercase letters   [a - z]
                            c     capital letters     [A - Z]
                            dL    Mix d and L         [0-9 a-z]
                            dc    Mix d and c         [0-9 A-Z]
                            Lc    Mix L and c         [a-z A-Z]
                            dLc   Mix d, L and dL     [0-9 a-z A-Z]
  -char SYMBOLS         Use a custom character set to create a dictionary
  -chunk arg [arg ...]  Create a dictionary from several pieces of strings
  -extend arg [arg ...]
                        Rule presets for adding characters to created strings or ready-made dictionaries
  -plug arg [arg ...]   birthday  [begin_date] [end_date], date format: [yyyyMMdd or ddMMyyyy(--dmy OPTIONS)]
                        ftp       [keyword1] [keyword2] ...
                        pid4      the last 4 digits of a Chinese ID card (analogue of a passport)
                        pid6      the last 6 digits of a Chinese ID card (analogue of a passport)
                        pid8      the last 8 digits of a Chinese ID card (analogue of a passport)
                        scratch   [URL or file]
                        
  --conf [путь к файлу]    Use a config string or file to create a dictionary
  --pattern [путь к файлу]
                        Use a template string to build a dictionary
  --sedb                Start Social Engineering Dictionary Builder
  -o path, --output path
                        Specify a folder for outputting results
                            default: /usr/share/pydictor/results
  -tool arg [arg ...]   combiner  [dir]
                        comparer  [minuend_file] [subtrahend_file]
                        counter   ['v','s','vs'] [file] [view_num]
                        handler   [file]
                        hybrider  [file1] [file2] ...
                        shredder  [file_or_dir]
                        uniqbiner [dir]
                        uniqifer  [file]
                        
  --len minlen maxlen   Minimum and maximum word length, default: min=0  max=4
  --head PREFIX         Adds a line to the beginning of each word
  --tail SUFFIX         Adds a line to the end of each word
  --encode encode       b16       base16 encode
                        b32       base32 encode
                        b64       base64 encode
                        des       des algorithm and need modify code
                        execjs    execute js function and need modify code
                        hmac      hmac message digest algorithm
                        md5       md5 message digest algorithm output 32 char
                        md516     md5 message digest algorithm output 16 char
                        none      default and don't encode
                        rsa       rsa algorithm and need modify code
                        sha1      sha-1 message digest algorithm
                        sha256    sha-256 message digest algorithm
                        sha512    sha-512 message digest algorithm
                        test      custom yourself encode method by modifying function
                        url       url encode
                        
  --occur LETTER NUMBER SPECIAL
                        Filter by the maximum frequency of occurrence of letters, numbers, special characters. Default: LETTER "<=99" NUMBER "<=99" SPECIAL "<=99"
  --types LETTER NUMBER SPECIAL
                        Filter by the minimum frequency of occurrence of letters, numbers, special characters. Default: LETTER ">=0"  NUMBER ">=0"  SPECIAL ">=0"
  --repeat LETTER NUMBER SPECIAL
                        Filter by the number of consecutive letters, numbers, special characters. Default: LETTER ">=0"  NUMBER ">=0"  SPECIAL ">=0"
  --regex regex         Regular expression filter, default (means "anything"): (.*?)
  --level code          Use code [1-5] to filter results, default: 3
  --leet code [code ...]
                        Choose leet mode code (0, 1, 2, 11-19, 21-29)
  --more                Append more simple word list to extend function results, default: false
  --dmy                 Use ddMMyyyy format date, default date format: yyyyMMdd

pydictor manual

Methods pydictor can use to create wordlists:

Type Dictionary generation method Identifier Description Supported functions (explanation below)
Core base C1 Dictionary based on selected groups of characters F1 F2 F3 F4
Core char C2 Dictionary based on a custom character set F1 F2 F3 F4
Core chunk C3 Dictionary based on permutation and combination ALL
Core conf C4 Dictionary based on rules from the specified configuration file ALL
Core pattern C5 Quickly generated dictionary based on a template F2 F3 F4
Core extend C6 Extended rule-based dictionary ALL
Core sedb C7 Dictionary based on social engineering ALL
Tool combiner T1 Tool for combining files in a specified directory  
Tool comparer T2 A tool for comparing and finding differences in file contents ALL
Tool counter T3 Word frequency counting tool ALL
Tool handler T4 Input file processing tool ALL
Tool uniqbiner T5 Tool for combining and unique files in a directory ALL
Tool uniqifer T6 Input file uniqueization tool ALL
Tool hybrider T7 A tool to combine words from multiple dictionaries F1 F2 F3 F4
Plugin birthday P1 A list of words by birthday keywords is built based on the entered date and time ALL
Plugin ftp P2 Generating FTP passwords by keywords ALL
Plugin pid4 P3 Dictionary with the last 4 characters of the (Chinese) ID card ALL
Plugin pid6 P4 Dictionary with the last 6 characters of the (Chinese) ID card ALL
Plugin pid8 P5 Dictionary with the last 8 characters of the (Chinese) ID card ALL
Plugin scratch P6 Word list based on keywords from web pages ALL

Function descriptions and codes:

Function Code Description
len F1 Length range
head F2 Add prefix (line at the beginning of a word)
tail F3 Add suffix (line to end of word)
encode F4 Encode or hash all generated words
occur F5 Filter by the maximum frequency of occurrence of letters, numbers, special characters
types F6 Filter by the minimum frequency of occurrence of letters, numbers, special characters
regex F7 Regular expression filter
level F8 Sets the level of the dictionary rules
leet F9 Enables 1337 mode
repeat F10 Filter by the number of consecutive letters, numbers, special characters

Encoding, hashing functions and the encodings and encryption they support:

Name Description
none default, don't encode
b16 base16 encode
b32 base32 encode
b64 base64 encode
des des algorithm, need modify code
execjs execute js function, need modify code
hmac hmac message digest algorithm
md5 md5 message digest algorithm output 32 char
md516 md5 message digest algorithm output 16 char
rsa rsa algorithm, need modify code
sha1 sha-1 message digest algorithm
sha256 sha-256 message digest algorithm
sha512 sha-512 message digest algorithm
url url encode
test a custom encode method example

Таблица кодов воздействия режима leet:

Code Original string New string
0 as a airs trees 45 4 41r5 tr335
1 as a airs trees 4s 4 4irs trees
2 as a airs trees a5 a air5 tree5
11 as a airs trees 4s a airs trees
12 as a airs trees 4s 4 airs trees
13 as a airs trees 4s 4 4irs trees
14 as a airs trees 4s 4 4irs trees
as a airs trees 4s 4 4irs trees
21 as a airs trees as a airs tree5
22 as a airs trees as a air5 tree5
23 as a airs trees a5 a air5 tree5
24 as a airs trees a5 a air5 tree5
as a airs trees a5 a air5 tree5

pydictor Usage Example

The command will generate a list of words consisting of small letters (-base L) with a length of two to three characters (–len 2 3):

python3 pydictor.py -base L --len 2 3

Generate words from 1 to 3 characters long (–len 1 3) from numbers, uppercase and lowercase letters (-base dLc) and save them to the specified file (-o /awesome/pwd):

python3 pydictor.py -base dLc --len 1 3 -o /awesome/pwd

The following command will create a list of words consisting only of numbers (-base d), four characters long (–len 4 4), the word Pa5sw0rd (–head Pa5sw0rd) will be added before each line and the dictionary will be saved to file D:\exists\or\not\dict.txt (–output D:\exists\or\not\dict.txt):

python3 pydictor.py -base d --len 4 4 --head Pa5sw0rd --output D:\exists\or\not\dict.txt

The command takes six fragments of different lengths and generates words from them, after that prefix and suffix are added:

python3 pydictor.py -chunk abc 123 '!@#' @ . _ ' ' --head a --tail @pass

The command will take ~/rockyou_clean.txt as a source file, and remove all duplicate words (-tool uniqifer ~/rockyou_clean.txt), then it will filter the list of words, with each word having three or more letters, more than two digits and zero special characters (–occur ">=3" ">2" "==0"), the result must be saved to the specified file (–output ~/uniq.txt):

python3 pydictor.py -tool uniqifer ~/rockyou_clean.txt --occur ">=3" ">2" "==0" --output ~/uniq.txt

The command for generating a file with passwords, in which the first is a number, then a small letter, then two numbers (mask ?d?l?d?d):

You can specify literal characters, for example, in the following command, the string “Password” is literal characters:

In the following command, the range does not include individual characters, but the strings bob, b0b, and BOB. That is, the first part of the generated words will include one of these lines, then there will be four digits, and at the end there will be added the line “@passw0rd”.

How to install pydictor

Installation on Kali Linux

git clone --depth=1 --branch=master https://www.github.com/landgrey/pydictor
cd pydictor/
chmod +x pydictor.py
python3 pydictor.py

Installation on Debian, Linux Mint, Ubuntu

sudo apt install git
git clone --depth=1 --branch=master https://www.github.com/landgrey/pydictor
cd pydictor/
chmod +x pydictor.py
python3 pydictor.py

Installation on BlackArch

The program is pre-installed on BlackArch.

sudo pacman -S pydictor

pydictor Screenshots

pydictor Tutorials

Coming soon…

Related tools

Recommended for you:

Comments are Closed

Рейтинг@Mail.ru