Challenge Lab — practice the types the main lab can't provide¶
The AD/web lab is great for scanning, enumeration, web, SQLi, and AD. But the Practical also throws steganography, packet-capture forensics, crypto/encoding, hash cracking, and password-protected archives — which need artifacts, not a live host. setup-challenges.sh generates all of those locally so you can drill them under a timer.
Everything is generated on your own machine for your own practice. Nothing here touches the network beyond loopback.
Run it¶
cd practical/challenge-lab
./setup-challenges.sh # -> ~/ceh-practical-challenges/
gunzip -k /usr/share/wordlists/rockyou.txt.gz # if you haven't already
./setup-challenges.sh --clean.
For the full set, install the optional tools (all on Kali or one apt away):
sudo apt install -y steghide imagemagick libimage-exiftool-perl gnupg zip \
apache2-utils python3-scapy binwalk foremost
# PNG LSB stego (optional): sudo gem install zsteg
The challenges (answer each, then check answers.md)¶
⏱️ Give yourself the target time — the Practical is a race.
hashes/ — cracking ⏱️ 3 min each¶
- Crack every hash in
hashes/hashes.txt. What is each plaintext? (Identify withhashidfirst, thenhashcat -m <mode>.)
crypto/ — encoding & decryption ⏱️ 5 min each¶
- Decode
crypto/mystery.txtto plaintext. What is the flag? (It's layered — three transforms.) - Decrypt
crypto/secret.aes.enc(AES-256-CBC, pbkdf2, passphrase incrypto/README.txt). Flag? - Decrypt
crypto/message.gpg(GPG symmetric, passphrase incrypto/README.txt). Flag?
stego/ — steganography ⏱️ 4 min each¶
stego/vacation.jpghides a flag in plain sight. Find it. (strings)stego/cat.jpghas a file appended to it. Recover the flag. (binwalk -e/foremost)stego/beach.jpgwas made with steghide (passphrase =hacktheplanet). Extract the flag. (needs steghide+imagemagick)stego/carrier.jpghides a flag in its metadata. Read it. (exiftool) (needs exiftool)
archives/ — password-protected ⏱️ 6 min¶
archives/secret.zipis password-protected. Crack the password and read the flag. (zip2john→john/hashcat -m 17200)
pcap/ — packet forensics ⏱️ 6 min¶
pcap/traffic.pcapcontains a login. What are the username and password? (Wireshark → Follow TCP Stream) (needs python3-scapy to auto-generate; else seepcap/README.txt)
filehunt/ — find the flags ⏱️ 8 min for all¶
- Three flags are hidden in
filehunt/(a dotfile, a base64-encoded file, and a reversed file). Recover all three. (Tip:grep -r CEHfinds the plaintext one instantly; the others need decoding.)
How to drill this¶
- Run the generator, then time-box each challenge and solve it from the recipes in
../challenge-playbooks.md. - Only open
answers.mdafter you've solved it (or truly stuck) — reading the answer teaches you nothing under exam pressure. - Re-run
setup-challenges.shany time for a fresh set; combine with the lab drills and drills/ for full coverage.
Sources¶
- steghide: http://steghide.sourceforge.net/ · binwalk: https://github.com/ReFirmLabs/binwalk
- CyberChef (encoding/crypto): https://gchq.github.io/CyberChef/
- john the ripper (zip2john): https://www.openwall.com/john/