Investigation Traces Phishing Campaign From Python Infostealer to PureRAT

· Original article ↗

Summary

Huntress details a 10-stage phishing infection chain that progressed from Python loaders and an infostealer to PureRAT, explaining its persistence, evasion, host fingerprinting and encrypted C2. SOC remediation stopped deployment of additional plugins.

Key points

  • The campaign began with a phishing ZIP disguised as a copyright notice; a signed PDF reader sideloaded a malicious DLL.
  • Early Python stages used layered loaders and obfuscation, then harvested browser credentials, cookies, credit cards and autofill data and sent archives via Telegram.
  • Later stages used process hollowing, patched AMSI, unhooked ETW and loaded .NET payloads in memory.
  • PureRAT fingerprinted infected hosts and used a TLS-pinned, encrypted C2 channel to receive tasks and load modules.
  • Huntress says its SOC isolated and remediated the infected host before additional PureRAT plugins were deployed.
  • The Telegram handle and infrastructure led the researchers to say the campaign strongly suggests links to the PXA Stealer operators; attribution is not presented as confirmed.

Article Details

Attack Vectors
  • A phishing email delivered a ZIP archive disguised as a copyright infringement notice; it contained a signed PDF reader executable and a malicious version.dll that was loaded through DLL sideloading.
  • A multi-stage loader chain used certutil.exe, a bundled renamed WinRAR copy, a renamed Python interpreter, and obfuscated Python and .NET payloads.
  • The loaders used process hollowing to execute a malicious .NET payload inside RegAsm.exe and loaded later assemblies and a DLL into memory using .NET reflection.
  • Payload 4 created a Windows Run key for persistence and retrieved subsequent payloads through Telegram bot descriptions and URL shorteners.
  • The Python infostealer harvested browser credentials, cookies, credit-card data, and autofill data, then archived and sent the collected data through the Telegram Bot API.
  • PureRAT used an encrypted, certificate-pinned C2 connection and a tasking loop to receive and execute operator-supplied modules.
Defensive Notes
  • Use defense in depth across phishing protection, endpoint controls, and network monitoring; the article notes that no single control would stop the full chain.
  • Monitor for certutil.exe decoding activity, suspicious DLL sideloading, renamed Python interpreters, process hollowing involving RegAsm.exe, and unexpected registry Run-key creation.
  • Monitor for AMSI patching, ETW unhooking, suspicious WMI enumeration, and unexpected outbound traffic to Telegram or the reported C2 infrastructure.
  • Hunt for the reported payload hashes and isolate infected hosts; Huntress reports that its SOC isolated and remediated the affected host before additional PureRAT modules were deployed.

Indicators of compromise

TypeIndicatorContext
IPV4157[.]66[.]26[.]209PureRAT C2 server identified in the malware configuration; the article reports it was located in Vietnam.
SHA25606fc70aa08756a752546198ceb9770068a2776c5b898e5ff24af9ed4a823fd9dHash of the Payload 8 loader.
SHA256f5e9e24886ec4c60f45690a0e34bae71d8a38d1c35eb04d02148cdb650dd2601Hash of the Payload 7 loader.
SHA256f6ed084aaa8ecf1b1e20dfa859e8f34c4c18b7ad7ac14dc189bc1fc4be1bd709Hash of the obfuscated Python script identified as Payload 2.
URLhxxps[:]//0x0[.]st/8WBr.pyStage 3 payload-hosting URL reported in the IOC table.
URLhxxps[:]//is[.]gd/s5xknuj2Shortened URL reported as hosting the Stage 2 payload.
URLhxxps[:]//paste[.]rs/fVmzSURL reported as hosting the Stage 2 payload.

MITRE ATT&CK

T1027 · Obfuscated Files or InformationThe loaders concealed payloads using Base85, Base64, RC4, AES, XOR, and other obfuscation.T1055.012 · Process HollowingThe loader launched RegAsm.exe suspended, replaced its process memory with a malicious .NET payload, and resumed the thread.T1059.006 · PythonEarly stages ran through a renamed Python interpreter and Python scripts.T1071.001 · Web ProtocolsThe Stage 2 stealer sent the ZIP archive and messages through the Telegram Bot API.T1082 · System Information DiscoveryPureRAT collected the compromised host's operating-system version and architecture.T1105 · Ingress Tool TransferThe loaders retrieved subsequent payloads from URL-shortening and file-hosting URLs.T1204.002 · Malicious FileThe user was tricked into executing an executable disguised as a document.T1518.001 · Security Software DiscoveryPureRAT queried WMI for installed antivirus products.T1547.001 · Registry Run Keys / Startup FolderPayload 4 created a Windows Run key named Windows Update Service to relaunch the infection chain at user logon.T1560.001 · Archive via UtilityThe Python infostealer archived collected data into a ZIP file before sending it.T1562.001 · Disable or Modify ToolsPayload 7 patched AmsiScanBuffer in amsi.dll to prevent scanning of dynamically loaded code.T1562.006 · Indicator BlockingPayload 7 patched EtwEventWrite in ntdll.dll to disrupt ETW telemetry.T1566.001 · Spearphishing AttachmentThe campaign began with a phishing email containing a malicious ZIP archive.T1573.002 · Asymmetric CryptographyPureRAT used TLS with a pinned X.509 certificate for encrypted C2 communications.T1574.001 · DLLA legitimate signed PDF reader executable loaded the malicious version.dll from the same directory.

Malware

Tools

Countries

Related Articles