datasets.
CTF Tools
Tool | Link | How to Use |
---|---|---|
CyberChef | https://gchq.github.io/CyberChef/ | Paste input (like XOR, Base64, ROT13), and view output instantly. |
Binwalk | https://github.com/ReFirmLabs/binwalk | Analyze binary firmware files for embedded files or executable code. |
ExifTool | https://exiftool.org/ | Extract metadata from files like images or documents: `exiftool file.jpg`. |
StegSolve | https://github.com/zardus/ctf-tools | Steganography GUI for analyzing image planes, color layers, etc. |
hashcat | https://hashcat.net/hashcat/ | Advanced hash cracking tool: `hashcat -m <mode> hashes.txt wordlist.txt`. |
John the Ripper | https://www.openwall.com/john/ | Brute-force or dictionary attack on hashed passwords: `john hash.txt`. |
strings | https://man7.org/linux/man-pages/man1/strings.1.html | Extract printable strings from binaries: `strings file.bin`. |
Zsteg | https://github.com/zed-0xff/zsteg | Detect hidden data in PNG and BMP files: `zsteg file.png`. |
Ghidra | https://ghidra-sre.org/ | Reverse engineering suite to decompile and analyze binaries. |
Radare2 | https://rada.re/n/ | Powerful CLI-based reverse engineering framework. |
BaseCrack | https://github.com/mohammadplus/BaseCrack | Auto-detect and decode base-encoded strings. |
QR Tools | https://zxing.org/ | Decode QR codes from images. Use CLI or online scanner. |
Important Linux Commands
Command | Description | Example |
---|---|---|
ls | List files and directories | `ls -la` |
cd | Change the current directory | `cd /var/log` |
pwd | Print working directory path | `pwd` |
grep | Search for patterns inside files | `grep -i 'error' logfile.txt` |
chmod | Change file permissions | `chmod +x script.sh` |
chown | Change file owner/group | `chown user:group file.txt` |
ps | List running processes | `ps aux | grep nginx` |
netstat | Network statistics and open ports | `netstat -tulpn` |
curl | Fetch data from URLs | `curl -I https://example.com` |
wget | Download files from web | `wget https://site.com/file.zip` |
find | Search files/folders | `find / -name 'flag.txt'` |
tar | Compress/decompress archives | `tar -xvf archive.tar` |
df | Show disk usage | `df -h` |
top | Live view of processes and memory | `top` |
Manual Hash Identification (Complete CTF Edition)
Hash Type | Length | Starts With | How to Identify | Example |
---|---|---|---|---|
MD5 | 32 | — | 32-character lowercase hex; no prefix | 5f4dcc3b5aa765d61d8327deb882cf99 |
SHA-1 | 40 | — | 40-character hex; used in Git, tokens | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
SHA-256 | 64 | — | 64-character hex; strong hash | 5e884898da28047151d0e56f8dc6292773603d0d6aabbddf02 |
SHA-512 | 128 | — | 128-character hex | cf83e1357eefb8bdf1542850d66d8007... |
NTLM | 32 | — | Used in Windows auth; same length as MD5 | 8846f7eaee8fb117ad06bdd830b7586c |
LM | 32 | — | Uppercase-only hex; legacy Windows hash | E52CAC67419A9A224A3B108F3FA6CB6D |
bcrypt | ~60 | $2a$, $2b$, $2y$ | Prefix includes cost; slow to brute | $2b$12$KIX8YfC9.U4pTfOZ.BJXH.rPU7Vp5t... |
SHA-crypt | >50 | $5$ or $6$ | $5$=SHA256, $6$=SHA512; Linux shadow | $6$saltstring$hashedvalue... |
MySQL5 | 41 | * | * + 40 hex chars | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
MySQL 3.23 | 16 | — | Legacy MySQL hex hash | 606717496665bcba |
Cisco Type 7 | Variable | 07 or 0x | Weak XOR encoding | 070C285F4D06 |
WPA/WPA2 PSK | 64 | — | Derived PMK from Wi-Fi handshake | a49d1f1a4c70e6c1780b26a0e706ecce... |
Base64 / JWT | Variable | eyJ | Base64 tokens with 3 parts separated by dots | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... |
Unix DES | 13 | 2-char salt | Short password hashes in old Unix systems | rtq1kO1gF5G9s |
SHA3-256 | 64 | — | Looks like SHA-256 but stronger; less common | a7ffc6f8bf1ed76651c14756a061d662f580... |
RIPEMD-160 | 40 | — | Similar length to SHA-1 but different hash family | 24f0145d0131e5a89ee1c8dc05e8e2a43b44a070 |
SSHA (LDAP) | >40 | {SSHA} | Base64, usually in LDAP passwd | {SSHA}U3Ryb25nU2FsdA== |
Oracle 10g | 16 | — | Hex string, usually uppercase | S:4C8F5B5A6A4D6F77 |
Oracle 11g | 48 | S: | Base64 + 'S:' prefix | S:8A3B041DD3B2E0DF4C8F233F0A7F9F365D0F58E4 |
Oracle 12c | 64 | S: | Base64 + 'S:' prefix | S:698D51A19D8A121B48A199182E037073 |
OpenSSL | Variable | — | Base64, usually in OpenSSL passwd | crypt:123456 |
PBKDF2 | Variable | $pbkdf2$ | Key derivation hashes, e.g., in Django | $pbkdf2-sha256$29000$saltsalt$hashedvalue |
SCRYPT | Variable | $scrypt$ | Strong KDF; seen in newer systems | $scrypt$ln=14,r=8,p=1$... |
Hex Encoding | Even length | 0x (optional) | Only 0-9 a-f; often seen as 0x prefix or raw | 48656c6c6f20576f726c64 |
Binary | Multiples of 8 bits | 0 or 1 | Only 0 and 1; decode as 8-bit ASCII | 01001000 01101001 |
Decimal ASCII | Variable | — | Numerical values representing characters | 72 101 108 108 111 |
Octal | Variable | \ | Starts with backslash or 0 prefix | \110\145\154\154\157 |
Base32 | Variable | — | Uses A-Z and 2-7; padding with `=` | JBSWY3DPEBLW64TMMQ====== |
Base58 | Variable | — | Avoids ambiguous chars (0, O, I, l) | 5HueCGU8rMjxEXxiPuD5BDu... |
Base62 | Variable | — | Uses 0-9, A-Z, a-z; no special chars | aZ09BZyx12 |
Base91 | Variable | — | High-entropy printable ASCII; hard to distinguish manually | nXz.bBFAkE>Is`U4W/oD |
Base85 / Ascii85 | Variable | <~ | Starts with `<~` and ends with `~>` | <~ARTY*~> |
URL Encoding | Variable | % | Contains `%` followed by two hex digits | Hello%20World |
HTML Entities | Variable | & | Looks like `A` or `<` | HELLO |
Unicode Escape | Variable | \u | Starts with `\u` followed by hex | \u0048\u0065\u006C |
MIME Quoted-Printable | Variable | = | Uses =XX hex codes | Hello=20World=21 |
Punycode | Variable | xn-- | Used for encoding international domain names | xn--fsq.com (for bü.com) |
High Entropy String | Variable | — | Random mix of symbols, upper/lower/digits; likely encoded or encrypted | N2s93bqBvR+qDd6nT2tRmQ== |
UUID | 36 | — | Hex format with dashes, standard UUID v4 | 123e4567-e89b-12d3-a456-426614174000 |
CRC32 | 8 | — | Short 8-character hex hash; usually checksums | 414fa339 |
Adler-32 | 8 | — | Alternative to CRC32, short checksum | 03da0195 |
Unix Epoch Time | 10 | 1-9 | 10-digit number; converts to datetime | 1699459200 |
Float Timestamp | 13 | 1-9 | 13-digit number; milliseconds | 1699459200123 |
Base36 | Variable | — | Digits + lowercase letters; no punctuation | k3j5l9 |
CTF Hash Cracking Techniques
Hash Type | Hashcat Mode | Tool | Tips |
---|---|---|---|
MD5 | 0 | hashcat / john | Use rockyou.txt or crackstation |
SHA-1 | 100 | hashcat / john | Try online lookup or mask attack |
SHA-256 | 1400 | hashcat / john | Slow, often salted; use rules |
SHA-512 | 1700 | hashcat | Very slow; requires GPU + rockyou |
bcrypt | 3200 | hashcat | CPU-heavy; start with common passwords |
NTLM | 1000 | hashcat | Very fast to crack; rainbow tables work |
LM | 3000 | hashcat | Split halves; trivial to crack |
WPA/WPA2 | 22000 | hashcat + .22000 file | Capture handshake via airodump-ng |
MySQL5 | 300 | hashcat | Found in web CTFs; often weak |
SHA-crypt | 1800/7400 | hashcat | Linux passwords; slow to crack |
JWT (HS256) | — | jwt_tool / jwtcat | Check for weak secrets or guess the key |
Base64 | — | base64 -d / CyberChef | Check for nested encodings or hex inside |
Cracking Resources and Tools
Purpose | Tool/Link | Notes |
---|---|---|
Hash identification | https://github.com/psypanda/hashID | `hashid <hash>` |
Alternative hash checker | https://github.com/blackploit/hash-identifier | Run: `hash-identifier` |
Online hash crackers | https://crackstation.net | Fastest for MD5/SHA1 |
Online hash lookup | https://hashes.com | Use after local cracking fails |
Base64 decoder | https://gchq.github.io/CyberChef | Try magic mode for nested encoding |
Cisco hash decoder | https://packetlife.net/toolbox/cisco-password-cracker/ | Paste Type 7 strings |
JWT analyzer | https://jwt.io | Paste token, analyze payload |
Wordlists | https://github.com/danielmiessler/SecLists | Use rockyou, common creds, fuzz lists |
Rainbow tables | https://project-rainbowcrack.com | Use for LM/NTLM/MD5 |