Back

Memory Forensics Walkthrough | bakeery

February 1, 2025

3 min read

Challenge Room

Here are some resources I used. Check them out for more information:


Task 1: Memory Dump Initial Analysis

The on-site forensic investigator provided us with a memory dump from John’s computer. Our job as secondary forensic analysts is to dig deep and find all necessary information.

Step 1: Identifying the Memory Profile

Before diving into any analysis, we first need to determine the correct memory profile. We can achieve this using the imageinfo or kdbgscan plugin.

Command used:

vol.py -f Snapshot.vmem imageinfo

imageinfo

From the output, multiple suggested profiles appeared. We will select the first one: Win7SP1x64, which is typically the most accurate.

Note: All subsequent commands will now include the profile parameter --profile=Win7SP1x64.


Task 2: Find John’s Password

To retrieve John’s password, we’ll perform a hash dump and crack the obtained hashes.

Step 2: Dumping Hashes

We use the hashdump plugin to extract password hashes.

Command used:

vol.py -f Snapshot.vmem --profile=Win7SP1x64 hashdump

hashdump

The hash corresponding to the john user is captured.

Step 3: Cracking the Hash

We can use tools like hashcat or john the ripper to crack the hash. In this case, I used hashcat.

hashcat

Success! The cracked password is displayed.


Task 3: Investigating Last Shutdown and Console Commands

Q2: When was the machine last shutdown?

First, we attempted to find the Last Known Good control set to gather shutdown time information.

Step 4: Identifying the Last Control Set

Using the printkey plugin:

vol.py -f Snapshot.vmem --profile=Win7SP1x64 printkey -K "Select"

last good known

We found that CurrentControlSet was set to 2.

Then, we checked the ControlSet002\Control\Windows registry key:

vol.py -f Snapshot.vmem --profile=Win7SP1x64 printkey -K "ControlSet002\\Control\\Windows"

datetime

We found the shutdown time recorded here.

However, a better method exists!

Step 5: Using Shutdown Plugin

Volatility offers a plugin that simplifies shutdown time extraction.

Command:

vol.py -f Snapshot.vmem --profile=Win7SP1x64 shutdowntime

shutdown time

Result: The exact same shutdown timestamp is obtained.

Q3: What did John write?

We now investigate what John was typing on his machine.

Step 6: Console Command Extraction

The consoles plugin retrieves command-line inputs.

Command:

vol.py -f Snapshot.vmem --profile=Win7SP1x64 consoles

console

Result: We found a command window showing “you found me” — an important flag.


Task 4: Recovering TrueCrypt Passphrase

During the investigation, it was found that TrueCrypt was installed on the machine. Our goal is to find the encryption passphrase from memory.

Step 7: Searching for TrueCrypt Keys

Q4. What is the TrueCrypt Passphrase?

Whenever you’re investigating something specific like TrueCrypt, the first step should always be to check if a plugin exists in Volatility.
If a plugin is available, it makes the work way easier; otherwise, you’d have to extract and search manually.

So, I quickly did a Google search to see if Volatility has a TrueCrypt plugin available.

Google Search

Good news, the plugin does exist!
With that confirmed, I proceeded to use the plugin on the memory dump.

After running the appropriate Volatility command with the TrueCrypt plugin, I was able to successfully extract the passphrase:

TrueCrypt Plugin Output

As you can see above, the passphrase was recovered directly from the memory.


Conclusion

In this walkthrough, we methodically used Volatility to extract crucial forensic evidence from a memory dump. From determining the system profile, dumping and cracking password hashes, analyzing system shutdown events, extracting command history, and uncovering hidden encryption keys we demonstrated how memory forensics plays a critical role in modern cyber investigations.

Volatility, combined with methodical steps and the right mindset, proves itself to be an indispensable tool for any forensic investigator.