# John The Ripper

* [Formats](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)

# Usage 

* Example
```sh
john --wordlist=/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt ./hash.txt --format=raw-sha256 --fork=2
```

## Declaring Structure
* List subformat
```sh
john --list=subformats
```
```sh
john --wordlist=/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt ./hash.txt --format=dynamic_85 --fork=2
```

## Rules
* [Rule syntax](https://www.openwall.com/john/doc/RULES.shtml)
* Create a local rules file, e.g. `/etc/john-local.conf` or `/usr/share/john/john-local.conf`
* Create config for mutations, e.g. border mutation 
```sh
[List.Rules:border]
$[0-9]$[0-9]
```
* Run john with parameter `--rules=border`

### Existing Rules
* `l33t`, l33tsp34k
* `NT`, case mutation
* Example for `best64`
```sh
john --wordlist=single_password.txt --rules=best64 --stdout > out.txt
```

### Subformats
* Some salted passwords need dynamic rules
```sh
john --list=subformats
```
