Featured image of post Blue Team Labs Online \u200a— Memory Analysis - Ransomware Walkthrough

Blue Team Labs Online  — Memory Analysis - Ransomware Walkthrough

Blue Team Labs Online | Memory Analysis — Ransomware | Walkthrough

A Memory Analysis Challenge Using Volatility 2.6.

0037ab8d5c5aae296c9051435dce93c8_MD5.png

Image Credit: https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d

Introduction:

Welcome to my weekly walkthrough! If you’ve stumbled across this blog while looking for a detailed guide to the Memory Analysis — Ransomware blue team challenge from Blue Team Labs Online, you’re in the right place.

This challenge is a great entry point into the world of memory forensics, process analysis, and threat intelligence. But don’t worry — whether you’re just getting started in incident response or you’ve already built up some muscle memory with Volatility, there’s plenty here to learn.

Let’s check out the scenario to get started:

Challenge Scenario:

The Account Executive called the SOC earlier and sounds very frustrated and angry. He stated he can’t access any files on his computer and keeps receiving a pop-up stating that his files have been encrypted. You disconnected the computer from the network and extracted the memory dump of his machine and started analyzing it with Volatility. Continue your investigation to uncover how the ransomware works and how to stop it!

Yikes! This challenge puts us squarely in the middle of a ransomware investigation. We’ll be using Volatility to analyze the memory dump, identify suspicious processes, extract forensic artifacts, and ultimately confirm the ransomware family involved. Along the way, we’ll pivot to tools like VirusTotal and use command-line utilities to hash and verify dumped binaries.

I’ll walk through each step clearly, and by the end, you’ll have a solid understanding of how to approach similar investigations in the wild. Sounds like fun, right? Let’s get into it!

And if you find this walkthrough helpful — whether it levels-up your skills, gets you over a stumbling block, or just gives you a clearer view of the blue team side of incident response — please give it a clap and consider following me for more content like this.

Thanks for reading and going on this investigation with me!


Setup the Analysis Environment & Extract the Challenge File:

Safety first! When working with lab/challenge files from Blue Team Labs Online (or any educational lab/challenge/range), it’s important to be responsible and stay safe by interacting with potentially malicious files in a dedicated, isolated virtual machine environment. For this challenge I’m using REMnux, a specialized Linux distribution for malware analysis.

To keep this write-up focused, I’m going to skip step-by-step setup directions of REMnux, but if you’d like to set up your own environment, please follow the guide provided by REMnux directly. For reference, I used the virtual appliance method:

[Get the Virtual Appliance | REMnux Documentation _The easiest way to get the REMnux distro is to download the REMnux virtual appliance in the OVA format, import it into…_docs.remnux.org](https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page--- –d2311959d5f3—









– “https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page--- –d2311959d5f3—









–”)[](https://docs.remnux.org/install-distro/get-virtual-appliance?source=post_page--- –d2311959d5f3—









–)

Once you have a safe virtual environment created, updated, isolated, and snapshotted, we can extract the challenge file and start the investigation!


Question 1: Run “vol.py -f infected.vmem — profile=Win7SP1x86 psscan” that will list all processes. What is the name of the suspicious process?

Let’s kick off our memory dump investigation. To analyze the contents of the memory dump file, infected.vmem, we’ll use Volatility, a popular memory forensics tool. There are a couple of versions of VolatilityVolatility 2.6 (the original, no longer in active development) and Volatility 3 (in active development).

177925f675ef264805d601fee16d1404_MD5.png

Overview of the Challenge File Folder

So, which one should we choose? The question is asking us to use the OS profile switch for Win7SP1x86, which tells us we need to use Volatility 2 (which I’ll just call Volatility from here on out). In Volatility 3, OS profiles aren’t needed — it uses a different plugin architecture and auto-detection mechanisms.

One last helpful piece of background: we can access the Volatility command reference on the project’s GitHub, which helps us understand what each command is doing:

Command Reference _An advanced memory forensics framework. Contribute to volatilityfoundation/volatility development by creating an…_github.com

Now that we’ve gotten all our ducks in a row, let’s get to work!

Start by opening a terminal in the folder containing the infected.vmem file and executing the command from the question:

vol.py -f infected.vmem –profile=Win7SP1x86 psscan

This command opens Volatility and parses the infected.vmem image file using the psscan plugin. According to the documentation:

To enumerate processes using pool tag scanning (_POOL_HEADER), use the psscan command. This can find processes that previously terminated (inactive) and processes that have been hidden or unlinked by a rootkit.

The psscan output shows us all processes running on the victim’s system at the time of capture. It might look a little daunting at first, but there are a couple of odd-looking processes in the list:

  • @WanaDecryptor
  • or4qtckT.exe

27008d0c945d2ed9118e1fd76c40cd33_MD5.png

Volatility: Identifying Suspicious Processes with psscan

For the purposes of this investigation, we’ll focus on WanaDecryptor for a couple of reasons:

  1. The name is similar to a famous ransomware campaign.
  2. There are two instances: one terminated and one still active.
  3. The second process is the parent, which we’ll need to answer Question 2.

b5cfad5c225690dd17c617d6616dd013_MD5.png

Questions 2 & 3:

What is the parent process ID for the suspicious process?

What is the initial malicious executable that created this process?

I might’ve spoiled it in the last question, but to answer Question 2, we need to provide the parent process ID (PPID) of the suspicious process from the psscan results. We can identify this by looking at the PPID column for the suspicious process line.

5c0ad73902e42d27e425714770991932_MD5.png

Volatility: Identifying the Suspicious Process PPID

The PPID matches the process ID (PID) of the second suspicious process we identified: or4qtckT.exe. This means it’s the parent process that created the suspicious process from Question 1.

70aa638119d3540e0f2384283e7d8f48_MD5.png

Volatility: Identifying the Suspicious Parent Executable

To answer Question 3, we now know that or4qtckT.exe is the initial malicious executable that spawned the process we flagged earlier which helps to establish the relationship in the attack chain.

fddddf44c996ea65823982df859a2723_MD5.png

2ae3011fff3445621c7255bb3fe2a141_MD5.png

Question 4: If you drill down on the suspicious PID (vol.py -f infected.vmem — profile=Win7SP1x86 psscan | grep (PIDhere)), find the process used to delete files

For our next task, we’re going to continue analyzing the output from the psscan plugin. This time, we’re going to leverage grep to display only the entries related to the PID of or4qtckT.exe, which we uncovered in the last question. Here’s the command:

vol.py -f infected.vmem –profile=Win7SP1x86 psscan | grep 2732

The output helps us quickly identify a second child executable: taskdl.exe. It shares the same PPID as the first one. While we don’t yet have further analysis of this binary, the fact that the malicious executable spawned both processes allows us to reasonably guess that this is the process used to delete files.

05e9a4005acf33d651010cf3e6bde33e_MD5.png

Volatility: Identifying a Second Process with the Malicious Parent Process

f769771039736fbaa3b37535e820d88b_MD5.png

Question 5: Find the path where the malicious file was first executed

Moving right along to Question 5, we’ll need to pivot away from psscan to another module. When determining the right one to use, it can be really useful to pull up Volatility’s help menu and review the options. You can access it with the command:

vol.py -h

Based on the available options, it seems like the cmdline module will fit the bill, as it’s used to “display process command-line arguments.” Let’s give it a try with a quick adjustment to our command. We’ll combine the cmdline function with grep to focus on the malware or4qtckT.exe:

vol.py -f infected.vmem –profile=Win7SP1x86 cmdline | grep 2732

0edb6f047c25558b67a8fffeddea56e4_MD5.png

Volatility: Identifying the Malware File Location with cmdline

Awesome! This gives us exactly what we needed — the file path of the executable, right on the “hacker’s” desktop.

a956eaefbca29b5a719d911426d362df_MD5.png

Question 6: Can you identify what ransomware it is? (Do your research!)

Now that we’ve identified the malicious executable and its child processes, it’s time to pivot to threat intelligence to figure out what ransomware family we’re dealing with. The approach is straightforward: obtain the file hash for or4qtckT.exe, check VirusTotal, and use the intelligence to confirm the ransomware family.

First, we’ll dump the executable using Volatility’s procdump command, specifying the PID we found in Question 2:

vol.py -f infected.vmem –profile=Win7SP1x86 procdump –pid=2732 –dump-dir OUTPUTDIRECTORY

c76712175bfc7c068e4e950f32c08ffa_MD5.png

Volatility: Dumping the malicious executable with prodcump & obtaining the file hash

With the executable dumped, we can calculate the SHA-256 file hash using sha256sum command:

5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6

Next, head to VirusTotal, and input the file hash in the search box. We’ll see immediately that this sample has been analyzed on the platform already and that a majority of vendors have tagged it as malicious.

fe59c9e36f9d81243341f2fb3e7e452f_MD5.png

https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6

To answer Question 6, we’re interested in the Family and Threat Label tags, identifying this file as part of the WannaCry ransomware family. This lines up with the naming similarity we stumbled on earlier in Question 1, which solidifies the findings.

d2fca851d116dbcf3d2e678a972ed8fe_MD5.png

Question 7: What is the filename for the file with the ransomware public key that was used to encrypt the private key? (.eky extension)

We’ve made it to the final question, and this one asks us to find the filename of the ransomware public key with the .eky extension. This is a little outside the usual scope of the challenge, but .eky isn’t a common file extension. It’s most often associated with the WannaCry ransomware family, which fits with what we found in Question 6.

So, how do we find it? We’ll use another Volatility module: dumpfiles. This lets us check other files cached in memory for the PID tied to the malicious process. The command looks similar to the one we use in Question 6:

vol.py -f infected.vmem –profile=Win7SP1x86 dumpfiles –pid=2732 –dump-dir OUTPUTDIRECTORY

5f2633e9b2288e08bc477bfe73e0aba7_MD5.png

Volatility: Dumping the associated files for the malicious PID with dumpfiles

When we run this command, the associated files dump to the specified directory, and the listing also prints to the console. From that output, we see the first two lines contain the filename 00000000.eky. That’s the key file we need to wrap up this investigation!

b19f203fd04d6953cacda1b834d3adae_MD5.png


Conclusion:

c0dd8c7acc0e5758e6c798ff7a37919e_MD5.png

How fun was that? A big thank you to Blue Team Labs Online for putting together another solid challenge.

This investigation was a breezy introduction to Volatility and ransomware behavior. It’s a great example of how memory analysis can reveal the full scope of an attack — from identifying suspicious processes with psscan, to extracting binaries with procdump, and finally confirming the ransomware family via threat intelligence — even when disk artifacts aren’t available.

I chose this challenge to sharpen my incident response workflow and get reacquainted with Volatility, especially in scenarios where ransomware is involved. The investigation pushed me to pivot between modules, apply threat intelligence, do some research about this ransomware, and yes — stumble across clues like the .eky file. Awesome stuff!

Thanks for your support and partnering on this investigation. If you found this walkthrough helpful, don’t forget to give it a clap! Your feedback really is invaluable, and it pumps me up to support your security journey. Remember, Cybersecurity is a team sport and we’re in this together!

Until next week’s challenge — stay curious and be safe out there!

897587ce48e9f9feb186cdd21a12ccdd_MD5.png


Tools & References:

Challenge Link: https://blueteamlabs.online/home/challenge/memory-analysis-ransomware-7da6c9244d

REMnux: https://remnux.org/

Volatility: https://volatilityfoundation.org/the-volatility-framework/

Volatility — Command Reference: https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#psscan

VirusTotal: https://www.virustotal.com/

VirusTotal — Sample: https://www.virustotal.com/gui/file/5215d03bf5b6db206a3da5dde0a6cbefc8b4fee2f84b99109b0fce07bd2246d6

MITRE ATT&CK — Software — WannaCry (S0366): https://attack.mitre.org/software/S0366/

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy