Challenge Lab — Answer Key (spoilers!)¶
Don't read this until you've solved the challenge (or you're genuinely stuck). Under the Practical's clock, reading answers builds nothing. Each solution shows the command and the result. Set
C=~/ceh-practical-challengesfirst.
1. Hashes ($C/hashes/hashes.txt)¶
hashid '<hash>' # identify each
hashcat -m 0 md5.txt rockyou.txt # md5
hashcat -m 100 sha1.txt rockyou.txt # sha1
hashcat -m 1400 sha256.txt rockyou.txt # sha256
hashcat -m 1800 s512.txt rockyou.txt # sha512crypt ($6$)
hashcat -m 3200 bcrypt.txt rockyou.txt # bcrypt ($2b$)
hashcat -m 1000 ntlm.txt rockyou.txt # ntlm
iloveyou |
| sha1 | superman |
| sha256 | trustno1 |
| sha512crypt | iloveyou |
| bcrypt | superman |
| ntlm | trustno1 |
2. crypto/mystery.txt¶
Layers, decoded in reverse (base64 → rot13 → hex):
cat $C/crypto/mystery.txt | base64 -d | tr 'A-Za-z' 'N-ZA-Mn-za-m' | xxd -r -p
CEH{layered_encoding_is_not_encryption} (CyberChef "Magic" finds this too)
3. crypto/secret.aes.enc¶
openssl enc -d -aes-256-cbc -pbkdf2 -k s3cr3tkey -in $C/crypto/secret.aes.enc
CEH{aes_with_a_known_key}
4. crypto/message.gpg¶
gpg --batch --passphrase openme -d $C/crypto/message.gpg
CEH{gpg_symmetric_flag}
5. stego/vacation.jpg¶
strings $C/stego/vacation.jpg | grep CEH
CEH{plain_strings_in_the_file}
6. stego/cat.jpg (appended zip)¶
binwalk -e $C/stego/cat.jpg # or: foremost -i cat.jpg
cat _cat.jpg.extracted/*.txt # find the carved .hidden.txt
CEH{carved_from_the_image}
7. stego/beach.jpg (steghide)¶
steghide extract -sf $C/stego/beach.jpg -p hacktheplanet
cat *.txt
CEH{steghide_embedded_flag}
8. stego/carrier.jpg (EXIF)¶
exiftool $C/stego/carrier.jpg | grep -i comment
CEH{hidden_in_exif_metadata}
9. archives/secret.zip¶
zip2john $C/archives/secret.zip > z.hash
john z.hash --wordlist=/usr/share/wordlists/rockyou.txt ; john --show z.hash
# password = letmein ; then:
unzip -P letmein $C/archives/secret.zip && cat .flag.txt
letmein, flag CEH{cracked_the_zip_password}
10. pcap/traffic.pcap¶
tshark -r $C/pcap/traffic.pcap -Y 'http.request.method=="POST"' -T fields -e http.file_data
# or Wireshark: right-click the POST -> Follow -> TCP Stream
admin, password Summer2025!
11. filehunt/¶
grep -rIna CEH $C/filehunt/ # finds the dotfile flag
cat $C/filehunt/.config/.flag # CEH{hidden_dotfile}
base64 -d $C/filehunt/backup/notes.b64 # CEH{base64_in_a_file}
rev $C/filehunt/backup/reversed.txt # CEH{reverse_me}
Re-run
./setup-challenges.shfor a fresh copy any time. The plaintexts/flags are fixed here, but the skill — identify → pick the right tool → produce the answer fast — is the point.