Single-file PowerShell incident response script for detecting Chrysalis backdoor artifacts associated with the Lotus Blossom (Billbug) threat actor.
This script is self-contained, SYSTEM-safe, and hardened for live response / EDR execution.
All indicators are embedded directly in the script there is no external JSON or config files required, it's an all-in-one script!
The script checks for known Indicators of Compromise (IOCs) documented by Rapid7 and subsequent community research, including:
- Malicious file hashes
- Known install paths
- DLL sideloading patterns
- Registry Run key persistence
- Named mutex (live implant indicator)
- Optional host-local network indicators
Source analysis:
https://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/
- SHA-256 hashes associated with:
BluetoothService.exe- Encrypted shellcode blobs
- Malicious DLLs (e.g.
log.dll) - Supporting tooling dropped in
USOShared
%AppData%\Bluetooth\%AppData%\Bluetooth\BluetoothService.exe%ProgramData%\USOShared\*
Detects the presence of:
BluetoothService.exelog.dll
in the same directory, which is a core Chrysalis execution technique.
- Registry Run keys:
HKCU\Software\Microsoft\Windows\CurrentVersion\RunHKLM\Software\Microsoft\Windows\CurrentVersion\RunHKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
- Mutex:
Global\Jdhfv_1.0.1
Presence strongly suggests the backdoor is currently running.
- Active TCP connections to known IOC IPs
- IOC domains observed in the local DNS cache
⚠️ Network checks are best-effort only and do not replace proxy or firewall log analysis.
- Windows
- PowerShell 5.1 or newer
- Administrator or SYSTEM context recommended
As Administrator (recommended):
- Right-click Start
- Select Windows PowerShell (Admin) or Terminal (Admin)
As SYSTEM (EDR / PsExec):
psexec -s powershell.exeSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass.\Check-ChrysalisIoC.ps1.\Check-ChrysalisIoC.ps1 -ScanPaths "C:\Users","C:\ProgramData"Disable registry checks:
.\Check-ChrysalisIoC.ps1 -NoRegistryDisable mutex checks:
.\Check-ChrysalisIoC.ps1 -NoMutexDisable network checks:
.\Check-ChrysalisIoC.ps1 -NoNetworkOutput & Exit Codes
[FOUND] → IOC path or artifact present
[MATCH] → Confirmed hash or network IOC
[SUSPICIOUS] → High-confidence behavioral indicator
Exit Codes
Exit Code Meaning
0 No IOCs detected
1 One or more IOCs detected- EDR automation
- Fleet sweeps
- SOAR pipelines
Any Critical finding = assume compromise
Preserve disk and memory before remediation
Pivot immediately to:
- Proxy logs
- Firewall logs
- EDR telemetry
This script is a triage and confirmation tool, not a remediation utility.
- Single-file deployment
- No external dependencies
- SYSTEM / live-response safe
- TOCTOU-safe filesystem access
- Defensive error handling
- IR-grade signal quality
This tool is provided for defensive security and incident response purposes only. Detection coverage is limited to known public indicators and host-local visibility.
If this script flags a system:
- Treat it as potentially compromised
- Perform full incident response
- Do not rely on this script alone for eradication