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