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 |