Anatomy of a Targeted Spear-Phishing Campaign: Abusing RMM Infrastructure Hero Image

Anatomy of a Targeted Spear-Phishing Campaign: Abusing RMM Infrastructure

A deep-dive forensic analysis of a highly targeted attack leveraging VBS loaders and legitimate Syncro RMM binaries for persistence.

By Mike Sasso

Published on March 23, 2026

Malware AnalysisThreat Hunting

Unmasking Targeted RMM Abuse: From VBS Loaders to Global Telemetry

A Targeted Lure

The investigation kicked off as most incidents do, as an alert tied to an email. The email was spoofing a known business associate referencing a personal connection to the recipient.

The hook was a digital invitation via Paperless Post for a “Wine & Dine” event. A well-crafted lure — it exploits trust, curiosity, and familiarity with event invitations. A classic social engineering tactic designed to lower the recipient’s guard through context that feels both personal and legitimate.

Phase I: The Scripted Entry (T1204.002)

The lure directed the victim to download a ZIP archive (to hide the payload from scanners) containing a single 1KB file: einvitation.vbs. Upon manual deconstruction in a safe environment, I identified this as a classic PowerShell Downloader. These are not the vbs files you are looking for.

The VBScript was minimalist, designed purely to bypass execution policies by invoking WScript.Shell. It executed a hidden PowerShell command to retrieve the second-stage payload from a Cloudflare R2 bucket. Deconstructing the loader with batcat confirms the four-stage execution chain:

VBS loader code showing PowerShell downloader logic and UAC bypass via runas verb.

FORENSICS INSIGHT:

  1. Privilege Escalation (UAC Bypass Attempt) - The script checks if it is currently running with administrative rights. If it isn’t, it utilizes the Shell.Application object to relaunch itself using the /elevate flag and the runas verb.

  2. Environment Masquerading - The attacker resolves the %TEMP% directory and assigns a generic name (installer045.msi) to the payload.

  3. The “LotL” Execution - This is the core infection vector. Using WScript.Shell, the script spawns a hidden PowerShell process. By passing -ExecutionPolicy Bypass, the attacker bypasses local security restrictions to download the second-stage RMM agent directly from a high-reputation Cloudflare R2 bucket.

  4. Forensic Cleanup - To minimize the “Time on Target” footprint, the script includes a WScript.Sleep 6000 command. This 6-second delay allows the installer to initialize before the script immediately deletes the .msi file from the disk, ensuring that the primary evidence is wiped.

Manually navigating to the Cloudflare R2 URL referenced in the dropper pulls down a SyncroInstaller.msi — the stage 2 payload:

Downloaded SyncroInstaller.msi stage 2 payload captured from the Cloudflare R2 bucket.

Phase II: Payload Analysis & Database Forensics (T1218.007)

The payload was a 5.6MB Windows Installer (.msi). Initial inspection confirmed it was a legitimate, signed Syncro RMM agent. This is a “Golden Ticket” for an attacker: it provides full remote terminal access, file transfer, and GUI control, all while appearing as a trusted administrative tool.

Before further analysis, the file is made immutable to prevent accidental execution:

Setting the MSI file immutable with chattr before static analysis.

The MSI Database Pivot

Using msidump, the internal database tables were extracted to inspect the installer’s configuration without executing it.

msitables.

Parsing the Property Table within the .idt files surfaced the critical identifiers:

INSIGHT:

The presence of hardcoded API keys within a signed binary is a double-edged sword. It allows the agent to check in automatically, but it also gives the defender everything needed to file a very detailed abuse report (which I absolutely did).

Phase III: Static Analysis & “Managed” Custom Actions

Digging deeper, I discovered the installer wasn’t just copying files—it was executing Managed (.NET) Custom Actions. These are essentially mini-programs hidden inside the MSI.

While binwalk identified a Microsoft Cabinet archive at offset 201216, my environment had a little stage fright with the extraction. I pivoted to a more manual approach: using the dd utility, I performed a forensic carve of the binary stream to isolate internal_logic.cab. After installing cabextract, I unpacked the archive to reveal the installer’s underlying .NET framework.

Extracted .NET DLL files from the MSI cabinet archive showing the installer's custom action framework.

Static analysis of the unpacked DLLs revealed the installation logic. Amidst the professional-grade libraries, I found the ultimate gem: repairtech_source.cs. This decompiled source code revealed exactly how the attacker was handling configuration and, more importantly, how they were tracking campaign deployment.

Phase IV: Infrastructure Mapping & Telemetry Exploitation

The decompiled source revealed that the attacker embedded a Rollbar token directly in the payload. Rollbar is a professional error-tracking and deployment telemetry service. By embedding this token, the attacker was passively monitoring their global campaign in real-time — receiving deployment confirmations, error events, and environmental telemetry for every successful installation.

This is a significant OPSEC failure. The token is hardcoded and extractable from the decompiled assembly, giving defenders a direct window into campaign scope. The Rollbar token was documented and reported as part of the IOC package for this investigation. Defenders who encounter similar payloads should treat any embedded telemetry or analytics tokens as first-class IOCs — they are direct evidence of attacker infrastructure and may reveal campaign breadth across unrelated victim environments.

Phase V: Attribution

While the external facade of the MSI was professional, the internal source code contained a massive OPSEC blunder. Decompressing the Binary stream and decompiling the assemblies led me to the Kabuto.Contracts namespace and a clear reference to the specialized weaponry of the One Piece universe.

Decompiled source code showing Kabuto.Contracts namespace and One Piece character name references used as configuration delimiters. Additional decompiled code showing One Piece character names including luffy, mugiwara, marshall, and garp used as custom parsing delimiters.

The attacker utilized character names like luffy, mugiwara, marshall, and garp as custom delimiters to scrape configuration data from the legitimate RMM binary. This naming convention is a unique digital fingerprint. By identifying this signature, we move from analyzing a generic tool to attributing the attack to a persistent, methodical threat actor — the same actor documented in the foundational credential harvester case.

Indicators of Compromise (IOCs)

Defensive Takeaways

This campaign illustrates the compounding risk of using legitimate tooling as an attack vector. Several detection opportunities exist at each stage: