Anantya ByteMe CTF Writeup Series: Ashes of The Realm
Welcome Back to the Official Write-Up Series of ByteMe CTF!
The OWASP PCCOE Student Chapter is turning up the technical heat for our 9th write-up. We are moving from the persistent records of the Citadel into the flickering, volatile world of Memory Forensics with Ashes of The Realm. This challenge tests a hunter's ability to find truth when the disk itself has been turned to ash.
Category: Forensics
Difficulty: Hard
Author: Sarthak Warale
Theme: Game of Thrones / Volatile Memory
Challenge Summary: The Invisible Trail
In this scenario, all persistent data—files, logs, and records—has been destroyed. The only surviving evidence exists in volatile memory (RAM), specifically preserved within active shell sessions at the time the system was "captured."
Participants were provided with a Linux memory dump: memdump.lime.
Tools & Setup: Volatility 3
To analyze a memory dump, the gold standard is Volatility 3. However, this challenge presented a specific hurdle: the default symbols didn't match the kernel of the dump. Participants had to point Volatility to an external Intermediate Symbol File (ISF) source to translate the raw memory bytes into meaningful process data.
The Execution Command:
python3 vol.py \
--remote-isf-url "https://github.com/Abyss-W4tcher/volatility3-symbols/raw/master/banners/banners.json" \
-f memdump.lime linux.pslist
1. Identifying Interactive Shells
The first step was to see who was "awake" when the memory was dumped. By running the linux.pslist plugin, we revealed multiple active bash processes. This confirmed that several shell sessions were open, potentially holding the commands executed by the user.
2. Extracting "Words Spoken" in Memory
A key hint in the challenge suggested that "words spoken were preserved." In forensics, this points toward the Bash Command History. While .bash_history on disk might be deleted, the commands currently residing in the shell's memory buffer remain until the process is terminated.
Using the linux.bash plugin, we extracted these in-memory buffers:
python3 vol.py \
--remote-isf-url "[URL]" \
-f memdump.lime linux.bash.Bash
3. Analyzing the Bash Output
The output revealed a sequence of commands that looked ordinary at first glance, but contained hidden fragments:
exec -a "ByteMe{wh4t_1s_" sleep 9999echo "d34d_n3v3r"touch ~/Desktop/l34v3s_th3_m3m0ry}
By piecing together the process name from the exec command, the echoed string, and the filename from the touch command, the flag emerged from the ashes.
Final Answer (Flag)
Flag:
ByteMe{wh4t_1s_d34d_n3v3r_l34v3s_th3_m3m0ry}
Key Takeaways
Volatility is Key: When the disk is wiped, RAM is often the only place where the "truth" survives.
The exec -a Trick: Adversaries (and CTF creators) often use the
-aflag inexecto change the process name appearing in the process list—a great place to hide data.Symbol Management: Forensics isn't just about running tools; it's about configuring them to understand the specific environment you are investigating.
What is dead may never die, but it surely leaves a trace in the memory.

Comments
Post a Comment