LabubaRAT — Rust-Based RAT Masquerading as NVIDIA Software
Executive Summary
LabubaRAT is an unsigned 64-bit Rust remote access trojan that impersonates NVIDIA container runtime software (nvidia-sysruntime.exe) to establish a durable, hands-on-keyboard foothold on Windows hosts. It is not a downloader: the operator gets host profiling, command execution (cmd/PowerShell/JavaScript), file transfer, screenshot capture, and SOCKS5 traffic-proxying from a single binary, enrolled at launch via command-line flags or ZM_-prefixed environment variables (org, group, server, API key) rather than a hardcoded C2. That configuration model, three redundant C2 channels (HTTPS polling, WebView2, DNS tunneling), and a panel-branded backend ("LabubaPanel") point to a reusable, multi-tenant access framework consistent with a malware-as-a-service offering rather than a one-off implant.
The attacker's objective is durable remote access with built-in pivot capability: LabubaRAT's SOCKS5 proxy support lets an operator route further traffic and tooling through the compromised host, and its renamed-MSBuild follow-on stage (BuildCoordinator.exe proxy-executing a build project that loads DotNetZip.dll) shows the operator escalating from the implant into trusted-utility abuse once access is confirmed.
The single highest-value defensive angle is the masquerade itself: nvidia-sysruntime.exe is not a real NVIDIA binary name under any legitimate install, so any execution of a file by that name is a near-zero-false-positive tripwire (Q1, below). Pair that with blocking the three confirmed C2 IPs and the pipicka[.]xyz domain (Q7) and an ASR rule against untrusted new executables (§12), and the highest-confidence portion of this campaign is covered without waiting on deeper DNS-tunnel or in-memory analysis.
Defender priority: block/detect the confirmed C2 (Q7, §10 CSV) and hunt for nvidia-sysruntime.exe execution (Q1) and its HKCU Run-key persistence (Q3) fleet-wide this week — those three checks alone cover the implant's entry point, its C2, and its survival mechanism.
Source Review & Web Hunter Notes
Four sources were fetched directly and saved verbatim to LabubaRAT-Hunt-sources/ for provenance tracing. All four trace to a single primary research effort — Blackpoint Cyber's Adversary Pursuit Group (APG) — republished by two secondary outlets that cite Blackpoint and add no independent atomic indicators of their own. The original technical disclosure was published 2026-07-14; the Blackpoint Threat Snapshot dated 2026-09-17 is a condensed re-publication of the same research and is the most current dated reporting, not a new investigation. No corroborating IOC set from a second, independently-researching vendor (Mandiant, Talos, Microsoft, Unit 42, etc.) was located as of 2026-09-23.
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 · Primary | Blackpoint Cyber — Threat Snapshot: LabubaRAT (2026-09-17) | Condensed IOC table (hashes, mutex, PDB path, C2 domain, 3 host IPs, BuildCoordinator.exe hash), MITRE TTP table, recommendations | Yes — primary IOC source |
| 1 · Primary | Blackpoint Cyber — original analysis (2026-07-14, Decker & Beal) | Full technical writeup: Rust build artifacts, -b Base64 config wrapper, SQLite schema, WebView2/DNS transport internals, security-tool enumeration, tasking model | Yes — primary technical detail |
| 2 · Secondary | Help Net Security (2026-07-15, Sinisa Markovic) | Confirms Blackpoint's findings; no new IOCs; corroborates capability list and MaaS framing (hedged — "stopped short of attributing") | Partial — corroboration only |
| 2 · Secondary | The Hacker News (2026-07-14, Ravie Lakshmanan) | Confirms Blackpoint's findings; no new IOCs; confirms MaaS signals as tentative ("some signs") | Partial — corroboration only |
Corrections against the task brief: the brief's atomic values (hashes, domain, IPs, config values) were verified character-for-character against the fetched sources and are accurate as given. One brief claim is softened here: the brief states LabubaRAT is "offered under a malware-as-a-service model" as fact; both Blackpoint's own original analysis and both secondary outlets frame this as an inference from the framework-like architecture (configurable org/group/server/key, panel branding) rather than a confirmed commercial offering — Help Net Security explicitly notes Blackpoint "stopped short of attributing it to a malware-as-a-service offering." This pack treats MaaS as likely, evidence-based, not confirmed.
Because every atomic indicator in this pack traces to a single research origin (Blackpoint APG), no indicator ships at Falcon CSV action prevent regardless of narrative severity — all IOC-management rows in §10 ship as detect. This matches HuntPack's standing two-source policy for prevent/critical-severity action, and the §4 IOC table's Action column is kept consistent with that CSV rather than diverging from it.
Hunt Brief & Attack Chain
Hunt hypotheses
- H1 (high conf): A process file-named
nvidia-sysruntime.exeexecuting anywhere in the environment is LabubaRAT — the name is not a real NVIDIA artifact. → Q1. - H2 (high conf): A process command line or environment carries
--org/--key/--group/--server, a long Base64 blob after-b, or aZM_-prefixed variable — the implant's enrollment configuration. → Q2. - H3 (high conf): An HKCU Run-key entry combines a long Base64 value with an NVIDIA-themed or LabubaRAT-named target — the implant's persistence mechanism. → Q3.
- H4 (high conf): A process file-named
BuildCoordinator.exeis a renamed MSBuild binary used to proxy-execute a follow-on build project. → Q4. - H5 (medium conf): Elevated or bursty DNS query volume with long subdomain labels toward a single low-reputation domain indicates the DNS-tunneling C2 channel. → Q5.
- H6 (high conf): A WebView2 runtime process is spawned by the LabubaRAT process tree rather than a browser — the implant's WebView2 C2 channel. → Q6.
- H7 (high conf): Any connection to the three confirmed host IPs or the
pipicka[.]xyzdomain is LabubaRAT C2 traffic. → Q7. - H8 (medium conf): A flagged LabubaRAT process fanning out to many distinct remote IPs indicates the SOCKS5 proxy/relay capability in use. → Q8.
- H9 (medium conf): Creation or access of
nvctr_sys.db(+-wal/-shm) is the implant's local enrollment/state database. → Q9. - H10 (high conf):
wscript.exe/cscript.exeinvoked against awupd_-prefixed temporary script with//NoLogo //E:JScriptis the implant's JavaScript task handler. → Q10.
Attack chain
| Step | Telemetry | Hunt Angle |
|---|---|---|
| 1. Delivery — implant placed on host (Blackpoint notes delivery observed via the RAT's own JavaScript execution capability, i.e. redeployed from an existing foothold; initial access vector not independently confirmed) | Process / file-write telemetry on the dropping process | Gap — no confirmed initial-access technique to hunt; monitor Q1/Q10 for redeployment |
2. Execution — nvidia-sysruntime.exe launched with CLI args or -b Base64 blob | ProcessRollup2 / SyntheticProcessRollup2 | Q1, Q2 |
| 3. Host profiling — browser inventory, AV/EDR enumeration via registry uninstall keys, hostname/CPU/RAM/domain/UAC collection (in-process, no external calls) | None — internal API/registry reads, not surfaced by sensor | Gap — see §15 |
4. C2 enrollment — HTTPS bearer-auth polling, WebView2 channel, or DNS-tunnel fallback to pipicka[.]xyz | NetworkConnectIP4, DnsRequest | Q5, Q6, Q7 |
5. Local state — nvctr_sys.db SQLite database created/opened for config and event persistence | FileOpenInfo | Q9 |
6. Persistence — HKCU Run key added with the encoded -b autostart argument | RegGenericValueUpdate / AsepValueUpdate | Q3 |
| 7. Operator tasking — cmd/PowerShell/JavaScript execution, screenshot capture (GDI APIs), file upload/download/archive | ProcessRollup2 (script hosts); screenshot capture has no sensor telemetry | Q10; native §7 for PowerShell logging; screenshot = gap |
8. Follow-on tooling — renamed MSBuild (BuildCoordinator.exe) proxy-executes a build project loading DotNetZip.dll | ProcessRollup2 | Q4 |
9. Proxy/pivot — SOCKS5 relay (socks5_start) tunnels operator traffic through the host | NetworkConnectIP4 fan-out | Q8 |
| 10. Exfiltration — operator-directed data movement over the same C2 channel(s) | NetworkConnectIP4, DnsRequest | Q7, Q5 |
Consolidated IOC Table
All atomic indicators below trace to a single research origin (Blackpoint APG) — see §2. Action values are held to detect/hunt/enrich/pivot only; nothing ships at a blocking/prevent action from a single source.
| Type | Value | Confidence | Action | Context | Expiry |
|---|---|---|---|---|---|
| File name | nvidia-sysruntime.exe | High | hunt | Entry-point binary impersonating NVIDIA Container Runtime Monitor | 2026-12-23 |
| SHA-256 | b7443b0ab48d2f5786d1b6f3a580f02621e9ae5a3877ee3a44e01df13d984328 | High | detect | Analyzed LabubaRAT sample (nvidia-sysruntime.exe) | 2027-03-23 |
| MD5 | d8bf355a198fb5db3ea65cfdfcdfbd19 | High | detect | Analyzed LabubaRAT sample (nvidia-sysruntime.exe) | 2027-03-23 |
| PDB path | nvidia_container.pdb | Medium | hunt | Debug path artifact embedded in the sample | 2026-12-23 |
| Local database | nvctr_sys.db | High | hunt | Local SQLite state database (config, device state, event log) | 2026-12-23 |
| Mutex | Local\NVIDIAContainerMonitor_SingleInstance | High | enrich | Single-instance mutex — not observable via standard Falcon telemetry (see §15) | 2026-12-23 |
| C2 domain | pipicka[.]xyz | High | detect | Observed configured C2 server; hosts the "LabubaPanel" backend | 2027-03-23 |
| File name | BuildCoordinator.exe | Medium | hunt | Renamed Microsoft Build Engine (MSBuild) used as a LOLBIN loader | 2026-12-23 |
| SHA-256 | 3d2b22b6bc51e0918263f4420e6bdf7d982d961b54176c470cac11841d1c9b33 | High | detect | Renamed MSBuild binary (BuildCoordinator.exe) | 2027-03-23 |
| Config value | ZM_key = 8c4e4804f21649e5ddc6a5670f3b3828a43bff304f02f184f9842c2569570f3d | Medium | hunt | Observed API key value from one enrollment (campaign/tenant-specific, may rotate) | 2026-12-23 |
| Config value | ZM_group = rabbit | Low | enrich | Observed group tag; embedded help text shows other examples (room-1, sauna, vip-chair) so this value alone is weakly discriminating | 2026-10-23 |
| Config value | ZM_org = luxespa | Low | enrich | Observed organization tag; same MaaS multi-tenant caveat as ZM_group | 2026-10-23 |
| IPv4 | 191.44.109.130 | High | detect | LabubaPanel-structured C2 host infrastructure (German hosting) | 2027-03-23 |
| IPv4 | 87.120.108.18 | High | detect | LabubaPanel-structured C2 host infrastructure (German hosting) | 2027-03-23 |
| IPv4 | 168.222.254.204 | High | detect | LabubaPanel-structured C2 host infrastructure (German hosting) | 2027-03-23 |
| Build path fragment | C:\Users\funt\.cargo\registry\ | Low | pivot | Rust build-environment username artifact; useful for sample clustering only | 2026-10-23 |
| Follow-on payload | DotNetZip.dll | Medium | hunt | Follow-on payload loaded via the renamed-MSBuild project build; sample unrecovered at publication | 2026-12-23 |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Windows endpoint process execution | ProcessRollup2 / SyntheticProcessRollup2 | High | Low — strong Falcon coverage |
| Windows registry (HKCU Run persistence) | RegGenericValueUpdate / AsepValueUpdate | High | Low — strong Falcon coverage |
| Endpoint file access (SQLite state DB, dropped scripts) | FileOpenInfo | Medium | Low-Medium — event covers access, not always creation-specific |
| Network egress (HTTPS/WebView2 C2, SOCKS5 proxy) | NetworkConnectIP4 | High | Low — strong Falcon coverage |
| DNS resolution (tunneling channel) | DnsRequest | Medium | Medium — query metadata visible, tunnel payload content is not |
| OS synchronization primitives (single-instance mutex) | None in standard Falcon event model | Low (compensating controls only) | High — full gap, see §15 |
| In-process host/security-tool enumeration (registry reads, WinAPI calls) | None — reads are not logged the way writes are | Low (compensating controls only) | High — full gap, see §15 |
| Screenshot capture (GDI API sequence) | None — in-memory API usage, no file/network artifact | Low (compensating controls only) | High — full gap, see §15 |
| In-memory JavaScript execution engine content | None — the RAT's internal JS interpreter, not Windows Script Host | Low (compensating controls only) | High — full gap, see §15 |
ATT&CK Mapping
| Tactic | Technique | Technique Name | Observed Behavior / Query |
|---|---|---|---|
| Execution | T1059.001 | Command and Scripting Interpreter: PowerShell | Operator-tasked PowerShell execution via the implant's powershell task handler — Q2, native §7 |
| Execution | T1059.003 | Command and Scripting Interpreter: Windows Command Shell | Operator-tasked cmd execution — Q2 |
| Execution | T1059.007 | Command and Scripting Interpreter: JavaScript | wupd_-prefixed script executed via Windows Script Host — Q10 |
| Execution | T1127.001 | Trusted Developer Utilities Proxy Execution: MSBuild | Renamed MSBuild (BuildCoordinator.exe) proxy-executes a build project — Q4 |
| Defense Evasion | T1036.005 | Masquerading: Match Legitimate Name or Location | nvidia-sysruntime.exe spoofed NVIDIA version metadata — Q1 |
| Defense Evasion | T1036.003 | Masquerading: Rename System Utilities | MSBuild renamed to BuildCoordinator.exe — Q4 |
| Persistence | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys | HKCU Run key with encoded -b autostart argument — Q3 |
| Discovery | T1082 | System Information Discovery | Hostname, CPU, RAM, domain, UAC collection — no sensor telemetry, gap |
| Discovery | T1016 | System Network Configuration Discovery | Network/connection-type profiling at registration — no sensor telemetry, gap |
| Discovery | T1518.001 | Security Software Discovery | AV/EDR enumeration via registry uninstall keys, read in-process — no sensor telemetry, gap |
| Collection | T1113 | Screen Capture | GDI-based screenshot capture (GetDC/BitBlt/GetDIBits) — no sensor telemetry, gap |
| Collection | T1560 | Archive Collected Data | Archive/unarchive file-module actions; local state DB — Q9 (partial) |
| Command and Control | T1071.001 | Application Layer Protocol: Web Protocols | HTTPS bearer-auth polling and WebView2 channel — Q6, Q7 |
| Command and Control | T1071.004 | Application Layer Protocol: DNS | DNS-tunneling fallback channel to pipicka[.]xyz — Q5, Q7 |
| Command and Control | T1090 | Proxy | SOCKS5 relay proxies operator traffic through the host — Q8 |
| Command and Control | T1572 | Protocol Tunneling | Base32-chunked DNS tunneling transport — Q5 |
| Exfiltration | T1041 | Exfiltration Over C2 Channel | Data movement over the same HTTPS/DNS channels — Q7, Q5 |
Native Audit-Log Hunts
For endpoints without Falcon sensor coverage, or as compensating telemetry, the following native Windows checks cover the same behaviors as the CQL queries in §8.
- Event ID 4688 (Process Creation, with command-line auditing enabled via
Include command line in process creation eventsGPO) filtered forNewProcessNameendingnvidia-sysruntime.exeorBuildCoordinator.exe, orCommandLinematching the ZM_/--org/--key/--group/--server/-b patterns from Q2. - Event ID 4104 (PowerShell Script Block Logging) for encoded or unusual blocks spawned under a
nvidia-sysruntime.exeparent — covers the implant's PowerShell task handler where Falcon is absent. - Event ID 4657 (registry value modified, requires SACL on the Run key) on
HKCU\Software\Microsoft\Windows\CurrentVersion\Runfor newly added values containing a long Base64 blob. - Windows Defender ASR audit events 1121 (Block) / 1122 (Audit) for the "Block executable files from running unless they meet a prevalence, age, or trusted list criterion" rule (GUID
01443614-cd74-433a-b99e-2ecdc07bfc25) — see §12/§13. - DNS server / resolver query logs (on-prem DNS, Umbrella, Cloudflare Gateway, or Defender for DNS) for high query-volume or long-label subdomains resolving to
pipicka[.]xyzor an unclassified parent domain — works even without endpoint telemetry and is often the fastest way to catch the DNS-tunnel channel at the network edge. - Sysmon Event ID 1 (Process Create) as a fallback where Falcon is not deployed, matching the same filenames and command-line patterns as Q1/Q2/Q4/Q10.
- Sysmon Event ID 3 (Network Connection) as a fallback for Q7/Q8's remote-IP matching.
The Local\NVIDIAContainerMonitor_SingleInstance mutex is not observable via Windows Security auditing, default Sysmon configuration, or Falcon telemetry — none of these log named-object (mutex/event/semaphore) creation by default. Confirming it requires a custom ETW consumer (Threat-Intelligence provider, Microsoft-Windows-Kernel-Object) or live triage with Sysinternals Handle/Process Explorer. Treat it as a manual-triage artifact, not a scalable hunt signal — see §15.
CrowdStrike LogScale CQL Hunt Queries
Looks for: Any process file-named nvidia-sysruntime.exe executing on an endpoint. FP: none expected — this is not a real NVIDIA Container Toolkit binary name; treat any hit as high priority.
// HUNT: Unsigned process masquerading as NVIDIA Container Runtime Monitor (nvidia-sysruntime.exe) // MITRE: T1036.005, T1204.002 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 / SyntheticProcessRollup2 process visibility // FALSE POSITIVES: none expected -- "nvidia-sysruntime.exe" is not a real NVIDIA Container Toolkit binary name; treat any hit as high priority // LOOKBACK: 7d (set window with the Falcon time picker; no in-query time filter) #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^nvidia-sysruntime\.exe$/i | table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, SHA256HashData, AuthenticodeHashData, ParentBaseFileName]) | sort(@timestamp, order=desc)
Looks for: Process command lines carrying --org/--key/--group/--server, a long Base64 blob after -b, or a ZM_-prefixed variable. FP: internal CLI tooling that happens to use --org/--key/--group/--server flags or a ZM_-prefixed variable.
// HUNT: LabubaRAT runtime configuration via command-line flags or ZM_ environment variables // MITRE: T1059.001, T1059.003, T1027 | CONF: high FP: medium COST: low // REQUIRES: ProcessRollup2 CommandLine visibility // FALSE POSITIVES: internal CLI tooling that happens to use --org/--key/--group/--server flags or a ZM_-prefixed variable // TUNING: exclude known-good internal utilities by SHA256HashData or ImageFileName path before promoting to a Custom IOA #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | CommandLine=/(--org\s|--key\s|--group\s|--server\s|-b\s+[A-Za-z0-9+\/=]{20,}|ZM_key|ZM_group|ZM_org)/i | table([@timestamp, aid, ComputerName, UserName, ImageFileName, FileName, CommandLine, ParentBaseFileName, SHA256HashData]) | sort(@timestamp, order=desc)
Looks for: A Run-key value combining a long Base64 blob with the LabubaRAT masquerade name. FP: none expected — legitimate autostart entries rarely combine a long Base64 blob with an NVIDIA-themed name.
// HUNT: HKCU Run-key persistence referencing the LabubaRAT masquerade name or its Base64 autostart flag // MITRE: T1547.001 | CONF: high FP: low COST: low // REQUIRES: RegGenericValueUpdate / AsepValueUpdate registry telemetry // FALSE POSITIVES: none expected -- legitimate autostart entries rarely combine a long Base64 blob with an NVIDIA-themed name #event_simpleName=/RegGenericValueUpdate|AsepValueUpdate/ | RegObjectName=/\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/i | RegStringValue=/(nvidia-sysruntime|-b\s+[A-Za-z0-9+\/=]{20,}|NVIDIAContainer)/i | table([@timestamp, aid, ComputerName, UserName, RegObjectName, RegValueName, RegStringValue]) | sort(@timestamp, order=desc)
Looks for: A process file-named BuildCoordinator.exe — the renamed Microsoft Build Engine used to proxy-execute a follow-on build project. FP: internal CI/CD pipelines that intentionally rename msbuild.exe for packaging — rare outside developer/build hosts.
// HUNT: Microsoft Build Engine renamed to BuildCoordinator.exe (trusted-utility proxy execution / LOLBIN rename) // MITRE: T1127.001, T1036.003 | CONF: high FP: medium COST: low // REQUIRES: ProcessRollup2 with SHA256HashData // FALSE POSITIVES: internal CI/CD pipelines that intentionally rename msbuild.exe for packaging -- rare outside developer/build hosts // TUNING: exclude known CI/CD build-agent hosts by ComputerName/host-group and your internal MSBuild SHA256HashData values #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^BuildCoordinator\.exe$/i | table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, SHA256HashData, ParentBaseFileName]) | sort(@timestamp, order=desc)
Looks for: Elevated query volume or long (45+ character) subdomain labels toward the confirmed C2 domain or an unclassified parent domain. FP: CDN/SaaS/telemetry services that legitimately use long encoded subdomains (Akamai, Azure Front Door, some EDR/MDM heartbeat domains) — baseline your environment's DNS-heavy domains first.
// HUNT: DNS tunneling volume toward the LabubaRAT C2 (pipicka[.]xyz) and long-label DNS queries // MITRE: T1071.004, T1572, T1041 | CONF: medium FP: medium COST: medium // REQUIRES: DnsRequest telemetry // FALSE POSITIVES: CDN/SaaS/telemetry services that legitimately use long encoded subdomains (Akamai, Azure Front Door, some EDR/MDM heartbeat domains) -- baseline your environment's DNS-heavy domains first // TUNING: exclude known-benign long-subdomain SaaS/CDN parent domains with an explicit !in(...) allowlist stage before alerting // LOOKBACK: 24h (DNS tunneling volume is best viewed in a short window) #event_simpleName=DnsRequest | length(DomainName, as=DomLen) | DomainName=/pipicka\.xyz$/i or DomLen > 45 | groupBy([aid, ComputerName, DomainName], function=count(as=QueryCount), limit=1000) | sort(QueryCount, order=desc) | table([aid, ComputerName, DomainName, QueryCount])
Looks for: msedgewebview2.exe spawned by nvidia-sysruntime.exe or BuildCoordinator.exe instead of a browser. FP: none expected once scoped to these two parent names — broaden cautiously if hunting WebView2 abuse generically (many legitimate apps embed it).
// HUNT: Microsoft Edge WebView2 runtime spawned by the LabubaRAT process tree // MITRE: T1071.001, T1036.005 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 parent/child telemetry // FALSE POSITIVES: none expected once scoped to these two parent names -- broaden cautiously if hunting WebView2 abuse generically (many legitimate apps embed it) #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^msedgewebview2\.exe$/i | ParentBaseFileName=/^(nvidia-sysruntime|BuildCoordinator)\.exe$/i | table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName, ParentProcessId_decimal]) | sort(@timestamp, order=desc)
Looks for: Any connection or DNS resolution touching the three confirmed host IPs or pipicka[.]xyz. FP: none expected — these are campaign-specific C2 indicators.
// HUNT: Outbound connections to confirmed LabubaRAT / LabubaPanel C2 infrastructure // MITRE: T1071.001, T1071.004, T1041 | CONF: high FP: low COST: low // REQUIRES: NetworkConnectIP4 + DnsRequest telemetry // FALSE POSITIVES: none expected -- these are campaign-specific C2 indicators #event_simpleName=/NetworkConnectIP4|DnsRequest/ | RemoteAddressIP4=/^(191\.44\.109\.130|87\.120\.108\.18|168\.222\.254\.204)$/ or DomainName=/pipicka\.xyz$/i | table([@timestamp, aid, ComputerName, UserName, ContextBaseFileName, RemoteAddressIP4, RemotePort, DomainName]) | sort(@timestamp, order=desc)
Looks for: A process already named by Q1/Q4 connecting to more than 10 distinct remote IPs — consistent with LabubaRAT's SOCKS5 relay capability. FP: browsers, update agents, and legitimate VPN/proxy clients also fan out to many distinct remote IPs — this hunt is only meaningful scoped to a process already flagged by Q1/Q4.
// HUNT: High fan-out outbound connections from a flagged LabubaRAT process (SOCKS5 proxy / traffic-relay behavior) // MITRE: T1090, T1572 | CONF: medium FP: medium-high COST: medium // REQUIRES: NetworkConnectIP4 telemetry // FALSE POSITIVES: browsers, update agents, and legitimate VPN/proxy clients also fan out to many distinct remote IPs -- this hunt is only meaningful scoped to a process already flagged by Q1/Q4 // TUNING: keep the ContextBaseFileName scope limited to nvidia-sysruntime.exe / BuildCoordinator.exe rather than running this environment-wide; raise the DistinctRemoteIPs threshold if your build/CI hosts legitimately fan out #event_simpleName=NetworkConnectIP4 | ContextBaseFileName=/^(nvidia-sysruntime|BuildCoordinator)\.exe$/i | groupBy([aid, ComputerName, ContextBaseFileName], function=[count(as=ConnCount), count(RemoteAddressIP4, distinct=true, as=DistinctRemoteIPs)], limit=1000) | DistinctRemoteIPs > 10 | sort(DistinctRemoteIPs, order=desc) | table([aid, ComputerName, ContextBaseFileName, ConnCount, DistinctRemoteIPs])
Looks for: File access to nvctr_sys.db or its -wal/-shm companions. FP: none expected — "nvctr_sys.db" is not a legitimate NVIDIA artifact.
// HUNT: Access or creation of the LabubaRAT local state database (nvctr_sys.db) // MITRE: T1560, T1082 | CONF: medium FP: low COST: low // REQUIRES: FileOpenInfo file-access telemetry -- field availability on this event is not exhaustively documented in the reference; ⚠ validate TargetFileName/ContextBaseFileName in your tenant // FALSE POSITIVES: none expected -- "nvctr_sys.db" is not a legitimate NVIDIA artifact #event_simpleName=FileOpenInfo | TargetFileName=/nvctr_sys\.db(-wal|-shm)?$/i | table([@timestamp, aid, ComputerName, UserName, TargetFileName, ContextBaseFileName]) | sort(@timestamp, order=desc)
Looks for: wscript.exe/cscript.exe invoked against a wupd_-prefixed temporary .js file. FP: none expected — the wupd_ filename prefix combined with //NoLogo //E:JScript is specific to this implant's task handler.
// HUNT: LabubaRAT JavaScript task execution via Windows Script Host (wupd_ prefixed temp script) // MITRE: T1059.007, T1027 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 CommandLine visibility // FALSE POSITIVES: none expected -- the wupd_ filename prefix combined with //NoLogo //E:JScript is specific to this implant's task handler #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(wscript|cscript)\.exe$/i | CommandLine=/wupd_[A-Za-z0-9]+\.js/i | table([@timestamp, aid, ComputerName, UserName, CommandLine, ParentBaseFileName, ParentProcessId_decimal]) | sort(@timestamp, order=desc)
CrowdStrike Custom IOA Recommendations
Six queries are deterministic enough (specific filename, hash, or campaign-confirmed C2 value) to promote directly to Custom IOA rules. The remaining four (Q2, Q5, Q6, Q8) ship as hunt/investigate-only pending tenant-specific tuning — see §8 TUNING notes.
| IOA Name | Pattern | Exclusions | Deployment Path |
|---|---|---|---|
| Custom-IOA: NVIDIA-Masquerade-Exec (Q1) | Process FileName exact-match nvidia-sysruntime.exe | None known | Falcon Console → Endpoint Security → Custom IOA rule groups → new File Creation/Process rule scoped to Windows, action Detect (promote to Prevent only after a validated 7-day monitoring period) |
| Custom-IOA: LabubaRAT-RunKey-Persistence (Q3) | RegObjectName under ...CurrentVersion\Run AND RegStringValue matches Base64/masquerade pattern | None known | Falcon Console → Custom IOA → Registry rule, action Detect |
| Custom-IOA: Renamed-MSBuild-BuildCoordinator (Q4) | Process FileName exact-match BuildCoordinator.exe | Tag and exclude confirmed CI/CD build-agent host group by ComputerName/host group | Falcon Console → Custom IOA → Process rule, action Detect; consider Prevent only on non-developer host groups |
| Custom-IOA: LabubaRAT-C2-Network (Q7) | RemoteAddressIP4 in the three confirmed hosts, or DomainName matches pipicka.xyz | None known | Falcon Console → Custom IOC (not IOA) → IP/Domain indicators → import §10 CSV, action Detect; also add as a Custom IOA network rule for defense-in-depth |
| Custom-IOA: LabubaRAT-LocalStateDB (Q9) | TargetFileName matches nvctr_sys.db(-wal|-shm)? | None known | Falcon Console → Custom IOA → File rule, action Detect |
| Custom-IOA: LabubaRAT-WSH-JSTask (Q10) | Process FileName wscript.exe/cscript.exe AND CommandLine matches wupd_*.js | None known | Falcon Console → Custom IOA → Process rule, action Detect |
Promote Q2 (CLI/ZM_ config), Q6 (WebView2 lineage), and Q8 (proxy fan-out) to Custom IOA only after a monitoring period confirms the TUNING exclusions hold in your environment. Q5 (DNS tunneling) is best left as a scheduled hunt search or routed to your DNS-security product's own tunneling detector rather than a Falcon Custom IOA, since its FP profile depends heavily on your SaaS footprint.
Machine-Readable IOC Appendix
All rows below are single-sourced to Blackpoint APG (see §2). Action is capped at detect/hunt — nothing ships as prevent from a single source, consistent with §4.
type,value,action,severity,expiration,description,tags sha256,b7443b0ab48d2f5786d1b6f3a580f02621e9ae5a3877ee3a44e01df13d984328,detect,critical,2027-03-23,LabubaRAT entry point nvidia-sysruntime.exe. Single-sourced to Blackpoint APG.,campaign:LabubaRAT md5,d8bf355a198fb5db3ea65cfdfcdfbd19,detect,critical,2027-03-23,LabubaRAT entry point nvidia-sysruntime.exe MD5. Single-sourced.,campaign:LabubaRAT sha256,3d2b22b6bc51e0918263f4420e6bdf7d982d961b54176c470cac11841d1c9b33,detect,high,2027-03-23,Renamed MSBuild BuildCoordinator.exe LOLBIN loader. Single-sourced.,campaign:LabubaRAT domain,pipicka.xyz,detect,critical,2027-03-23,LabubaRAT / LabubaPanel C2 domain. Single-sourced.,campaign:LabubaRAT ipv4,191.44.109.130,detect,high,2027-03-23,LabubaPanel C2 host infrastructure. Single-sourced.,campaign:LabubaRAT ipv4,87.120.108.18,detect,high,2027-03-23,LabubaPanel C2 host infrastructure. Single-sourced.,campaign:LabubaRAT ipv4,168.222.254.204,detect,high,2027-03-23,LabubaPanel C2 host infrastructure. Single-sourced.,campaign:LabubaRAT filename,nvidia-sysruntime.exe,hunt,high,2026-12-23,LabubaRAT masquerading entry-point filename.,campaign:LabubaRAT filename,BuildCoordinator.exe,hunt,medium,2026-12-23,Renamed msbuild.exe used as a LOLBIN loader.,campaign:LabubaRAT filename,nvctr_sys.db,hunt,high,2026-12-23,LabubaRAT local SQLite state database.,campaign:LabubaRAT
# LabubaRAT behavioral signatures -- hunt patterns, not import-ready indicators Unsigned 64-bit PE claiming NVIDIA Corporation / NVIDIA Container Runtime Monitor / NVIDIA Container Toolkit version metadata, running from a non-NVIDIA install path. Process command line or environment containing --org / --key / --group / --server or a ZM_ prefixed variable. Process command line containing a long Base64 blob following a -b flag (LabubaRAT's packed autostart argument). msedgewebview2.exe spawned by a non-browser, non-Microsoft-signed parent process. High-volume DNS queries with long (40+ character) subdomain labels toward a single low-reputation parent domain. wscript.exe/cscript.exe invoked against a temp script file with a wupd_ prefix.
LabubaRAT (nvidia-sysruntime.exe implant) -- Rust-based RAT, likely MaaS, tracked by Blackpoint Cyber APG. First observed 2026-07-02. LabubaPanel -- C2 panel/backend infrastructure; page title "LabubaPanel" with a Labubu-themed favicon. BuildCoordinator.exe -- renamed Microsoft Build Engine (MSBuild) used as a trusted-utility proxy loader (T1127.001). DotNetZip.dll -- follow-on payload loaded via the renamed-MSBuild project build; sample unrecovered at publication.
# Flags HKCU Run-key entries matching LabubaRAT's Base64-packed autostart pattern.
# Run per-endpoint or wrap for RMM fleet deployment.
$runKey = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run'
if (Test-Path $runKey) {
(Get-Item $runKey).Property | ForEach-Object {
$val = (Get-ItemProperty $runKey -Name $_).$_
if ($val -match '-b\s+[A-Za-z0-9+/=]{20,}' -or $val -match 'nvidia-sysruntime') {
Write-Output "FLAG: $_ = $val"
}
}
}
# Pair with ASR rule 01443614-cd74-433a-b99e-2ecdc07bfc25
# (Block executable files unless prevalence/age/trusted-list criteria are met) -- see Sec13.
Detection Validation Gates
| Gate | Check | Status Before Promotion |
|---|---|---|
| 1. Telemetry ready | Confirm ProcessRollup2, RegGenericValueUpdate/AsepValueUpdate, NetworkConnectIP4, DnsRequest, and FileOpenInfo are flowing for the target host group (* | groupBy(#event_simpleName) over a sample host) | Required before any Q1-Q10 query is trusted |
| 2. Benign baseline | Run each query over a 7-30 day historical window in a representative host group with zero known LabubaRAT activity; confirm Q1/Q3/Q4/Q6/Q7/Q9/Q10 return zero hits and Q2/Q5/Q8 return only expected internal-tooling noise | Required before Custom IOA promotion |
| 3. Positive test | Where safe, validate detection logic against a controlled atomic test (e.g. rename a benign signed binary to nvidia-sysruntime.exe and launch it in a lab VM; drop a zero-byte nvctr_sys.db) rather than executing the live sample | Recommended before Prevent-mode promotion |
| 4. Promotion criteria | A query graduates from hunt-only to Custom IOA (Detect) after gates 1-2 pass with zero unexplained FPs across a 7-day window; graduates to Prevent only after a further 7-day Detect-mode monitoring period with zero FPs (§9) | Q1, Q3, Q4, Q7, Q9, Q10 eligible now for Detect; Prevent requires the full window |
Hardening — Tiered
LabubaRAT is entirely a Windows-endpoint threat in current reporting (no AD, cloud, or non-Windows surface observed). Controls below are cited to MITRE ATT&CK Mitigations (the why) plus CIS Microsoft Windows Benchmark / Microsoft Security Baselines and Microsoft's own ASR/WDAC documentation (the what/where), per platform_hardening_routing.md.
- Block the confirmed C2 (§10 CSV:
pipicka.xyz+ 3 host IPs) at the firewall/proxy/DNS-security layer and as a Falcon Custom IOC. MITRE M1037 (Filter Network Traffic). CIS Microsoft Windows Benchmark does not cover network egress directly; authority here is your firewall/DNS-security vendor's block-list mechanism. - Enable ASR rule "Block executable files from running unless they meet a prevalence, age, or trusted list criterion" (GUID
01443614-cd74-433a-b99e-2ecdc07bfc25) in Block mode. MITRE M1038 (Execution Prevention). Microsoft Defender ASR reference; also aligns with CIS Microsoft Windows 11 Benchmark 18.9.x (Defender Exploit Guard / ASR section). - Confirm Falcon prevention policy is set to block unsigned/unknown-reputation execution, suspicious-process blocking, and tamper protection are all ON. MITRE M1040 (Behavior Prevention on Endpoint). CrowdStrike Falcon prevention-policy admin guide.
- Restrict MSBuild execution to designated build/CI hosts via an AppLocker or WDAC publisher+path rule blocking
msbuild.exe(by any filename) on non-developer endpoints. MITRE M1038, M1045 (Execution Prevention, Code Signing). CIS Microsoft Windows Benchmark 9.x (AppLocker) / Microsoft WDAC design guide.
- WDAC or AppLocker policy requiring code-signing for new executables launched from user-writable paths (
%TEMP%,%APPDATA%, Downloads) — would have blocked the unsignednvidia-sysruntime.exeoutright. MITRE M1038, M1045. Microsoft WDAC / CIS Microsoft Windows Benchmark 9.x. Pilot on a ring before fleet-wide enforcement mode. - Tune DNS-security tunneling detection (Cisco Umbrella, Cloudflare Gateway, Defender for DNS, or resolver logs) for long-label/high-volume query patterns per Q5. MITRE M1021 (Restrict Web-Based Content). Vendor DNS-security config guide; CISA/NSA guidance on protective DNS is the cross-platform fallback authority.
- Restrict or monitor Windows Script Host (
wscript.exe/cscript.exe): require signed scripts or disable WSH via GPO on endpoints where it is not a business requirement. MITRE M1042 (Disable or Remove Feature or Program). CIS Microsoft Windows Benchmark 18.x (Windows Script Host section). - Enable PowerShell Script Block Logging (4104) and process-creation command-line auditing (4688) fleet-wide as compensating telemetry, especially on hosts outside Falcon coverage. MITRE M1047 (Audit). Microsoft Security Baseline (Audit Policy) / CIS Microsoft Windows Benchmark 17.x.
- Move from WDAC audit to full enforcement across the endpoint fleet with a managed allowlist that explicitly covers approved NVIDIA driver/toolkit packages, so a masquerading binary with the same name cannot ride along. MITRE M1045, M1033 (Code Signing, Limit Software Installation). Microsoft WDAC deployment guide.
- Default-deny egress / allowlisted outbound for workstation network segments, removing the fan-out surface LabubaRAT's SOCKS5 proxy relies on. MITRE M1030, M1037 (Network Segmentation, Filter Network Traffic). CIS Controls v8 (Network Infrastructure Management); no single CIS Windows Benchmark line covers this — flagged ⚠ best-practice, no single formal benchmark line, follow CIS Controls v8 Control 12/13.
- Formal LOLBIN/dev-utility governance: inventory every host with MSBuild or other build tooling installed, remove it from non-developer endpoints, and restrict remaining installs to an AppLocker publisher rule scoped to an authorized build-host group. MITRE M1033, M1038. CIS Microsoft Windows Benchmark 9.x.
Deployable Playbooks
Playbook: LabubaRAT Masquerade & LOLBIN-Rename Prevention (T1036.005, T1127.001, T1547.001)
MITRE: T1036.005, T1127.001, T1547.001 → M1037, M1038, M1040, M1042, M1045, M1047
Estimated deploy time: 1-2 hours (Immediate-tier steps); 1 day per pilot ring (WDAC enforcement)
Prerequisites: Windows 10 1809+/Server 2019+ with Defender enabled, local admin on target endpoints, Falcon sensor installed for steps 3 and 5
Reboot required: No for steps 1, 3, 4, 5; No for step 2 (AppLocker policy refresh via gpupdate; a reboot is not required but is recommended for full session cleanup)
Step 1 — Block confirmed LabubaRAT C2 via Windows Firewall (host-level compensating control)
What it does: Blocks outbound connections to the three confirmed C2 IPs at the host firewall as an immediate compensating control ahead of a perimeter/DNS-security change.
Why it works: Even if the implant executes, it cannot reach its enrollment server over these addresses.
$badIPs = @('191.44.109.130','87.120.108.18','168.222.254.204')
New-NetFirewallRule -DisplayName 'Block-LabubaRAT-C2' -Direction Outbound `
-RemoteAddress $badIPs -Action Block -Profile Any -Enabled True
Write-Output "Firewall rule Block-LabubaRAT-C2 created for $($badIPs.Count) address(es)."
Verify:
Get-NetFirewallRule -DisplayName 'Block-LabubaRAT-C2' | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
Rollback:
Remove-NetFirewallRule -DisplayName 'Block-LabubaRAT-C2'
Step 2 — Enable ASR rule: block untrusted/unsigned executables
What it does: Blocks execution of new, low-prevalence, unsigned executables such as a freshly dropped nvidia-sysruntime.exe.
Why it works: LabubaRAT's entry point is unsigned and has no install-base prevalence, so it fails this rule's trust criteria outright.
$asrRule = '01443614-cd74-433a-b99e-2ecdc07bfc25'
Set-MpPreference -AttackSurfaceReductionRules_Ids $asrRule `
-AttackSurfaceReductionRules_Actions Enabled
Write-Output "ASR rule $asrRule set to Enabled (Block)."
GPO path: Computer Configuration > Administrative Templates > Windows Components > Microsoft Defender Antivirus > Microsoft Defender Exploit Guard > Attack Surface Reduction > Configure Attack Surface Reduction rules — add value name 01443614-cd74-433a-b99e-2ecdc07bfc25, value data 1 (Block), or 2 (Audit) during pilot.
Verify:
$ids = (Get-MpPreference).AttackSurfaceReductionRules_Ids
$actions = (Get-MpPreference).AttackSurfaceReductionRules_Actions
for ($i = 0; $i -lt $ids.Count; $i++) {
if ($ids[$i] -eq '01443614-cd74-433a-b99e-2ecdc07bfc25') {
"ASR rule action: $($actions[$i]) (1=Block, 2=Audit, 6=WarnUser)"
}
}
Monitor for false positives: Event ID 1121 (Block) / 1122 (Audit) in Microsoft-Windows-Windows Defender/Operational.
Rollback:
Set-MpPreference -AttackSurfaceReductionRules_Ids '01443614-cd74-433a-b99e-2ecdc07bfc25' `
-AttackSurfaceReductionRules_Actions Disabled
Step 3 — Restrict MSBuild execution to a designated build-host group (AppLocker publisher rule)
What it does: Prevents MSBuild (original or renamed to any filename, such as BuildCoordinator.exe) from executing outside an approved build/CI host group.
Why it works: AppLocker publisher rules match the Authenticode publisher, not the filename, so a rename does not evade the rule.
Prerequisites: Application Identity service running, AppLocker policy applied via GPO to a security group covering non-developer endpoints.
Start-Service -Name AppIDSvc -ErrorAction SilentlyContinue $rule = New-AppLockerPolicy -RuleType Publisher -User Everyone -Optimize ` -ExecutablesFilePath 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe' ` -Xml Write-Output "Generated AppLocker publisher rule for MSBuild.exe -- import into the non-developer GPO and set to Deny."
GPO path: Computer Configuration > Windows Settings > Security Settings > Application Control Policies > AppLocker > Executable Rules — import the generated publisher rule scoped to the non-developer OU/security group, action Deny.
Verify:
Get-AppLockerPolicy -Effective -Xml | Select-String 'MSBuild' # Confirm the deny rule is present and applied to the target OU/group
Rollback: Remove the imported publisher rule from the AppLocker GPO and run gpupdate /force on affected endpoints.
Step 4 — Confirm Falcon prevention policy posture
What it does: Ensures Falcon's ML/behavioral prevention and tamper protection are active for unsigned/unknown-reputation execution — a layer independent of the static controls above.
Not a script — Falcon Console UI: Endpoint security > Prevention policies > for policies applied to workstations/servers: Sensor visibility all ON; Cloud machine learning Detection Aggressive / Prevention Moderate-or-Aggressive; Suspicious Processes ON (Block); Tampering Protection ON.
Verify (from a target endpoint):
Get-Service CSFalconService | Select-Object Name, Status # Status: Running
Rollback: Revert the prevention-policy toggles in Falcon Console to their prior saved values (export policy JSON before changing, for a clean revert).
Step 5 — Import LabubaRAT Custom IOCs
What it does: Loads the §10 CSV into Falcon's IOC Management so the confirmed hashes/domain/IPs generate Detect-severity alerts fleet-wide.
Not a script — Falcon Console UI: Endpoint security > IOC Management > Upload CSV > select the §10 grab-csv export > confirm action=detect for every row (do not change to Prevent given the single-source caveat in §2/§4).
Verify: Endpoint security > IOC Management > filter by tag campaign:LabubaRAT — confirm 10 indicators present, all action=Detect.
Rollback: Delete the imported indicators by tag campaign:LabubaRAT from IOC Management.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| 1. Identify / Triage | Confirm hits from Q1/Q3/Q4/Q7/Q9/Q10. Pull SHA256/MD5 of the flagged nvidia-sysruntime.exe/BuildCoordinator.exe and compare against §4/§10. Capture full process tree, parent chain, command line, and loaded modules. | SOC / Threat Hunter | Falcon process timeline export, hash values, command-line capture |
| 2. Isolate | Network-contain the host via Falcon RTR "Network Contain" immediately — do not wait for full triage. Block C2 IP/domain fleet-wide (§13 Step 1) if not already deployed. Avoid killing the process before memory/artifact collection if deeper forensics are planned. | SOC / IR Lead | Containment action log, timestamp of isolation |
| 3. Eradicate | Terminate nvidia-sysruntime.exe / BuildCoordinator.exe processes. Remove the HKCU Run-key persistence entry (§4/§7). Delete nvctr_sys.db (+ -wal/-shm) and dropped binaries after evidence collection. Remove any wupd_-prefixed temp scripts. Rotate credentials/API keys/browser session tokens resident on the host — the implant enumerates Chrome/Firefox/Edge/Brave profiles, so treat stored sessions as exposed. | IR / Endpoint Admin | Removal log, before/after registry and filesystem snapshot, credential-rotation ticket |
| 4. Recover | Reimage or restore from known-good backup rather than clean-in-place if the MSBuild/DotNetZip follow-on stage executed — assume deeper compromise given the SOCKS5 proxy and file-transfer capability. Re-validate with a negative-hit re-scan against Q1/Q3/Q4/Q7/Q9/Q10 before returning the host to production. Force credential rotation for any accounts active on the host during the dwell window. | Endpoint Admin / IAM | Reimage record, clean re-scan results, credential-rotation confirmation |
| 5. Lessons Learned / Hardening Follow-Up | Confirm §12 Immediate-tier controls are deployed fleet-wide, not just on the affected host. Feed IOCs/TTPs into the threat-intel platform. Update §15 Coverage Map with any new findings from this incident (e.g. a newly observed C2 node). | Threat Intel / Detection Engineering | Post-incident review, updated Coverage Map, hardening deployment confirmation |
Detection Coverage Map
| Technique / Behavior | CQL | Custom IOA | Coverage |
|---|---|---|---|
| T1036.005 — nvidia-sysruntime.exe masquerade execution | Q1 | Yes | Good |
| T1059.001/.003/.007 — operator command/script execution | Q2, Q10 | Q10 only | Partial |
| T1547.001 — HKCU Run-key persistence | Q3 | Yes | Good |
| T1127.001/T1036.003 — renamed MSBuild LOLBIN | Q4 | Yes | Good |
| T1071.004/T1572 — DNS tunneling channel | Q5 | Hunt-only | Partial — query metadata only, tunnel payload content not visible to Falcon |
| T1071.001 — WebView2 C2 channel | Q6 | Investigate-only | Partial |
| T1071.001/T1071.004/T1041 — confirmed C2 IP/domain | Q7 | Yes | Good |
| T1090/T1572 — SOCKS5 proxy pivot | Q8 | Investigate-only | Partial |
| T1560 — local state DB / staging | Q9 | Yes | Good |
| T1082/T1016/T1518.001 — host, network, and security-tool discovery | None | No | GAP — in-process registry reads and API calls, not surfaced by Falcon or Windows auditing by default |
| T1113 — screenshot capture (GDI API sequence) | None | No | GAP — in-memory API usage leaves no file/network artifact |
| Local\NVIDIAContainerMonitor_SingleInstance mutex | None | No | GAP — no OS-level mutex-creation telemetry in Falcon, default Sysmon, or Windows Security auditing; requires custom ETW consumer or live triage (§7) |
| In-memory JavaScript execution engine (RAT-internal, not WSH) | None | No | GAP — internal interpreter content is not observable; only the WSH-delegated wupd_ task (Q10) is visible |
Every gate in §11 (Telemetry ready / Benign baseline / Positive test / Promotion criteria) must pass before a query listed as "Yes" above is promoted beyond Detect-mode Custom IOA.
Hunt Summary Ticket
TITLE: LabubaRAT -- NVIDIA-Masquerading Rust RAT (MaaS-Suspected) Hunt
SEVERITY: High
SCOPE: All Windows endpoints and DNS-egress-capable network segments
HYPOTHESIS: LabubaRAT (nvidia-sysruntime.exe) has been deployed to establish a
hands-on-keyboard foothold with multi-channel C2 (HTTPS/WebView2/DNS tunnel)
and SOCKS5 proxy pivot capability, persisting via an encoded HKCU Run key and
optionally escalating through a renamed MSBuild (BuildCoordinator.exe) stage.
QUERIES: Q1-Q10 (Sec8); IOA candidates Q1, Q3, Q4, Q7, Q9, Q10 (Sec9)
DO FIRST:
1. Run Q1 (masquerade exec) and Q7 (confirmed C2) across the full fleet --
highest confidence, near-zero FP.
2. Run Q3 (Run-key persistence) and Q9 (local state DB) to confirm survival
mechanism on any host flagged by Q1.
3. Block the three C2 IPs and pipicka.xyz per Sec13 Step 1 regardless of
hunt results -- this is a zero-cost compensating control.
FINDINGS: [populate post-hunt]
GAPS: Mutex creation, in-process host/security-tool discovery, screenshot
capture, and in-memory JS execution content are not observable via Falcon
or default Windows auditing (Sec15). DNS-tunnel payload content requires a
DNS-security product, not endpoint telemetry.
ACTIONS: Sec12 Immediate tier (C2 block, ASR rule, Falcon prevention posture,
MSBuild AppLocker restriction) this week; Sec14 containment runbook on any
confirmed hit.
OWNER: HuntPack / assign to on-call threat hunter
VERSION: v0.1 -- 2026-09-23
Changelog
References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 · Primary | Blackpoint Cyber — Threat Snapshot: LabubaRAT (published 2026-09-17) | Condensed IOC table, MITRE TTP table, recommendations | 2026-09-23 |
| 1 · Primary | Blackpoint Cyber — LabubaRAT: A Rust Based Remote Access Tool Masquerading as NVIDIA Software (Decker & Beal, published 2026-07-14) | Full technical analysis: Rust artifacts, config model, transport internals, tasking model, IOCs | 2026-09-23 |
| 2 · Secondary | Help Net Security — LabubaRAT malware infiltrates Windows systems while posing as NVIDIA software (Markovic, published 2026-07-15) | Corroboration; MaaS-attribution hedge language | 2026-09-23 |
| 2 · Secondary | The Hacker News — LabubaRAT Masquerades as NVIDIA Software to Control Windows Hosts (Lakshmanan, published 2026-07-14) | Corroboration; MaaS-attribution hedge language | 2026-09-23 |
Full verbatim text of all four sources is saved in LabubaRAT-Hunt-sources/ alongside this file for provenance re-verification.