### Common Hashcat Switches: 1. **`-m` (Hash Type):** Specifies the type of hash being cracked. Hashcat supports many hash types (e.g., NTLM, MD5, SHA-1), and each type has a unique identifier. - Example: `-m 1000` for NTLM hashes, `-m 0` for MD5, `-m 1800` for SHA-512. 2. **`-a` (Attack Mode):** Defines the attack mode to use. Hashcat supports several attack modes: - `-a 0`: Straight (Dictionary) attack. - `-a 1`: Combination attack (merging two wordlists). - `-a 3`: Mask attack (brute-force with a mask). - `-a 6`: Hybrid Wordlist + Mask. - `-a 7`: Hybrid Mask + Wordlist. 3. **`-o` (Output File):** Specifies the file to write cracked passwords to. - Example: `-o cracked.txt`. 4. **`-r` (Rules File):** Applies rules to modify or transform words from a wordlist. Rules can manipulate words to test variations (e.g., adding numbers or changing letter case). - Example: `-r rules/best64.rule`. 5. **`--force`:** Forces Hashcat to ignore warnings (e.g., compatibility issues with certain hardware). Use cautiously, as it can cause errors or crashes. 6. **`--session` (Session Name):** Names a session to resume it later if the cracking process is interrupted. This is useful for long-running attacks. - Example: `--session mysession`. 7. **`-w` (Workload Profile):** Sets the workload profile for the GPU, which affects speed and responsiveness: - `-w 1`: Low workload (low power, useful if you want to keep your system responsive). - `-w 3`: High workload (high power, fastest cracking, less responsive). 8. **`-i` (Incremental Mode):** Enables incremental mode, allowing Hashcat to incrementally increase the length of the password candidates. - Often used with a mask attack (`-a 3`). 9. **`--increment-min` and `--increment-max`:** Sets the minimum and maximum password lengths when using incremental mode. - Example: `--increment-min=4 --increment-max=8`. 10. **`-O` (Optimized Kernel):** Enables optimized kernel, which is faster but restricts the maximum password length. - Example: `-O` for cracking shorter passwords. 11. **`--status`:** Displays the status of the cracking process periodically, showing progress, speed, and other useful information. 12. **`--potfile-path`:** Specifies the path to the potfile (file that stores cracked passwords). Useful to maintain different potfiles for different projects. - Example: `--potfile-path cracked.pot`.