Threat Summary
Two concurrent threat intelligence pulses published to AlienVault OTX on 2026-09-17 reveal a dual-front escalation in credential theft and espionage tradecraft.
Front one — criminal MaaS ecosystem. VectraRAT is a previously undocumented, full-stack Malware-as-a-Service platform built entirely from scratch: a Go-based control server (VectraHub) paired with a native C++ Windows implant, rented to affiliates from $250/month. The operator, active since August 2022 under the handle 'Vectra' (formerly 'Nyxel'), has operated for nearly four years without public documentation — an unusually long dwell time for a commercial offering. Affiliates are deploying VectraRAT alongside Amadey loader, Vidar infostealer, and NetSupport RAT, with ClickFix social-engineering lures and UAC bypass techniques as the initial-access vector. Finance and government organizations across the US, Germany, India, Switzerland, and Russia are in scope.
Front two — nation-state espionage. APT36 (Operation C-Major, Pakistan-nexus) launched Operation RapidRust in August 2026 against government and defense targets in India and Afghanistan. The campaign deploys four new custom tools: RUSTYSHADE (Rust backdoor using private GitHub repositories as C2 with AES-256-GCM encryption), RUSTYMOVE (USB-based lateral movement), PSNATCH (PowerShell credential stealer), and BASHNATCH (Linux/Unix credential harvester), plus GITSHELLPAD and GOSHELL auxiliary tooling.
Collectively, these pulses confirm two converging trends: (1) commodity credential theft is consolidating into professionalized, vertically integrated MaaS stacks, and (2) state actors are migrating to Rust-based implants and abusing legitimate developer infrastructure (GitHub) for C2, defeating legacy domain-reputation controls.
Threat Actor / Malware Profile
VectraRAT (Criminal MaaS — 'Vectra'/'Nyxel')
- Distribution: ClickFix-style social engineering (fake CAPTCHA / 'fix this error' clipboard paste lures) delivering Amadey loader, which stages VectraRAT, Vidar, and NetSupport RAT payloads.
- Payload behavior: Native C++ Windows implant providing hidden desktop control (HVNC-style), keylogging, clipboard hijacking (crypto-wallet substitution), and full remote administration. Vidar co-deployment indicates bulk credential, cookie, and crypto-wallet exfiltration.
- C2 communication: Custom Go-based VectraHub panel; known C2 nodes include 91.92.242.236 and 178.16.54.148 (AS40999, dus.net gmbh, Germany).
- Persistence: Registry Run keys and scheduled tasks typical of the Amadey/NetSupport delivery chain.
- Anti-analysis: UAC bypass for elevated execution; native (non-.NET) implant evades common managed-code sandboxes; four-year operational silence suggests active OPSEC and panel access vetting.
APT36 — Operation RapidRust (Pakistan-nexus, Operation C-Major)
- Distribution: Spearphishing against government/defense entities in India and Afghanistan; RUSTYMOVE enables USB-borne lateral movement across air-gapped or segmented networks.
- Payload behavior: RUSTYSHADE Rust backdoor; PSNATCH PowerShell-based credential theft; BASHNATCH Bash-based credential theft for Linux estates; GITSHELLPAD/GOSHELL Go tooling for secondary access.
- C2 communication: Private GitHub repositories abused as dead-drop C2 channels; tasking and exfiltration payloads encrypted with AES-256-GCM — blending into legitimate developer traffic.
- Persistence: Platform-appropriate mechanisms (scheduled tasks/services on Windows, cron/systemd on Linux).
- Anti-analysis: Rust compilation defeats signature-based AV and complicates reverse engineering; encryption-in-transit and legitimate-infrastructure C2 defeat network IOC matching.
IOC Analysis
The pulses contain 38 and 20 indicators respectively, dominated by:
- IPv4 C2 addresses —
91.92.242.236and178.16.54.148(the latter enriched with CC=DE, AS40999 dus.net gmbh). These are VectraHub/VectraRAT infrastructure. Enriched ASN/GeoIP metadata enables rapid pivot analysis: query your telemetry for any traffic to AS40999-hosted ranges, not just the two published IPs. - FileHash-MD5 / FileHash-SHA1 — implant and loader samples across both campaigns. Note the absence of SHA256 in the sample set; pull the full pulse from OTX to retrieve complete hash sets before building blocklists.
Operationalization guidance for SOC teams:
- Ingest both pulses into your TIP (OpenCTI, MISP, ThreatConnect) via the OTX DirectConnect API — indicators auto-expire poorly, so set a 90-day relevance window for IPs and permanent retention for hashes.
- Push IPv4 indicators to egress firewall/proxy blocklists AND retrospective DNS/proxy log hunts — blocking alone misses pre-publication compromise.
- Load MD5/SHA1 hashes into EDR reputation (Defender, CrowdStrike, SentinelOne custom IOC lists). Cross-reference hashes against VirusTotal to obtain SHA256 equivalents and parent/child relationships.
- For APT36's GitHub-based C2, IP/hash blocking is insufficient — deploy behavioral detections (below) and audit outbound HTTPS to
github.com/api.github.com/raw.githubusercontent.comfrom non-developer endpoints and server workloads.
Detection Engineering
---
title: VectraRAT / Amadey ClickFix Execution Chain
description: Detects ClickFix-style social engineering leading to Amadey loader or VectraRAT execution — child processes spawned from mshta/rundll32/powershell following clipboard-paste lures
id: 9f3a2b71-vec4-4rat-a001-vectrahub001
status: experimental
author: Security Arsenal Threat Intel
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\mshta.exe'
- '\rundll32.exe'
- '\powershell.exe'
- '\pwsh.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\regsvr32.exe'
selection_suspicious_cmd:
CommandLine|contains:
- 'curl'
- 'Invoke-WebRequest'
- 'iex'
- 'DownloadString'
- 'Start-BitsTransfer'
condition: selection_parent and selection_child and selection_suspicious_cmd
falsepositives:
- Enterprise software distribution scripts
level: high
tags:
- attack.execution
- attack.t1059
- attack.t1204
- malware.vectrarat
- malware.amadey
date: 2026/09/17
---
title: APT36 RUSTYSHADE GitHub Repository C2 Communication
description: Detects non-browser, non-git process making HTTPS connections to GitHub API/raw endpoints — consistent with RUSTYSHADE dead-drop C2 over private repositories
id: 8e2b1c63-apt3-6rap-rust-rustyshade01
status: experimental
author: Security Arsenal Threat Intel
logsource:
category: network_connection
product: windows
detection:
selection_domain:
DestinationHostname|contains:
- 'api.github.com'
- 'raw.githubusercontent.com'
- 'gist.githubusercontent.com'
filter_legit:
Image|endswith:
- '\git.exe'
- '\githubdesktop.exe'
- '\code.exe'
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\devenv.exe'
condition: selection_domain and not filter_legit
falsepositives:
- Package managers (winget, npm, pip) and CI/CD agents
- Developer tooling auto-updaters
level: high
tags:
- attack.command_and_control
- attack.t1102
- attack.t1071.001
- apt.apt36
- malware.rustyshade
date: 2026/09/17
---
title: Credential Stealer Execution — PSNATCH / Vidar Artifact Access
description: Detects PowerShell or script processes accessing browser credential stores, LSASS memory, or crypto wallet paths — matching PSNATCH and Vidar infostealer collection behavior
id: 7d1a0b42-cred-4stl-psnt-vidar00001
status: experimental
author: Security Arsenal Threat Intel
logsource:
category: process_creation
product: windows
detection:
selection_creds:
CommandLine|contains:
- 'Login Data'
- 'Local State'
- '\Web Data'
- 'os_crypt'
- 'DPAPI'
- 'CryptUnprotectData'
- 'wallet.dat'
- 'Exodus'
- 'Electrum'
- 'lsass'
- 'comsvcs.dll'
- 'MiniDump'
selection_script:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\cmd.exe'
condition: selection_creds and selection_script
falsepositives:
- Legitimate password vault migrations
- Forensic/IR tooling (authorize by process lineage)
level: critical
tags:
- attack.credential_access
- attack.t1555.003
- attack.t1003.001
- malware.psnatch
- malware.vidar
date: 2026/09/17
// Sentinel hunt: VectraRAT C2 + APT36 GitHub-abuse C2 + stealer process lineage
let VectraC2 = dynamic(["91.92.242.236", "178.16.54.148"]);
let GitC2 = dynamic(["api.github.com", "raw.githubusercontent.com", "gist.githubusercontent.com"]);
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemoteIP in (VectraC2)
| project TimeGenerated, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine, IndicatorType="VectraRAT_C2_IP"),
(DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemoteUrl has_any (GitC2)
| where InitiatingProcessFileName !in~ ("git.exe","code.exe","chrome.exe","msedge.exe","firefox.exe","GitHubDesktop.exe","devenv.exe","node.exe")
| project TimeGenerated, DeviceName, RemoteUrl, InitiatingProcessFileName, InitiatingProcessCommandLine, IndicatorType="APT36_GitHub_C2"),
(DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where ProcessCommandLine has_any ("Login Data","Local State","os_crypt","CryptUnprotectData","wallet.dat","MiniDump","comsvcs.dll")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, AccountName, IndicatorType="Credential_Theft_Behavior")
| order by TimeGenerated desc
# VectraRAT / APT36 RapidRust — Host IOC Hunt Script
# Run elevated via your RMM/EDR across the fleet; export results centrally.
$report = @()
# 1. Network connections to VectraRAT C2 infrastructure
$c2 = @('91.92.242.236','178.16.54.148')
$conns = Get-NetTCPConnection -ErrorAction SilentlyContinue | Where-Object { $c2 -contains $_.RemoteAddress }
foreach ($c in $conns) { $report += [pscustomobject]@{Check='VectraRAT_C2_Connection'; Detail="$($c.LocalAddress):$($c.LocalPort) -> $($c.RemoteAddress):$($c.RemotePort) State=$($c.State) PID=$($c.OwningProcess)"} }
# 2. Persistence: suspicious Run keys (Amadey/VectraRAT commonly land here)
$runPaths = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
foreach ($p in $runPaths) {
Get-ItemProperty -Path $p -ErrorAction SilentlyContinue | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|Temp|ProgramData' -and $_.Value -match '&|powershell|mshta|rundll32|regsvr32' } |
ForEach-Object { $report += [pscustomobject]@{Check='Suspicious_RunKey'; Detail="$p :: $($_.Name) = $($_.Value)"} }
}
}
# 3. Persistence: recently created scheduled tasks launching from user-writable paths
Get-ScheduledTask -ErrorAction SilentlyContinue | ForEach-Object {
$act = $_.Actions | Where-Object { $_.Execute -match 'AppData|Temp|ProgramData' }
if ($act) { $report += [pscustomobject]@{Check='Suspicious_ScheduledTask'; Detail="$($_.TaskName) -> $($act.Execute) $($act.Arguments)"} }
}
# 4. Hash sweep: known VectraRAT / RapidRust sample hashes in common staging dirs
$badHashes = @('2ed675d3342f069b6ebb090ee8085f43','7899b3e9e899acc932c7839d37ef0c74','89706fa83374ddd3d52ac569d876ac6a','a3dc3ee464737dd74c20ec771deaac4d','a8619784bfe927e551e831d4adaf8ba5','40a75f87f1e52c33df9ca733aaf8ebbb','aade06ec611d69f1553035f22356ccf4','ae77f1834ccde53258bc27a779102af2','f16f507a8ed515663a4f07050cd97a74')
$scanDirs = @("$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:ProgramData")
foreach ($dir in $scanDirs) {
Get-ChildItem -Path $dir -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
$h = (Get-FileHash $_.FullName -Algorithm MD5 -ErrorAction SilentlyContinue).Hash
if ($h -and ($badHashes -contains $h.ToLower())) { $report += [pscustomobject]@{Check='Malicious_FileHash'; Detail="$($_.FullName) MD5=$h"} }
}
}
# 5. Non-git processes with recent GitHub API connections (RUSTYSHADE-style C2)
Get-NetTCPConnection -State Established -RemotePort 443 -ErrorAction SilentlyContinue | ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
if ($proc -and $proc.Name -notmatch '^(git|chrome|msedge|firefox|Code|GitHubDesktop|node|devenv)$') {
try { $dns = (Resolve-DnsName $_.RemoteAddress -ErrorAction Stop).NameHost } catch { $dns = '' }
if ($dns -match 'github') { $report += [pscustomobject]@{Check='Possible_GitHub_C2'; Detail="$($proc.Name) (PID $($proc.Id)) -> $($_.RemoteAddress) [$dns]"} }
}
}
$report | Format-Table -AutoSize
if ($report.Count -gt 0) { $report | Export-Csv -Path "C:\IR\ioc_hunt_$env:COMPUTERNAME.csv" -NoTypeInformation }
Response Priorities
Immediate (0–4 hours)
- Block
91.92.242.236and178.16.54.148at egress firewalls, proxies, and DNS layers; add both pulses' full hash sets to EDR blocklists. - Run the KQL hunt and PowerShell sweep across all endpoints; prioritize finance, government, and defense-adjacent business units.
- Alert on any established GitHub API connections from non-developer processes — treat as suspected RUSTYSHADE beaconing pending triage.
24 Hours
- Credential exposure response is mandatory. Both campaigns deliver credential-stealing payloads (Vidar, PSNATCH, BASHNATCH). For any host with confirmed execution artifacts: force password resets for all users of that host, revoke active sessions and refresh tokens, and rotate any credentials stored in local browsers.
- Audit privileged-account sign-in logs for anomalies originating from affected endpoints; verify MFA enforcement — session-token theft bypasses MFA at the cookie level, so revoke tokens rather than relying on re-prompts.
- For defense/government constituencies: check for USB device insertion events correlating with RUSTYMOVE lateral movement windows.
1 Week
- Harden the ClickFix attack surface: deploy browser-isolation policies and user awareness for clipboard-paste lures; restrict mshta/rundll32/regsvr32 child-process spawning via WDAC or AppLocker rules.
- Segment developer traffic: route legitimate GitHub access through an authenticated proxy with allowlisting, so raw endpoint-to-GitHub API flows become high-fidelity alerts.
- Disable or constrain PowerShell for standard users (Constrained Language Mode), enable Script Block Logging and AMSI integration to catch PSNATCH-class theft.
- For Linux estates in scope of APT36: audit cron/systemd persistence and deploy BASHNATCH-targeted EDR coverage — Windows-only visibility is a gap this actor explicitly exploits.
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.