During penetration test one of the test component is brute forcing critical data like password, hash, key etc. One way to brute force is using dictionaries or word list. There are a lot of dictionary in the internet and we generally need to merge them. Dymerge is a security tool used to merge different wordlists and dictionaries.
Get DyMerge
Latest version of the dymerge can be get from github by using git.
$ git clone https://github.com/k4m4/dymerge.git Cloning into 'dymerge'... remote: Counting objects: 86, done. remote: Total 86 (delta 0), reused 0 (delta 0), pack-reused 86 Unpacking objects: 100% (86/86), done. Checking connectivity... done.
Get Help About DyMerge
By issuing -h parameter to the dymerge help about dymerge can be get. It also provides usage examples where we will look in this post.
$ python dymerge.py -h Usage: python dymerge.py {dictionaries} [options] Options: --version show program's version number and exit -h, --help show this help message and exit -o OUTPUT_FILE, --output=OUTPUT_FILE output filename -i INCLUDE_VALUES, --include=INCLUDE_VALUES include specified values in dictionary -z ZIP_TYPE, --zip=ZIP_TYPE zip file with specified archive format -s, --sort sort output alphabetically -u, --unique remove dictionary duplicates -r, --reverse reverse dictionary items -f, --fast finish task asap Examples: python dymerge.py /usr/share/wordlists/rockyou.txt /lists/cewl.txt -s -u python dymerge.py /lists/cewl.txt /lists/awlg.txt -s -u -i and,this python dymerge.py ~/fsocity.dic -u -r -o ~/clean.txt python dymerge.py /dicts/crunch.txt /dicts/john.txt -u -f -z bz2
Merge Two Dictionary
We will merge two dictionary only providing dictionary file names. The default output file name is dymerged.txt if it is not specified.
$ python dymerge.py names.txt surnames.txt DyMerge 0.2 Nikolaos Kamarinakis (nikolaskama.me) ____ /\ _`\ /'\_/`\ \ \ \/\ \ __ __/\ \ __ _ __ __ __ \ \ \ \ \/\ \/\ \ \ \__\ \ /'__`\/\` __\/'_ `\ /'__`\ \ \ \_\ \ \ \_\ \ \ \_/\ \/\ __/\ \ \//\ \_\ \/\ __/ \ \____/\/`____ \ \_\\ \_\ \____\\ \_\\ \____ \ \____\ \/___/ `/___/ \/_/ \/_/\/____/ \/_/ \/____\ \/____/ /\___/ /\____/ \/__/ Made with <3 by k4m4 \_/__/ [+] Starting Dictionary Merge Task [+] Reading Dictionaries [+] Merging Dictionaries [+] Task Successfully Complete [+] Final Dictionary Saved As --> dymerged.txt Comp/tional Time Elapsed: 0.008401
Specifying Output File Name
We will specify output file name with -o option and zip the file with -z option with bz2 compression algorithm.
$ python dymerge.py names.txt surnames.txt -o merged.txt -z bz2 DyMerge 0.2 Nikolaos Kamarinakis (nikolaskama.me) ____ /\ _`\ /'\_/`\ \ \ \/\ \ __ __/\ \ __ _ __ __ __ \ \ \ \ \/\ \/\ \ \ \__\ \ /'__`\/\` __\/'_ `\ /'__`\ \ \ \_\ \ \ \_\ \ \ \_/\ \/\ __/\ \ \//\ \_\ \/\ __/ \ \____/\/`____ \ \_\\ \_\ \____\\ \_\\ \____ \ \____\ \/___/ `/___/ \/_/ \/_/\/____/ \/_/ \/____\ \/____/ /\___/ /\____/ \/__/ Made with <3 by k4m4 \_/__/ [+] Starting Dictionary Merge Task [+] Reading Dictionaries [+] Merging Dictionaries [+] Zipping File [+] Task Successfully Complete [+] Final Dictionary Saved As --> merged.txt.bz2 Comp/tional Time Elapsed: 0.013137
Dymerge Dictionary Merge Tool Infografic
