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.
Options:
-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 [path to file] Use a config string or file to create a dictionary --pattern [path to file] 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 mode impact code table:
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
Related tools
- princeprocessor (100%)
- CeWL (100%)
- Maskprocessor (100%)
- hashcat-utils (100%)
- CUPP (100%)
- oclHashcat (RANDOM - 55.2%)
Comments are Closed