RSMangler will take a wordlist and perform various manipulations on it similar to those done by John the Ripper with a few extras.
The main new feature is permutations mode which takes each word in the list and combines it with the others to produce all possible permutations (not combinations, order matters). For example the words freds, fresh, fish will produce the following list:
freds fresh fish fredsfresh fredsfish freshfreds freshfish fishfreds fishfresh fredsfreshfish fredsfishfresh freshfredsfish freshfishfreds fishfredsfresh fishfreshfreds
Each of these new words is then subject to the other mangles, because of this we strongly recommend with permutations mode enabled (default) you use a very small wordlist, 3 start words create a final list containing 4245 words and 5 start words creates a list containing 91975. As a test we tried it with a few hundred words and gave up when the output file got to 3G.
If you try to use a file with more than 5 words you will get a warning and the option to abort.
Other mangles include adding the numbers 1 to 123 to the start and end, 01 to 09 to the start and end, various case manipulations, leet speak, word reversal, ed and ing on the end and doubling words up.
The initial wordlist can either be specified as a file or can be piped in through STDIN.
RSMangler is written in Ruby and therefore needs Ruby to be installed and working. The script needs to be made executable and it doesn't rely on any gems or anything external.
Note, all mangle options are ON by default, these parameters turn them OFF.
rsmangler.rb [OPTION] --help, -h: show help --file, -f: the input file, use - for STDIN --perms, -p: permutate all the words --double, -d: double each word --reverse, -r: reverser the word --leet, -t: l33t speak the word --capital, -c: capitalise the word --upper, -u: uppercase the word --lower, -l: lowercase the word --swap, -s: swap the case of the word --ed, -e: add ed to the end of the word --ing, -i: add ing to the end of the word --punctuation: add common punctuation to the end of the word --years, -y: add all years from 1990 to current year to start and end --acronym, -a: create an acronym based on all the words entered in order and add to word list --common, -c: add the following words to start and end: admin, sys, pw, pwd --pna: add 01 - 09 to the end of the word --pnb: add 01 - 09 to the beginning of the word --na: add 1 - 123 to the end of the word --nb: add 1 - 123 to the beginning of the word --force: don't give the warning about list length
This project released under the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales
Version History 23.10.2012 - v1.4 Added full leetspeak option and support for Ruby 1.9.x 24.08.2010 - v1.1 Added three new mangles - years, acronym, and common. 13.07.2010 - v1.0 Initial release