Amadey Trojan Stealer — Memory Forensics

Scenario

After an after-hours EDR alert flagged suspicious activity on a Windows workstation, we suspected the Amadey Trojan Stealer. A memory dump (Windows 7 x64-Snapshot4.vmem) was handed to us for analysis. Using Volatility 3 inside an Ubuntu VM, I worked through the dump to uncover the malicious process, its location, C2 activity, downloaded plugins, and persistence mechanisms.


Environment Setup — defining $VOL and $MEM

Before diving in, I set two variables to avoid rewriting long file paths with spaces:

VOL="/home/ubuntu/Desktop/Start here/Tools/volatility3/vol.py"
MEM="/home/ubuntu/Desktop/Start here/Artifacts/Windows 7 x64-Snapshot4.vmem"

ls -l "$MEM"

Step 1.1 Screenshot

Setting $VOL and $MEM makes the commands cleaner and prevents errors with paths. This way, every Volatility command is shorter and repeatable.


Q1 — Parent Process Triggering Malicious Behavior

Command:

python3 "$VOL" -f "$MEM" windows.pstree | tee ~/allprocs.txt

Step 1.1 Screenshot

Answer:

lssass.exe

The process tree revealed a fake lssass.exe (extra “s”), masquerading as the real lsass.exe. It spawned a child rundll32.exe, which is exactly how Amadey executes malicious DLLs.


Q2 — Location of the Rogue Process

Command:

python3 "$VOL" -f "$MEM" windows.filescan | grep -i "lssass"

Step 1.1 Screenshot

Answer:

C:\Users\0XSH3R~1\AppData\Local\Temp\925e7e99C5\lssass.exe

The binary was executed from a user’s Temp directory, not from System32 where a legitimate lsass.exe belongs. This confirms it’s malicious staging.


Q3 — C2 Server IP

Command:

strings -a -n 6 "$MEM" | grep -A3 -B3 "GET /rock/Plugins/"

Step 1.1 Screenshot

Answer:

41.75.84.12

Carving strings exposed the malware’s C2 server: 41.75.84.12. It communicated over port 80, blending malicious traffic with normal web browsing.


Q4 — Distinct Files Fetched

Command:

grep -n "GET /" ~/allstrings.txt | sed -n '1,80p'

Step 1.1 Screenshot

Answer:

2

The malware attempted to fetch two DLLscred64.dll and clip64.dll. These are modular plugins: one to steal credentials and another to capture clipboard data.


Q5 — Full Path of Downloaded File

Command:

python3 "$VOL" -f "$MEM" windows.filescan | egrep -i "cred64|clip64"

Step 1.1 Screenshot

Answer:

C:\Users\0xSh3rl0ck\AppData\Roaming\116711e5a2ab05\clip64.dll

One of the plugins, clip64.dll, was stored in AppData\Roaming under a randomly named folder. This location is stealthy and often overlooked by defenders.


Q6 — Child Process Used to Execute the DLLs

Command:

python3 "$VOL" -f "$MEM" windows.pstree | egrep -i "lssass|rundll32"

Step 1.1 Screenshot

Answer:

rundll32.exe

The malware used rundll32.exe — a trusted Windows utility — to load and execute its malicious DLLs. This is a common “living off the land” tactic that helps malware avoid detection.


Q7 — Additional Persistence Location

Command:

python3 "$VOL" -f "$MEM" windows.filescan | grep -i "Tasks\\lssass.exe"

Step 1.1 Screenshot

Answer:

\Windows\System32\Tasks\lssass.exe

The malware registered itself as a Scheduled Task, ensuring it restarts after reboots. This persistence method uses a trusted Windows feature, making it harder to spot.


Final Wrap-Up

Through careful memory forensics, I was able to fully reconstruct the chain of activity tied to the Amadey trojan. The investigation began by identifying a masquerading process, lssass.exe, which was pretending to be the legitimate Windows security process lsass.exe. This rogue binary was executed from a user’s Temp folder, confirming it was not a system file. Analysis of the process tree showed that lssass.exe spawned rundll32.exe, a legitimate Windows utility that attackers commonly abuse to execute malicious DLLs. By carving network artifacts from memory, I discovered the malware had connected to its command-and-control server at 41.75.84.12, using port 80 to disguise its traffic as normal web browsing. Further analysis of HTTP requests revealed that Amadey attempted to fetch two plugin DLLscred64.dll and clip64.dll. One of these, clip64.dll, was located in the user’s AppData\Roaming directory, hidden under a randomly generated folder to evade detection. Finally, persistence was confirmed through the presence of a copy of lssass.exe in the System32\Tasks directory, showing the malware registered itself as a scheduled task to ensure it would survive reboots. Overall, this case highlights how Amadey leverages process masquerading, modular plugin downloads, living-off-the-land techniques, and scheduled tasks to establish long-term control of a system.

Previous
Previous

Lespion Lab Walkthrough

Next
Next

Malware Hash Investigation Walkthrough