See http://www.openwall.com/john/doc/EXAMPLES.shtml and http://www.openwall.com/john/doc/MODES.shtml Example: unshadow /etc/passwd /etc/shadow > myPasswords.txt john myPasswords.txt This will try "single crack" mode first, then use a wordlist with rules, and finally go for "incremental" mode. Single crack is based on account information+mangling rules (/etc/john.conf) wordlist uses a list of words (see /usr/share/john/password.lst) + mangling rules John the Ripper - wordlist rules syntax Character classes. ?? matches "?" ?v matches vowels: "aeiouAEIOU" ?c matches consonants: "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ" ?w matches whitespace: space and horizontal tabulation characters ?p matches punctuation: ".,:;'?!`" and the double quote character ?s matches symbols "$%^&*()-_+=|\<>[]{}#@/~" ?l matches lowercase letters [a-z] ?u matches uppercase letters [A-Z] ?d matches digits [0-9] ?a matches letters [a-zA-Z] ?x matches letters and digits [a-zA-Z0-9] The complement of a class can be specified by uppercasing its name. For example, "?D" matches everything but digits. Simple commands. : no-op: do nothing to the input word l convert to lowercase u convert to uppercase c capitalize C lowercase the first character, and uppercase the rest t toggle case of all characters in the word TN toggle case of the character in position N r reverse: "Fred" -> "derF" d duplicate: "Fred" -> "FredFred" f reflect: "Fred" -> "FredderF" { rotate the word left: "jsmith" -> "smithj" } rotate the word right: "smithj" -> "jsmith" $X append character X to the word ^X prefix the word with character X Length control commands. N reject the word unless it is greater than N characters long 'N truncate the word at length N English grammar commands. p pluralize: "crack" -> "cracks", etc. (lowercase only) P "crack" -> "cracked", etc. (lowercase only) I "crack" -> "cracking", etc. (lowercase only) Insert/delete commands. [ delete the first character ] delete the last character DN delete the character in position N xNM extract substring from position N for up to M characters iNX insert character X in position N and shift the rest right oNX overstrike character in position N with character X Note that square brackets ("[" and "]") are special characters to the preprocessor: you should escape them with a backslash ("\") if using these commands. Charset conversion commands. S shift case: "Crack96" -> "cRACK(^" V lowercase vowels, uppercase consonants: "Crack96" -> "CRaCK96" R shift each character right, by keyboard: "Crack96" -> "Vtsvl07" L shift each character left, by keyboard: "Crack96" -> "Xeaxj85" Memory access commands. M memorize the word Q reject the word unless it has changed Character class commands. sXY replace all characters X in the word with Y s?CY replace all characters of class C in the word with Y @X purge all characters X from the word @?C purge all characters of class C from the word !X reject the word if it contains character X !?C reject the word if it contains a character in class C /X reject the word unless it contains character X /?C reject the word unless it contains a character in class C =NX reject the word unless character in position N is equal to X =N?C reject the word unless character in position N is in class C (X reject the word unless its first character is X (?C reject the word unless its first character is in class C )X reject the word unless its last character is X )?C reject the word unless its last character is in class C %NX reject the word unless it contains at least N instances of X %N?C reject the word unless it contains at least N characters of class C