Cybersecurity News, Threat Intelligence & CISO Best Practices

Illustration showing the Chrysalis backdoor attack chain used by the Lotus Blossom APT, including DLL sideloading, NSIS installer abuse, encrypted C2 communication, and advanced malware tooling.

Rapid7 recently disclosed a sophisticated cyber-espionage campaign attributed to Lotus Blossom (also tracked as “Billbug”), an advanced persistent threat. The activity primarily targets high-value sectors: government, telecommunications, aviation, critical infrastructure, and media reflecting classic intelligence-driven objectives rather than opportunistic cybercrime.

The intrusion investigated by Rapid7’s MDR team originated from a compromise affecting infrastructure used to host Notepad++, where execution of notepad++.exe and GUP.exe preceded the launch of a suspicious update.exe downloaded from 95.179.213.0. While open reporting references plugin or updater abuse, Rapid7 highlights that definitive artifacts were not available to confirm the exact mechanism; what is confirmed is the downstream execution chain that led to a new, previously undocumented backdoor dubbed Chrysalis.

Technical Summary: From NSIS Installer to Custom Backdoor

Rapid7’s analysis shows update.exe is an NSIS installer, a delivery format frequently used by Chinese APT groups to stage payloads. The installer drops components into a hidden %AppData%\Bluetooth directory and executes a renamed legitimate binary (BluetoothService.exe, a Bitdefender submission tool) to enable DLL sideloading of a malicious log.dll.

The sideloaded DLL provides two key exported functions (LogInit, LogWrite) responsible for loading encrypted shellcode into memory, decrypting it with a custom routine, resolving APIs dynamically via hashing, and transferring execution to the decrypted stage. That stage ultimately loads Chrysalis: a feature-rich, persistent implant designed for long-term access.

Chrysalis backdoor attack chain diagram showing Lotus Blossom APT intrusion flow with NSIS installer abuse, DLL sideloading via log.dll, execution through BluetoothService.exe, and encrypted HTTPS command-and-control communication.
Chrysalis backdoor attack chain: NSIS delivery, DLL sideloading, HTTPS C2.

Chrysalis Capabilities and Tradecraft

Once active, Chrysalis demonstrates mature engineering and layered stealth:

  • Multi-stage decryption (including reflective PE-like module loading and custom string obfuscation)
  • Dynamic API resolution via hashing and PEB walking (reducing static indicators)
  • Configuration encryption (RC4-based) with benign-looking user-agent strings
  • C2 communications over HTTPS with URL patterns intended to resemble legitimate API traffic
  • A broad command set enabling:
    • interactive reverse shell,
    • remote process execution,
    • file read/write and chunked transfers,
    • directory enumeration and metadata collection,
    • persistence via Windows services or registry run keys,
    • self-removal and artifact cleanup.

Rapid7 also observed additional tooling on victim infrastructure, including a renamed Tiny C Compiler (TCC) and loaders consistent with a chain that retrieves a Cobalt Strike HTTPS beacon. Of particular note: a loader variant (ConsoleApplication2.exe) leveraged Microsoft Warbird—an obscure Microsoft internal protection mechanism—by abusing NtQuerySystemInformation parameters to achieve execution inside memory mapped to Microsoft-signed binaries. This is a strong signal of evolving stealth tradecraft and rapid adoption of public research by the adversary.


Indicators of Compromise (IoCs)

Network Indicators (as observed / published)

IP addresses

  • 95.179.213.0
  • 61.4.102.97
  • 59.110.7.32
  • 124.222.137.114

Domains

  • api.skicloudcenter.com
  • api.wiresguard.com

Microsoft 365 Defender Advanced Hunting Queries

1) File/Hash Hunt (SHA-256)

Use this query to identify file creation, modification, or presence for the published SHA-256 indicators:

DeviceFileEvents
| where SHA256 in (
"a511be5164dc1122fb5a7daa3eef9467e43d8458425b15a640235796006590c9",
"8ea8b83645fba6e23d48075a0d3fc73ad2ba515b4536710cda4f1f232718f53e",
"2da00de67720f5f13b17e9d985fe70f10f153da60c9ab1086fe58f069a156924",
"77bfea78def679aa1117f569a35e8fd1542df21f7e00e27f192c907e61d63a2e",
"3bdc4c0637591533f1d4198a72a33426c01f69bd2e15ceee547866f65e26b7ad",
"9276594e73cda1c69b7d265b3f08dc8fa84bf2d6599086b9acc0bb3745146600",
"f4d829739f2d6ba7e3ede83dad428a0ced1a703ec582fc73a4eee3df3704629a",
"4a52570eeaf9d27722377865df312e295a7a23c3b6eb991944c2ecd707cc9906",
"831e1ea13a1bd405f5bda2b9d8f2265f7b1db6c668dd2165ccc8a9c4c15ea7dd",
"0a9b8df968df41920b6ff07785cbfebe8bda29e6b512c94a3b2a83d10014d2fd",
"4c2ea8193f4a5db63b897a2d3ce127cc5d89687f380b97a1d91e0c8db542e4f8",
"e7cd605568c38bd6e0aba31045e1633205d0598c607a855e2e1bca4cca1c6eda",
"078a9e5c6c787e5532a7e728720cbafee9021bfec4a30e3c2be110748d7c43c5",
"b4169a831292e245ebdffedd5820584d73b129411546e7d3eccf4663d5fc5be3",
"7add554a98d3a99b319f2127688356c1283ed073a084805f14e33b4f6a6126fd",
"fcc2765305bcd213b7558025b2039df2265c3e0b6401e4833123c461df2de51a"
)
| project Timestamp, DeviceName, FileName, FolderPath, SHA256, ActionType
| order by Timestamp desc

2) Network Hunt (IPs + Domains)

Use this query to detect outbound connections to known infrastructure:

DeviceNetworkEvents
| where RemoteIP in ("95.179.213.0","61.4.102.97","59.110.7.32","124.222.137.114")
or RemoteUrl in ("api.skicloudcenter.com","api.wiresguard.com")
| project Timestamp, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine,
RemoteIP, RemoteUrl, RemotePort, Protocol, ActionType
| order by Timestamp desc

Operational Guidance for SOC / CISO Teams

  • Prioritize containment and forensic preservation if hits appear.
  • If you find any IoC hits, pivot immediately to:
    • process lineage (DeviceProcessEvents) around Notepad++ / GUP.exe / update.exe,
    • persistence (DeviceRegistryEvents, service creation),
    • suspicious %AppData% hidden folder patterns (e.g., “Bluetooth”),
    • outbound HTTPS beaconing with common Chrome user-agents.
  • Consider adding these indicators into your allow/deny and detection logic (Defender custom detections, proxy/SWG, firewall egress rules), while watching for domain/IP rotation.

Leave a Reply