QuimaRAT — Cross-Platform Java RAT (MaaS)
Executive Summary
QuimaRAT is a newly documented Java-based remote access trojan (LevelBlue SpiderLabs, surfaced in the current cycle and widely reported 2026-07-06) sold under a malware-as-a-service model. It is a modular Apache Maven project targeting Java SE 8, bundling JNA native libraries for Windows, Linux, and macOS so a single payload runs cross-platform. The operator suite ships a Builder, Loader, and Dropper that generate lures in many formats (JAR, EXE, APP, SH, BAT, VBS, plus LNK/VBS/JS/DOCM/XLSM/CHM variants).
Capabilities include remote command execution, plugin/payload delivery, credential theft, file transfer, clipboard manipulation, webcam surveillance, and fileless shellcode execution on Windows. It establishes a single-instance .lock file in the OS temp directory (Java FileLock), stores an XOR-encrypted config.dat, communicates over TCP / WebSocket / TLS / HTTPS with AES-256 encryption, and supports an optional Pastebin-hosted C2-rotation mechanism so operators can swap infrastructure without rebuilding the client.
Highest-value defensive angle: because QuimaRAT rides the Java runtime, the durable signal is the Java process itself behaving like malware — javaw.exe launched by an Office app or script host, a -jar executed from a user-writable/temp path, and per-OS autoruns (Run key / Scheduled Task / Startup folder on Windows; crontab and .desktop on Linux; a LaunchAgent plist on macOS) that point back at a Java payload.
Intel note: this is a behavioral hunt. The public reporting details TTPs and artifacts but does not publish a corroborated atomic IOC set (hashes/C2). The IOC appendix therefore ships behavioral signatures and placeholders — replace the hash/C2 placeholders with values from your own sandboxing or a vetted feed before enabling blocking.
Defender priority: Hunt javaw.exe/java.exe spawned by an Office or script-host parent, and any autorun (Run key / task / Startup / LaunchAgent / crontab) whose target is a Java runtime running a JAR from a temp path — these catch QuimaRAT regardless of the builder-chosen lure format.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 | LevelBlue (SpiderLabs) — QuimaRAT analysis | Java/JNA architecture, per-OS persistence, .lock + config.dat, AES-256 C2, Pastebin rotation, single-instance FileLock | Yes |
| 2 | The Hacker News — QuimaRAT MaaS report (2026-07-06) | MaaS pricing, Builder/Loader/Dropper suite, builder output formats, command counts | Yes |
| 2 | SC Media — QuimaRAT brief | Cross-platform targeting, MaaS distribution confirmation | Partial |
Web-hunter note: Two independent reports describe consistent TTPs; no vendor has yet published a vetted hash/C2 IOC list. Confidence in the behavior is high; atomic-indicator coverage is a known gap (see §15).
Hunt Brief & Attack Chain
Hunt hypotheses (ordered by fidelity)
- H1 — Java from a lure parent (high):
javaw.exe/java.exespawned by an Office app or script host (wscript/cscript/mshta) indicates a QuimaRAT dropper lure detonating. - H2 — JAR from temp (high): a Java runtime executing
-jaragainst a path in Temp/AppData/Downloads/ProgramData. - H3 — Run-key persistence (high): a registry Run value whose data invokes a Java runtime +
.jar. - H4 — Scheduled-task persistence (medium): a task action launching
javaw.exe -jar. - H5 — Startup-folder persistence (medium): a
.jar/.lnkwritten into a Startup directory. - H6 — Pastebin C2 rotation (medium): DNS/HTTP to
pastebin.comfrom a Java process (config-driven C2 update). - H7 — Runtime artifacts (medium): creation of a temp
.locksingle-instance file and an XOR-encryptedconfig.datbeside a JAR. - H8 — Java C2 beacon (medium): a Java process holding sustained outbound TCP/WebSocket sessions to non-corporate hosts.
Attack chain
| Step | Action | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 · Delivery | Builder-generated lure (JAR/EXE/APP/SH/BAT/VBS/DOCM…) | ProcessRollup2, PeFileWritten | Q1 · lure-parent Java |
| 2 · Execution | Java runtime executes the QuimaRAT JAR from temp | ProcessRollup2 | Q2 · -jar from temp |
| 3 · Runtime setup | .lock single-instance file + XOR config.dat written | FileCreateInfo / PeFileWritten | Q7 · artifacts |
| 4 · Persistence | Run key / Scheduled task / Startup (Win); crontab, .desktop (Linux); LaunchAgent (macOS) | AsepValueUpdate, ScheduledTask, FileCreateInfo | Q3 · Q4 · Q5 · native |
| 5 · C2 | AES-256 over TCP/WebSocket/TLS/HTTPS; Pastebin host rotation | NetworkConnectIP4, DnsRequest | Q6 · Q8 |
| 6 · Objectives | Credential theft, file transfer, clipboard, webcam, shellcode | ProcessRollup2, NetworkConnectIP4 | native / Q8 |
Consolidated IOC Table
No vetted atomic IOCs (file hashes / C2 addresses) are published for QuimaRAT at time of writing. The table below lists behavioral and artifact indicators from the LevelBlue analysis — durable across builder-chosen lure formats. Populate atomic IOCs from your own detonation before enabling prevention.
| Type | Value | Conf | Action | Context |
|---|---|---|---|---|
| Artifact file | config.dat (repeating-key XOR) beside a JAR | med | hunt | QuimaRAT config store |
| Artifact file | .lock in OS temp dir (Java FileLock single-instance) | med | hunt | Single-instance guard |
| Behavior | Java runtime spawned by Office / script host | high | hunt | Lure detonation |
| Behavior | javaw.exe -jar from Temp/AppData/Downloads | high | hunt | Payload execution |
| Behavior | Run key / task / Startup → Java + .jar | high | hunt | Persistence |
| Network | Java process → pastebin.com | med | hunt | C2-host rotation channel |
| Crypto | AES-256 C2; HANDSHAKE / HEARTBEAT protocol messages | med | enrich | C2 framing |
| Toolkit | Quima Control / Builder / Loader / Dropper | med | enrich | Operator suite names |
| File hash | REPLACE_WITH_SHA256 (from your detonation) | low | detect | Placeholder — no public hash |
| C2 | REPLACE_WITH_C2 (from your detonation) | low | detect | Placeholder — no public C2 |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Windows endpoints with a JRE installed | ProcessRollup2, AsepValueUpdate, ScheduledTask | Critical | Low |
| Windows without a JRE (bundled JRE lures) | ProcessRollup2 (bundled java runtime), PeFileWritten | High | Medium — arbitrary java path |
| macOS endpoints | ProcessRollup2, FileCreateInfo (LaunchAgent plist) | High | Medium — mac EDR coverage |
| Linux endpoints / servers | ProcessRollup2, crontab / .desktop file writes | High | Medium — Linux sensor coverage |
| Network egress | NetworkConnectIP4, DnsRequest (pastebin.com) | High | Medium — TLS/443 blends in |
ATT&CK Mapping
| Tactic | Technique | Behavior | Coverage |
|---|---|---|---|
| Execution | T1059.007 / T1204.002 | Java payload via user-executed lure (JS/VBS/Office → java) | Q1 |
| Execution | T1218 / T1620 | Fileless shellcode execution (Windows) | native |
| Persistence | T1547.001 | Registry Run key → Java + .jar | Q3 |
| Persistence | T1053.005 | Scheduled task → javaw -jar | Q4 |
| Persistence | T1547.001 | Startup folder .jar / .lnk | Q5 |
| Persistence | T1543.001 / T1053.003 | macOS LaunchAgent plist; Linux crontab / .desktop | native |
| Defense Evasion | T1027 / T1497 | XOR config.dat; virtualization/analysis checks | Q7 / native |
| Credential Access | T1555 / T1056.001 | Credential theft, keylogging, clipboard capture | native |
| Collection | T1125 / T1115 | Webcam capture, clipboard manipulation | native |
| Command & Control | T1071.001 / T1573.002 | AES-256 over TCP/WebSocket/TLS/HTTPS | Q8 |
| Command & Control | T1102 / T1105 | Pastebin C2-host rotation; plugin/payload download | Q6 |
Native Audit-Log Hunts (non-CQL)
- macOS — LaunchAgent: new plist under
~/Library/LaunchAgentsor/Library/LaunchAgentswhoseProgramArgumentsinvokejava/-jar; review withlaunchctl list. - Linux — crontab / autostart:
@rebootcrontab entries or~/.config/autostart/*.desktopfiles launching a JRE; auditcrontab -land the autostart dirs. - Windows Security 4698 — scheduled-task creation with an action pointing at
javaw.exe -jar. - Sysmon Event 11 —
.jar,config.dat, or.lockwritten into Temp/AppData/Startup. - Sysmon Event 13 / Registry auditing — Run-key values referencing a Java runtime.
- Proxy / DNS logs — requests to
pastebin.com(raw paste paths) originating from a Java user-agent or host running Java.
CrowdStrike LogScale CQL Hunt Queries
Looks for: a Java runtime launched by an Office app or script host — the QuimaRAT dropper detonating. FP: some enterprise Java LOB apps launch via scripts; baseline and exclude known internal launchers.
// HUNT: QuimaRAT lure-parent launches Java // MITRE: T1204.002, T1059.007 | CONF: high FP: med COST: low // REQUIRES: ProcessRollup2 // TUNING: exclude approved script-launched Java LOB apps #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/^(winword|excel|powerpnt|outlook|wscript|cscript|mshta|hh)\.exe$/i | FileName=/^javaw?\.exe$/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Looks for: javaw.exe -jar where the JAR lives in a user-writable/temp path — QuimaRAT payload execution. FP: some updaters run JARs from ProgramData; confirm the JAR name/signature and pair with persistence (Q3–Q5).
// HUNT: QuimaRAT JAR from temp/appdata // MITRE: T1059.007 | CONF: high FP: med COST: low // REQUIRES: ProcessRollup2 // TUNING: allowlist signed internal JAR paths #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^javaw?\.exe$/i | CommandLine=/-jar/i | CommandLine=/AppData|\\Temp\\|Downloads|ProgramData|\\Users\\Public/i | table([ComputerName, UserName, CommandLine, ParentBaseFileName, SHA256HashData], limit=200)
Looks for: an autostart Run value whose data invokes a Java runtime and a JAR. FP: a few legitimate Java apps register Run keys; scope the value data to -jar from a temp/user path.
// HUNT: QuimaRAT Run-key persistence // MITRE: T1547.001 | CONF: high FP: med COST: low // REQUIRES: AsepValueUpdate // TUNING: exclude signed vendor Java autostarts #event_simpleName=/AsepValueUpdate|RegGenericValueUpdate/ | RegObjectName=/\\CurrentVersion\\Run/i | RegStringValue=/javaw?(\.exe)?.*-jar/i | table([ComputerName, UserName, RegObjectName, RegValueName, RegStringValue], limit=200)
Looks for: task creation via schtasks.exe whose action runs a Java runtime with -jar. FP: exclude sanctioned Java maintenance tasks by name.
// HUNT: QuimaRAT scheduled-task persistence // MITRE: T1053.005 | CONF: med FP: med COST: low // REQUIRES: ProcessRollup2 // TUNING: allowlist approved Java task names #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^schtasks\.exe$/i | CommandLine=/javaw?(\.exe)?.*-jar/i | table([ComputerName, UserName, CommandLine, ParentBaseFileName], limit=200)
Looks for: a .jar or .lnk dropped into a Startup directory. FP: installers occasionally place Startup shortcuts; verify the target resolves to a Java payload.
// HUNT: QuimaRAT Startup-folder persistence // MITRE: T1547.001 | CONF: med FP: med COST: low // REQUIRES: PeFileWritten/FileCreateInfo // TUNING: exclude known installer shortcuts #event_simpleName=/PeFileWritten|NewExecutableWritten|FileCreateInfo/ | TargetFileName=/Start Menu\\Programs\\Startup/i | TargetFileName=/\.jar$|\.lnk$/i | table([ComputerName, UserName, TargetFileName], limit=200)
Looks for: DNS resolution of pastebin.com attributed to a Java process — the optional C2-host update channel. FP: developers legitimately hit Pastebin; scope to Java-context requests and correlate with Q2 execution.
// HUNT: QuimaRAT Pastebin C2-rotation lookup // MITRE: T1102, T1105 | CONF: med FP: med COST: low // REQUIRES: DnsRequest // TUNING: exclude developer workstations / CI hosts #event_simpleName=/DnsRequest/ | DomainName=/(^|\.)pastebin\.com$/i | ContextBaseFileName=/^javaw?\.exe$/i | table([ComputerName, DomainName, ContextBaseFileName], limit=200)
Looks for: the QuimaRAT runtime files — an XOR config.dat and a temp .lock single-instance guard. FP: both names are generic; require a nearby Java process (correlate with Q2) before actioning.
// HUNT: QuimaRAT runtime artifacts (config.dat / .lock) // MITRE: T1027 | CONF: med FP: med COST: low // REQUIRES: FileCreateInfo/PeFileWritten // TUNING: correlate with a Java process on same host #event_simpleName=/PeFileWritten|NewExecutableWritten|FileCreateInfo/ | TargetFileName=/\\config\.dat$|\\Temp\\[^\\]+\.lock$/i | table([ComputerName, UserName, TargetFileName], limit=200)
Looks for: external connections attributed to a Java process on non-web ports (candidate TCP/WebSocket C2). FP: high — Java apps make many outbound connections; use as a pivot after Q1/Q2, exclude RFC1918 and known SaaS. Replace the placeholder C2 once identified.
// HUNT: QuimaRAT Java outbound C2 (pivot) // MITRE: T1071.001, T1573.002 | CONF: med FP: high COST: med // REQUIRES: NetworkConnectIP4 // TUNING: exclude internal ranges + sanctioned SaaS; pivot from Q1/Q2 hosts #event_simpleName=/NetworkConnectIP4/ | ContextBaseFileName=/^javaw?\.exe$/i | RemotePort!=80 | RemotePort!=443 | RemoteAddressIP4!=/^(10\.|192\.168\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.|127\.)/ | table([ComputerName, RemoteAddressIP4, RemotePort, ContextBaseFileName], limit=200)
CrowdStrike Custom IOA Recommendations
| IOA Name | Pattern | Exclusions | Action |
|---|---|---|---|
| Office/Script → Java Spawn | ParentImage Office/wscript/cscript/mshta → child javaw.exe | Approved script-launched Java LOB apps | Detect |
| Java JAR from Temp | javaw.exe -jar with JAR path in Temp/AppData/Downloads | Signed internal JAR paths | Detect |
| Java Run-Key Autostart | Run-key value data matching javaw…-jar | Signed vendor Java autostarts | Detect |
All queries are Investigate-only until you baseline Java usage. Promote the Office→Java IOA first (narrowest, highest fidelity). Do not enable prevention on the Pastebin or generic outbound queries — both are FP-prone pivots.
Machine-Readable IOC Appendix
No vetted atomic IOCs are public. The CSV uses REPLACE_WITH_… placeholders — fill from your own detonation or a trusted feed before importing as prevent.
type,value,action,severity,expiration,description,tags sha256,REPLACE_WITH_SHA256,detect,high,2026-10-10,QuimaRAT JAR payload,malware:QuimaRAT domain,REPLACE_WITH_C2,detect,high,2026-10-10,QuimaRAT C2,malware:QuimaRAT ipv4,REPLACE_WITH_C2_IP,detect,high,2026-10-10,QuimaRAT C2,malware:QuimaRAT domain,pastebin.com,hunt,low,2026-08-10,QuimaRAT C2-rotation channel (context-scope only),malware:QuimaRAT
Office / wscript / cscript / mshta spawning javaw.exe javaw.exe -jar with a JAR in Temp / AppData / Downloads / ProgramData Run key / Scheduled task / Startup entry invoking javaw -jar config.dat (repeating-key XOR) written beside a JAR .lock single-instance file in the OS temp directory (Java FileLock) Java process resolving pastebin.com (C2-host rotation) macOS LaunchAgent plist / Linux crontab @reboot / .desktop autostart launching java
Quima Control (the RAT) — 74 Windows / 46 macOS+Linux modules Quima Builder — lure output: JAR/EXE/APP/SH/BAT/VBS/LNK/JS/DOCM/XLSM/CHM/MSC/CPL Quima Loader — browser-cache payload delivery Quima Dropper — HTML / SVG payload generator C2 protocol messages: HANDSHAKE, HEARTBEAT (AES-256)
Windows: HKCU/HKLM ...\CurrentVersion\Run values invoking java -jar Windows: scheduled tasks with a javaw -jar action; Startup .jar/.lnk macOS: ~/Library/LaunchAgents + /Library/LaunchAgents plists calling java Linux: crontab -l @reboot java ; ~/.config/autostart/*.desktop All: JAR + config.dat pair in a user-writable directory Egress: Java-context requests to pastebin.com raw paths
Detection Validation Gates
| Gate | Check | Pass Criteria |
|---|---|---|
| Telemetry ready | ProcessRollup2 + AsepValueUpdate + DnsRequest flowing across OS fleet | All three present in last 24h |
| Benign baseline | Run Q1/Q2 over 7 days; catalogue legitimate script-launched Java + JAR-from-ProgramData updaters | Exclusion list built before alerting |
| Positive test | In a lab, launch a benign -jar from %TEMP% via a VBS; run Q1 + Q2 | Both fire |
| Positive test | Add an HKCU Run value invoking javaw -jar; run Q3 | Q3 fires |
| Promotion | Office→Java IOA zero FPs over baseline window | Promote to detect-only IOA |
Hardening — Tiered
- Change the default handler for
.jarso double-clicking opens a text editor, not the JRE, on non-developer endpoints (MITRE M1042). - Block script-host lure formats — disable Windows Script Host or restrict
.vbs/.jsexecution via GPO where not needed (M1042, M1038). - Enable Office ASR rules — block Office apps from creating child processes and from launching executable content (M1040).
- Remove/scope the JRE — uninstall Java where unused; where required, restrict to managed paths and mark for allowlisting (M1038, CIS).
- Application control (WDAC/AppLocker) — allowlist approved JARs and Java runtimes; block execution from Temp/AppData/Downloads (M1038).
- Egress filtering — restrict outbound to an allowlist; monitor/limit Pastebin raw access from endpoints (M1037).
- macOS/Linux autostart control — monitor LaunchAgent, crontab, and
.desktopcreation via MDM/config management; alert on Java targets (M1047). - Attachment sandboxing — detonate inbound JAR/DOCM/CHM/LNK at the mail gateway before delivery (M1049, M1021).
- User execution hardening — mark-of-the-web enforcement + phishing-resistant awareness on double-clickable lures (M1017, M1021).
Deployable Playbooks
1 · Re-associate .jar away from the JRE (PowerShell, per-user)
# Point .jar at notepad on non-developer endpoints so lures don't auto-run in the JVM cmd /c assoc .jar=jarfile cmd /c ftype jarfile="%SystemRoot%\system32\notepad.exe" "%1" # Reverse on developer machines that legitimately need java -jar.
2 · Enable Office ASR (block child process + executable content)
# Block all Office apps from creating child processes Add-MpPreference -AttackSurfaceReductionRules_Ids d4f940ab-401b-4efc-aadc-ad5f3c50688a -AttackSurfaceReductionRules_Actions Enabled # Block executable content from email client and webmail Add-MpPreference -AttackSurfaceReductionRules_Ids be9ba2d9-53ea-4cdc-84e5-9b1eeee46550 -AttackSurfaceReductionRules_Actions Enabled
3 · Hunt Run-key Java persistence (PowerShell)
$paths = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run'
foreach ($p in $paths) {
Get-ItemProperty -Path $p -ErrorAction SilentlyContinue |
ForEach-Object { $_.PSObject.Properties } |
Where-Object { $_.Value -match 'javaw?.*-jar' } |
Select-Object Name, Value
}
4 · macOS LaunchAgent sweep (shell)
for d in ~/Library/LaunchAgents /Library/LaunchAgents; do grep -lri -e 'java' -e '\.jar' "$d" 2>/dev/null done # Review each hit; unload with: launchctl unload -w <plist> after triage.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain hosts running a suspicious Java payload or reaching the C2; capture the JAR + config.dat | SOC / IR | Falcon containment, RTR file pull |
| Eradicate | Kill the Java process, remove the JAR/config.dat/.lock, delete Run key / task / Startup / LaunchAgent / crontab entries | IR | RTR log, autostart export |
| Eradicate | Rotate credentials, browser sessions, and clipboard-exposed secrets on affected users | IdAM | Reset log |
| Recover | Detonate the recovered JAR to extract atomic IOCs (hash/C2); import as prevent; replace placeholders in §10 | IR / TI | Sandbox report |
| Recover | Confirm no residual persistence across all three OS families; enable the Office→Java IOA | SOC | Clean 72h window |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1204.002 | Lure-parent launches Java | Q1 | Yes | Good |
| T1059.007 | JAR from temp | Q2 | Candidate | Good |
| T1547.001 | Run-key persistence | Q3 | Candidate | Good |
| T1053.005 | Scheduled task | Q4 | No | Partial |
| T1547.001 | Startup folder | Q5 | No | Partial |
| T1102 / T1105 | Pastebin C2 rotation | Q6 | No | Partial |
| T1027 | config.dat / .lock artifacts | Q7 | No | Partial |
| T1071.001 / T1573.002 | Java C2 beacon | Q8 | No | Weak (FP-heavy pivot) |
| T1543.001 / T1053.003 | macOS LaunchAgent / Linux crontab | native | No | Partial |
| T1555 / T1125 / T1115 | Cred theft / webcam / clipboard | native | No | Gap |
Known gaps: atomic IOCs (hash/C2) are unpublished — Q8 is an FP-heavy pivot until you detonate and pin real infrastructure; on-host collection actions (credential/webcam/clipboard) are not distinguishable in process telemetry alone. Prioritize Q1–Q3, detonate a recovered sample to harden Q8, and validate Q3/Q5/Q7 field behavior in your tenant before promoting.
Hunt Summary Ticket
TITLE: QuimaRAT — cross-platform Java RAT (MaaS) behavioral hunt
SEVERITY: High (active MaaS; Windows/macOS/Linux)
SCOPE: All endpoints with a JRE (or bundled-JRE lures); mail-delivered lures
HYPOTHESIS: A builder-generated lure detonated a QuimaRAT JAR and installed
per-OS autorun persistence with AES-256 C2 (Pastebin rotation).
QUERIES: Q1 lure-parent Java · Q2 JAR-from-temp · Q3 Run-key (start here)
Q4 task · Q5 startup · Q6 pastebin · Q7 artifacts · Q8 C2 pivot
DO FIRST: Q1 (Office/script -> javaw) + Q2 (-jar from temp)
FINDINGS: ____________________________________________
GAPS: No public atomic IOCs; on-host collection actions; Q8 FP-heavy
ACTIONS: Re-associate .jar; Office ASR; app-control; detonate to pin C2
OWNER: ____________________
VERSION: v0.2 · 2026-07-10
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 | LevelBlue (SpiderLabs) — Novel Java-Based QuimaRAT Targets Windows, macOS, and Linux | Architecture, persistence, artifacts, C2, evasion | 2026-07-10 |
| 2 | The Hacker News — New Java-Based QuimaRAT MaaS Built to Run on Windows, Linux, and macOS | MaaS model, toolkit, builder formats, command counts | 2026-07-10 |
| 2 | SC Media — QuimaRAT targets Windows, Linux, macOS via MaaS | Cross-platform targeting confirmation | 2026-07-10 |