The flag for this challenge is all the passwords in alphabetical order, each separated by a single white-space as an MD5 hash in lower case
Category: Beginner - Forensics
First Blood: 1 hour, 24 minutes after release by team redpwn
Attempt this challenge by downloading the dump file
The Problem
We are presented with a file with no extension and told we need to extract all of the passwords from it.
The Solution
The first step is to identify what type of file this is. There are a few ways one might approach this.
How big is it?
It seems to be an ELF file of around a gigabyte. That would be an odd size for an executable. Lets peak inside it a little bit. See the trimmed output below:
I’ve trimmed out the irrelevant strings leaving the main tells that this is a dump of a virtual machine: VBCORE, VBCPU, references to /bootmgr combined with Windows 7/Vista/Server, virtual machine specific error strings near the top etc.
To confirm our suspicion, the first thing we should do is run volatility imageinfo against this. Volatility is a versatile tool for performing forensic analysis of memory dumps from a barrage of operating systems. the imageinfo module of volatility is the most basic analysis that we can perform that will (hopefully) return some basic information about the machine that this memory dump was harvested from. See below:
Great. This is a windows memory dump of the Windows 7 / Win 2008 Server era. This will enable us to potentially extract the NTLM hashes of the passwords from the dump. The next step is to use the hivelist module of volatility with one of the suggested profiles from above. hivelist lists the registry hives present in a particular memory image.
A hive is a logical group of keys, subkeys, and values in the registry that has a set of supporting files loaded into memory when the operating system is started or a user logs in.
We can take the Virtual offset of the SAM file and SYSTEM registry files located above and feed them into the volatility hashdump module with the following syntax:
volatility -f data --profile=$PROFILE hashdump -y $SYSTEM_OFFSET -s $SAM_OFFSET
Wonderful. We were able to extract all the NTLM hashes from our memory dump. The above output is formatted as USER:ID:LM hash:NTLM hash, however the aad3b435b51404eeaad3b435b51404ee LM Hash simply means “no password”. Read more about that here.
Lets feed the NTLM hashes into crackstation and see what we can find:
So each user is a Radiohead album, and each password is a song from that album. Sorting the passwords alphabetically with a single whitespace delimiter and taking an MD5 hash of that reveals the flag: