Threat Summary
Three concurrent OTX pulses reveal a threat landscape dominated by commoditized remote access tooling and nation-state modernization of implant arsenals. Collectively they describe both ends of the adversary spectrum: underground Malware-as-a-Service economics and disciplined APT tradecraft.
VectraRAT is a previously undocumented full-stack MaaS platform built by the developer operating as 'Vectra' (formerly 'Nyxel'), active since August 2022. The platform pairs a Go-based control server (VectraHub) with a native C++ Windows implant, renting for as little as $250/month. It is distributed alongside Amadey (S1025), Vidar stealer, and NetSupport RAT — indicating ClickFix-style social engineering loaders are feeding a multi-payload delivery chain aimed at Finance and Government victims across the US, Germany, India, Switzerland, and Russia.
Noodle RAT (ANGRYREBEL / Nood RAT) is a modular cross-platform backdoor with Windows and Linux builds, operated by Chinese-speaking actors including Iron Tiger, Calypso APT, Rocke, and Cloud Snooper since at least mid-2016. Long misclassified as Gh0st RAT (S0032) or Rekoobe variants, it is now confirmed as a distinct family deployed in espionage and cybercrime campaigns across India, Japan, Malaysia, Taiwan, and Thailand.
Operation RapidRust (APT36 / Operation C-Major) is the most acute nation-state threat in this set. In August 2026 the Pakistan-nexus actor targeted government and defense organizations in India and Afghanistan with a rebuilt arsenal: RUSTYSHADE (Rust backdoor using private GitHub repositories as C2 with AES-256-GCM encryption), RUSTYMOVE (USB lateral movement), PSNATCH and BASHNATCH (PowerShell/Bash credential and data theft), plus GITSHELLPAD and GOSHELL implants.
The shared objective across all three pulses: durable covert access, credential and clipboard theft, and data exfiltration — with APT36 representing the highest-consequence targeting of defense networks.
Threat Actor / Malware Profile
VectraRAT (MaaS — 'Vectra' / 'Nyxel')
- Distribution: ClickFix social engineering lures; bundled delivery with Amadey loader and Vidar stealer; NetSupport RAT as secondary payload.
- Payload behavior: Hidden virtual desktop control, keylogging, clipboard hijacking (cryptocurrency address swapping), screen capture, and file exfiltration.
- C2 communication: Go-based VectraHub panel; implant communicates over TCP to rented infrastructure (e.g., 91.92.242.236, 178.16.54.148 on dus.net GmbH / AS40999).
- Persistence: Registry Run keys and scheduled tasks established by the C++ implant; UAC bypass techniques advertised as a platform feature.
- Anti-analysis: Native C++ implant with string obfuscation; undocumented protocol frustrates signature-based detection; operator rebranding (Nyxel → Vectra) evades attribution tracking.
Noodle RAT (Chinese-nexus espionage)
- Distribution: Spear-phishing and exploitation of public-facing Linux/Windows servers; dropped via MULTIDROP and MICROLOAD loaders.
- Payload behavior: Modular plugins for shell access, file management, screen capture, and proxy tunneling; Tiny SHell and Mydoor/Moudoor components on Linux.
- C2 communication: Custom TCP protocol historically mistaken for Gh0st RAT or Rekoobe; observed C2s include 58.181.61.142 and 137.220.158.91.
- Persistence: Windows services and Linux init/cron mechanisms; masquerades as legitimate system daemons.
- Anti-analysis: Version-specific builds per campaign; deliberate code divergence from Gh0st lineage to defeat family clustering.
APT36 — Operation RapidRust
- Distribution: Spear-phishing against Indian and Afghan government/defense entities with weaponized documents and malicious shortcuts.
- Payload behavior: RUSTYSHADE backdoor (Rust), RUSTYMOVE for USB-based lateral movement into air-gapped or segmented networks, PSNATCH (PowerShell) and BASHNATCH (Bash) for credential harvesting and staged exfiltration, GITSHELLPAD/GOSHELL as supporting implants.
- C2 communication: Abuse of private GitHub repositories as dead-drop C2; AES-256-GCM encrypted tasking and responses blended into legitimate HTTPS traffic to github.com.
- Persistence: Scheduled tasks and registry autoruns on Windows; shell profile and systemd persistence on Linux.
- Anti-analysis: Rust compilation defeats many static YARA signatures and sandbox emulation; living-off-trusted-sites (GitHub) C2 bypasses domain-reputation controls.
IOC Analysis
The pulses contain 117 total indicators across three types:
- IPv4 C2 addresses (4+): 91.92.242.236, 178.16.54.148 (VectraRAT — DE-hosted, AS40999 dus.net gmbh); 58.181.61.142, 137.220.158.91 (Noodle RAT). Operationalize via egress firewall and DNS sinkhole blocklists; add to EDR network connection watchlists.
- File hashes — MD5, SHA1, SHA256 (110+): Implant and loader samples for all three families. Hashes are brittle against recompiled Rust/Go binaries — use them for retrospective triage and sandbox detonation pivots, not as primary forward-looking detection.
- No domains/URLs in the samples shown — this is significant: APT36's GitHub-repository C2 produces no unique domains to block, forcing behavioral detection of GitHub API abuse patterns.
Tooling to operationalize: MISP or OpenCTI for IOC ingestion and decay scoring; VirusTotal/OTX pulse enrichment for hash reputation; Suricata/Zeek for C2 session telemetry; Sigma pipelines to convert the rules below into your SIEM format (Splunk, Sentinel, QRadar). Prioritize the SHA256 indicators in blocklists (collision-resistant) over MD5/SHA1, and treat every hash as a pivot point for code-similarity hunting (imphash, ssdeep, TLSH).
Detection Engineering
---
title: VectraRAT Implant Execution and UAC Bypass Behavior
id: 9a1f2c3e-7b4d-4e1a-9c5f-2d8a6b0e1f11
status: experimental
description: Detects execution patterns associated with the VectraRAT MaaS implant including ClickFix-delivered payloads, UAC bypass abuse, and clipboard hijack staging
author: Security Arsenal Threat Intelligence
date: 2026/09/17
references:
- https://socradar.io/blog/vectrarat-undocumented-stack-maas
logsource:
category: process_creation
product: windows
detection:
selection_clickfix:
ParentImage|endswith:
- '\mshta.exe'
- '\powershell.exe'
- '\cmd.exe'
CommandLine|contains:
- 'powershell -ep bypass'
- 'Invoke-WebRequest'
- 'iex('
selection_uac_bypass:
Image|endswith:
- '\fodhelper.exe'
- '\computerdefaults.exe'
- '\sdclt.exe'
selection_amadey_loader:
CommandLine|contains:
- 'rundll32'
- 'regsvr32 /s'
condition: selection_clickfix or (selection_uac_bypass and selection_amadey_loader)
falsepositives:
- Legitimate software deployment tooling
level: high
tags:
- attack.execution
- attack.privilege_escalation
- attack.t1548.002
- attack.t1059
---
title: APT36 RUSTYSHADE GitHub Repository C2 Communication
id: 3b7e9d1a-5c2f-4a8b-b6d3-1e9f0a4c7d22
status: experimental
description: Detects non-browser processes making sustained HTTPS connections to GitHub API endpoints consistent with RUSTYSHADE dead-drop C2 via private repositories
author: Security Arsenal Threat Intelligence
date: 2026/09/17
references:
- https://www.zscaler.com/blogs/security-research/operation-rapidrust-apt36-deploys-rustyshade-rustymove-psnatch-and
logsource:
category: network_connection
product: windows
detection:
selection_github_api:
DestinationHostname|contains:
- 'api.github.com'
- 'raw.githubusercontent.com'
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\firefox.exe'
- '\msedge.exe'
- '\git.exe'
- '\githubdesktop.exe'
- '\code.exe'
condition: selection_github_api and not filter_browsers
falsepositives:
- CI/CD agents and developer automation scripts
- Package managers pulling dependencies from GitHub
level: high
tags:
- attack.command_and_control
- attack.t1102
- attack.t1071.001
---
title: Noodle RAT Cross-Platform Persistence and Loader Activity
id: 5d2c8f4b-1a6e-4b9c-c3f7-8d1e5a0b3f33
status: experimental
description: Detects MULTIDROP/MICROLOAD loader execution and service-based persistence associated with Noodle RAT (ANGRYREBEL) on Windows and Linux hosts
author: Security Arsenal Threat Intelligence
date: 2026/09/17
references:
- https://cyberint.com/blog/dark-web/noodle-rat-a-recipe-for-cross-platform-espionage
logsource:
category: process_creation
product: windows
detection:
selection_service_persist:
Image|endswith:
- '\sc.exe'
- '\net.exe'
- '\net1.exe'
CommandLine|contains:
- 'create'
- 'binpath'
- 'start='
selection_tmp_exec:
CommandLine|contains:
- '\Temp\'
- '\AppData\Local\Temp\'
- '\ProgramData\'
Image|endswith:
- '\svchost.exe'
condition: selection_service_persist and selection_tmp_exec
falsepositives:
- Enterprise software installers registering services
level: medium
tags:
- attack.persistence
- attack.t1543.003
- attack.t1055
// Security Arsenal — Multi-Family Threat Hunt
// VectraRAT C2, Noodle RAT C2, and APT36 GitHub dead-drop C2
let C2IPs = dynamic(["91.92.242.236", "178.16.54.148", "58.181.61.142", "137.220.158.91"]);
let IOC_SHA256 = dynamic(["33641bfbbdd5a9cd2320c61f65fe446a2226d8a48e3bd3c29e8f916f0592575f", "51aed28d3468de5e75addc467ba14389356afe896098e4e478efcd7bf79a65b9", "7b63ddaf3b217f9e7b08575ee6f80fff1d2d9e12522d862ccc192ef3d08a0dd3", "7aa50ba59b38494cc524dbd31519bd3a218133aed64d9037eef02d697b8e99d0"]);
let NetHits = DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where RemoteIP in (C2IPs)
or (RemoteUrl has_any ("api.github.com", "raw.githubusercontent.com")
and InitiatingProcessFileName !in~ ("chrome.exe", "msedge.exe", "firefox.exe", "git.exe", "code.exe", "githubdesktop.exe"))
| project TimeGenerated, DeviceName, RemoteIP, RemoteUrl, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessSHA256;
let FileHits = DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where SHA256 in (IOC_SHA256) or SHA1 has_any ("05a873fcac5373d5c3b24b2541b7b861cc4c5c05", "6bd5c6af884d46638ebc60434cfd35b37c1d3dd4", "00aff1a72c5d5635ab36ce2eb370718a7f0557a0")
or ProcessCommandLine has_any ("fodhelper", "computerdefaults", "powershell -ep bypass")
| project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, SHA256, InitiatingProcessFileName;
union NetHits, FileHits
| sort by TimeGenerated desc
# Security Arsenal — Host-Level IOC Hunt: VectraRAT / Noodle RAT / APT36 RapidRust
# Run elevated on suspected endpoints. Checks persistence, artifacts, and live connections.
$Report = @()
# 1. Registry Run key persistence (VectraRAT, APT36 GOSHELL)
$RunKeys = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run'
)
foreach ($Key in $RunKeys) {
if (Test-Path $Key) {
Get-ItemProperty $Key | ForEach-Object {
$_.PSObject.Properties | Where-Object {
$_.Value -match 'Temp|AppData|ProgramData|\.ps1|mshta|rundll32'
} | ForEach-Object {
$Report += [PSCustomObject]@{ Check='RegistryRunKey'; Artifact=$Key; Value="$($_.Name) = $($_.Value)" }
}
}
}
}
# 2. Scheduled tasks pointing to suspicious paths (APT36 persistence, Amadey)
Get-ScheduledTask | Where-Object {
$_.Actions.Execute -match 'powershell|cmd|wscript|mshta' -and
($_.Actions.Arguments -match 'Temp|AppData|bypass|hidden|iex')
} | ForEach-Object {
$Report += [PSCustomObject]@{ Check='ScheduledTask'; Artifact=$_.TaskName; Value="$($_.Actions.Execute) $($_.Actions.Arguments)" }
}
# 3. Live connections to known C2 (VectraRAT, Noodle RAT)
$C2s = @('91.92.242.236','178.16.54.148','58.181.61.142','137.220.158.91')
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
Where-Object { $C2s -contains $_.RemoteAddress } | ForEach-Object {
$Proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
$Report += [PSCustomObject]@{ Check='C2Connection'; Artifact=$_.RemoteAddress; Value="PID $($_.OwningProcess) - $($Proc.ProcessName) - $($Proc.Path)" }
}
# 4. Non-browser processes talking to GitHub API (RUSTYSHADE dead-drop C2)
Get-NetTCPConnection -State Established -RemotePort 443 -ErrorAction SilentlyContinue | ForEach-Object {
$Proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
if ($Proc -and $Proc.ProcessName -notmatch 'chrome|msedge|firefox|git|Code|GitHubDesktop') {
try {
$IP = [System.Net.Dns]::GetHostAddresses($_.RemoteAddress) | Out-Null
$Host_ = ([System.Net.Dns]::GetHostEntry($_.RemoteAddress)).HostName
if ($Host_ -match 'github') {
$Report += [PSCustomObject]@{ Check='GitHubC2Suspect'; Artifact=$Host_; Value="$($Proc.ProcessName) (PID $($Proc.Id)) -> $($_.RemoteAddress)" }
}
} catch {}
}
}
# 5. Hash-sweep common staging directories for known-bad samples
$BadMD5 = @('2ed675d3342f069b6ebb090ee8085f43','7899b3e9e899acc932c7839d37ef0c74','89706fa83374ddd3d52ac569d876ac6a','40a75f87f1e52c33df9ca733aaf8ebbb','aade06ec611d69f1553035f22356ccf4','ae77f1834ccde53258bc27a779102af2','f16f507a8ed515663a4f07050cd97a74','40cab74bfacd7ba8fa46c8dcbdf7cae3')
$Paths = @("$env:TEMP","$env:LOCALAPPDATA\Temp","C:\ProgramData")
foreach ($P in $Paths) {
Get-ChildItem $P -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
$H = (Get-FileHash $_.FullName -Algorithm MD5 -ErrorAction SilentlyContinue).Hash
if ($BadMD5 -contains $H.ToLower()) {
$Report += [PSCustomObject]@{ Check='MaliciousFile'; Artifact=$_.FullName; Value="MD5 $H" }
}
}
}
$Report | Format-Table -AutoSize
if ($Report.Count -eq 0) { Write-Host "[+] No IOC artifacts found on $env:COMPUTERNAME" -ForegroundColor Green }
else { Write-Host "[!] $($Report.Count) suspicious artifacts found — isolate host and escalate to IR" -ForegroundColor Red }
Response Priorities
Immediate (0–4 hours):
- Block the four confirmed C2 IPs (91.92.242.236, 178.16.54.148, 58.181.61.142, 137.220.158.91) at the egress firewall, proxy, and DNS layers.
- Push all 117 pulse IOCs into EDR blocklists; run the KQL hunt across the last 14 days of network and process telemetry.
- Alert on any non-browser process communicating with api.github.com or raw.githubusercontent.com — RUSTYSHADE's C2 leaves no blockable domain.
- Search for ClickFix-style execution chains (mshta/powershell spawned from browser processes) given VectraRAT's delivery mechanism.
24 hours:
- Vidar stealer and PSNATCH/BASHNATCH are credential-theft tooling — force password resets and revoke active sessions/tokens for any user on a host with confirmed hits; prioritize privileged and VPN accounts.
- Audit MFA enrollment for impacted identities; clipboard hijacking in VectraRAT specifically targets cryptocurrency transactions — alert finance teams to verify pending transfers out-of-band.
- Check USB device connection logs on defense/government-segment endpoints for RUSTYMOVE lateral movement indicators.
1 week:
- Deploy the Sigma detections above to production SIEM with tuned false-positive filters for developer workstations.
- Implement application allowlisting on government/defense endpoints; restrict GitHub API access to sanctioned developer machines via proxy policy.
- Restrict removable media via device control policies in segments matching APT36's targeting profile.
- Conduct ClickFix-aware phishing simulation and user training; add PowerShell logging (Script Block + Module) to any endpoint lacking it.
Related Resources
Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.