Two distinct but equally urgent threat streams surfaced in AlienVault OTX telemetry today. Together they map the full modern intrusion economy: social-engineering-driven initial access on one side, and vulnerability-driven espionage on the other.
Stream 1 — Helpdesk Hijackers (Initial Access Broker): Since January 2026, a threat actor assessed as an initial access broker (IAB) for ransomware operations has been running Microsoft Teams vishing campaigns. Operators impersonate corporate IT helpdesk staff, persuade victims to launch Quick Assist (Microsoft's built-in remote support tool), and use that legitimate session to execute PowerShell staging scripts. The scripts deploy GoGRPC, a Go-based backdoor that ships in four distinct variants, supported by a broader tooling ecosystem: BlindDoor, RevSocket, PyGRPC, S3Siphon, and RSOX (a SOCKS proxy used to tunnel attacker traffic through the victim). The IAB's endgame is resale of access to ransomware affiliates — meaning any confirmed GoGRPC infection should be treated as a pre-ransomware event with a 24–72 hour weaponization window.
Stream 2 — Philippine Nuclear/Defense Intrusions: A suspected Chinese-speaking operator conducted targeted intrusions against the Philippine nuclear research agency and a naval defense contractor. An exposed open directory on attacker VPS infrastructure revealed custom Python exploit scripts targeting CVE-2023-49105 (ownCloud) and CVE-2024-28000 (WordPress LiteSpeed Cache). Post-exploitation leveraged the Sliver C2 framework with Metasploit/Mettle payloads. Approximately 9 GB of data was exfiltrated, including reactor core databases — indicating strategic espionage intent against energy and defense sectors in the Philippines.
Collective picture: Defenders face converging pressure — commodity social engineering that bypasses perimeter controls entirely (Quick Assist is signed, trusted Microsoft software), and nation-state-aligned exploitation of unpatched internet-facing collaboration platforms. Both streams end in the same place: persistent C2 and data theft or ransomware staging.
Threat Actor / Malware Profile
GoGRPC Ecosystem (Helpdesk Hijackers IAB)
- Distribution: Voice phishing (vishing) over Microsoft Teams. Attackers initiate external Teams chats/calls posing as IT support, then instruct victims to open Quick Assist (
quickassist.exe) and share a session code. No malicious attachment is required — the initial vector is pure social engineering over trusted channels. - Payload behavior: PowerShell scripts execute in-session to download and stage GoGRPC, a Go-compiled backdoor communicating over gRPC — an unusual C2 choice that evades many HTTP-signature-based detections. Four variants exist, suggesting active development and per-target customization.
- Supporting tooling:
- BlindDoor — secondary backdoor for redundancy.
- RevSocket / RSOX — reverse SOCKS proxy implants that convert the victim host into a network pivot, letting the actor route traffic through the corporate network as if internal.
- PyGRPC — Python-based gRPC component, likely for cross-platform or lightweight staging.
- S3Siphon — exfiltration tool that pushes stolen data to attacker-controlled AWS S3 buckets, blending theft with legitimate cloud traffic.
- C2 communication: gRPC over TLS (typically port 443) plus SOCKS tunneling via domains such as
scansec-upd.com— themed to resemble a security-update service. - Persistence: PowerShell-established persistence (scheduled tasks / registry run keys typical of this cluster) and redundant backdoors (GoGRPC + BlindDoor) so removing one implant does not evict the actor.
- Anti-analysis: Go compilation (large binaries, poor static signature coverage), living-off-the-land initial access (Quick Assist, PowerShell), and C2 over a legitimate RPC framework.
Sliver/Metasploit Operator (Philippine Intrusions)
- Distribution: Exploitation of internet-facing services — CVE-2023-49105 (ownCloud sensitive disclosure / auth-bypass chain) and CVE-2024-28000 (WordPress LiteSpeed Cache privilege escalation) — delivered via custom Python exploit scripts hosted on attacker VPS infrastructure.
- Payload behavior: Sliver implants (Go-based, mTLS/HTTP/DNS C2 capable) with Mettle (Metasploit's native POSIX payload) for Unix-flavored targets such as ownCloud servers.
- C2 infrastructure: VPS-hosted, domains
fine-work-team.com,timelevel12.com(with staging path/big), hostnamesnake.zooparkko.com, IP31.58.209.241. - Objective: Large-scale exfiltration (~9 GB including reactor core databases) consistent with strategic intelligence collection against nuclear energy and naval defense programs.
IOC Analysis
The indicator set across both pulses breaks into four operational classes:
| IOC Type | Examples | Operationalization |
|---|---|---|
| Domains / Hostnames | scansec-upd.com, fine-work-team.com, timelevel12.com, snake.zooparkko.com | Block at DNS resolver, proxy, and EDR. Add to threat-intel feeds with 90-day lookback queries. |
| IPv4 | 31.58.209.241 | Block egress at firewall; hunt NetFlow/proxy logs for historical connections. VPS IPs churn fast — prioritize retro-hunting over pure blocking. |
| URLs | http://timelevel12.com/big | Staging/payload path. Search proxy and EDR network telemetry for the full URI; the /big path is a strong low-noise hunting pivot. |
| File hashes (MD5/SHA1/SHA256) | 3d1819de..., 10df3451... | Push into EDR blocklists and AV custom indicators. Note: Go binaries recompile trivially — hashes are retro-hunt artifacts, not durable prevention. Weight behavioral detections higher. |
| CVEs | CVE-2023-49105, CVE-2024-28000 | Cross-reference asset inventory for ownCloud and WordPress LiteSpeed Cache exposure; patch or isolate immediately. |
Tooling guidance: Ingest the full OTX pulse exports (STIX/JSON) into your TIP (OpenCTI, MISP) and sync to Sentinel/Defender via threat intelligence connectors. Decode and pivot on indicators with AbuseIPDB/VirusTotal for passive DNS, and use OTX's pulse API for automated daily feed pulls. Hash-based pivots should run through your EDR's retrohunt (Defender advanced hunting, CrowdStrike, SentinelOne Deep Visibility) across at least 90 days, matching the campaign's January 2026 start date.
Detection Engineering
---
title: Quick Assist Execution Following Teams Interaction - Vishing IAB TTP
id: 7f2a1c9e-3b4d-4e5a-9c6f-2d8b1a4e5f01
status: experimental
description: Detects Quick Assist (quickassist.exe) spawning PowerShell or script interpreters, consistent with Teams vishing helpdesk-impersonation intrusions deploying GoGRPC/BlindDoor. Quick Assist spawning child processes is highly anomalous.
author: Security Arsenal Threat Intelligence
references:
- https://www.zscaler.com/blogs/security-research/helpdesk-hijackers-teams-vishing-quick-assist-and-gogrpc-backdoor
date: 2026/08/26
logsource:
category: process_creation
product: windows
service: sysmon
detection:
selection_parent:
ParentImage|endswith: '\quickassist.exe'
selection_child:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\cmd.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
condition: selection_parent and selection_child
falsepositives:
- Legitimate helpdesk troubleshooting scripts (rare; validate against IT ticket records)
level: high
tags:
- attack.initial_access
- attack.t1656
- attack.t1059
---
title: GoGRPC / RSOX C2 Communication to Known IAB Infrastructure
id: 8e3b2d0f-4c5e-5f6b-0d7a-3e9c2b5f6a02
status: experimental
description: Detects network connections to known GoGRPC/RSOX C2 and staging infrastructure from the Helpdesk Hijackers campaign and Sliver operator infrastructure from the Philippine intrusions.
author: Security Arsenal Threat Intelligence
references:
- https://www.zscaler.com/blogs/security-research/helpdesk-hijackers-teams-vishing-quick-assist-and-gogrpc-backdoor
- https://hunt.io/blog/chinese-speaking-operator-philippine-nuclear-naval-contractor
date: 2026/08/26
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection_domain:
DestinationHostname|contains:
- 'scansec-upd.com'
- 'fine-work-team.com'
- 'timelevel12.com'
- 'zooparkko.com'
selection_ip:
DestinationIp: '31.58.209.241'
condition: 1 of selection_*
falsepositives:
- None expected; these are dedicated attacker-controlled hosts
level: critical
tags:
- attack.command_and_control
- attack.t1071
- attack.t1572
---
title: Suspicious gRPC or Reverse SOCKS Tunneling Behavior
id: 9f4c3e1a-5d6f-6a7c-1e8b-4f0d3c6a7b03
status: experimental
description: Detects non-browser, non-standard processes making outbound TLS connections with characteristics of gRPC C2 or reverse SOCKS proxy tunneling (RSOX/RevSocket), including Go-compiled binaries executing from user-writable paths.
author: Security Arsenal Threat Intelligence
date: 2026/08/26
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection_path:
Image|contains:
- '\AppData\Local\Temp\'
- '\AppData\Roaming\'
- '\ProgramData\'
- '\Users\Public\'
selection_port:
DestinationPort:
- 443
- 8443
- 50051
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\teams.exe'
- '\onedrive.exe'
condition: selection_path and selection_port and not filter_browsers
falsepositives:
- Legitimate user-installed applications in AppData (Slack, Discord) - tune per environment
level: medium
tags:
- attack.command_and_control
- attack.t1572
- attack.t1090
// Helpdesk Hijackers + Sliver operator hunt — Microsoft Sentinel / Defender
// 1) Quick Assist abuse: quickassist.exe spawning script interpreters
let QAHunt = DeviceProcessEvents
| where TimeGenerated > ago(90d)
| where InitiatingProcessFileName =~ "quickassist.exe"
| where FileName in~ ("powershell.exe","pwsh.exe","cmd.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe")
| project QA_Time=TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, ReportId;
// 2) Network connections to known C2 / staging infrastructure
let C2Hunt = DeviceNetworkEvents
| where TimeGenerated > ago(90d)
| where RemoteUrl has_any ("scansec-upd.com","fine-work-team.com","timelevel12.com","zooparkko.com")
or RemoteIP == "31.58.209.241"
| project C2_Time=TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort;
// 3) PowerShell download cradles referencing campaign domains
let PSHunt = DeviceProcessEvents
| where TimeGenerated > ago(90d)
| where FileName in~ ("powershell.exe","pwsh.exe")
| where ProcessCommandLine has_any ("scansec-upd","timelevel12","fine-work-team","DownloadString","IEX","Invoke-WebRequest")
| project PS_Time=TimeGenerated, DeviceName, AccountName, ProcessCommandLine, InitiatingProcessFileName;
// Union all three views for triage
union QAHunt, C2Hunt, PSHunt
| sort by DeviceName
# Security Arsenal - Helpdesk Hijackers / GoGRPC + Sliver IOC Hunt
# Run elevated on suspected endpoints. Checks persistence, artifacts, and live connections.
$ErrorActionPreference = 'SilentlyContinue'
$report = @()
Write-Host "[*] Checking persistence mechanisms..." -ForegroundColor Cyan
# Registry Run keys
$runKeys = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run'
)
foreach ($key in $runKeys) {
Get-ItemProperty -Path $key | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|Temp|ProgramData|powershell' } |
ForEach-Object { $report += [pscustomobject]@{Type='RunKey'; Detail="$key :: $($_.Name) = $($_.Value)"} }
}
}
# Scheduled tasks invoking scripts or user-writable paths
Get-ScheduledTask | ForEach-Object {
$actions = ($_.Actions | Out-String)
if ($actions -match 'powershell|AppData|Temp|ProgramData|rundll32') {
$report += [pscustomobject]@{Type='ScheduledTask'; Detail="$($_.TaskName) :: $actions"}
}
}
Write-Host "[*] Checking for Quick Assist execution artifacts..." -ForegroundColor Cyan
$qaPaths = @("$env:LOCALAPPDATA\Packages\MicrosoftCorporationII.QuickAssist*")
if (Test-Path "$env:USERPROFILE\AppData\Local\Packages") {
Get-ChildItem "$env:USERPROFILE\AppData\Local\Packages" -Directory |
Where-Object Name -match 'QuickAssist' |
ForEach-Object { $report += [pscustomobject]@{Type='QuickAssistArtifact'; Detail=$_.FullName} }
}
# Quick Assist logs (session evidence)
$qaLogs = "$env:WINDIR\Logs\QuickAssist"
if (Test-Path $qaLogs) {
Get-ChildItem $qaLogs -Recurse | ForEach-Object {
$report += [pscustomobject]@{Type='QuickAssistLog'; Detail=$_.FullName}
}
}
Write-Host "[*] Checking network connections to known C2..." -ForegroundColor Cyan
$badDomains = @('scansec-upd.com','fine-work-team.com','timelevel12.com','zooparkko.com')
$badIP = '31.58.209.241'
Get-NetTCPConnection -State Established | ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess
if ($_.RemoteAddress -eq $badIP) {
$report += [pscustomobject]@{Type='C2Connection-IP'; Detail="$($proc.ProcessName) (PID $($_.OwningProcess)) -> $($_.RemoteAddress):$($_.RemotePort)"}
}
$resolved = (Resolve-DnsName -Name $_.RemoteAddress -ErrorAction SilentlyContinue).NameHost
foreach ($d in $badDomains) {
if ($resolved -match $d) {
$report += [pscustomobject]@{Type='C2Connection-DNS'; Detail="$($proc.ProcessName) -> $resolved ($($_.RemoteAddress))"}
}
}
}
Write-Host "[*] Hash-hunting staged payloads in user-writable paths..." -ForegroundColor Cyan
$badMD5 = @('3d1819de80c5a6633bc546f7b07086a4','7a818efa2a3af3130a3c4b69260a08aa',
'925dc63fc70de650127f41e00e9ffbf3','b42366dcf2612adb43ed0c617bfa98d4',
'b6a74fcadf1efca4e9f01658529556bc')
$badSHA256 = @('10df3451915ea35bcb17efe121415f24182680e2d07fc09df07ee695072104c1')
$scanPaths = @("$env:LOCALAPPDATA\Temp","$env:APPDATA","$env:PUBLIC","C:\ProgramData")
foreach ($p in $scanPaths) {
Get-ChildItem $p -Recurse -File -Include *.exe,*.dll,*.ps1 -ErrorAction SilentlyContinue | ForEach-Object {
$h = Get-FileHash $_.FullName -Algorithm MD5
if ($badMD5 -contains $h.Hash.ToLower()) {
$report += [pscustomobject]@{Type='HashMatch-MD5'; Detail=$_.FullName}
}
}
}
Write-Host "[*] Checking DNS cache for C2 lookups..." -ForegroundColor Cyan
Get-DnsClientCache | Where-Object { $d = $_.Entry; $badDomains | Where-Object { $d -match $_ } } |
ForEach-Object { $report += [pscustomobject]@{Type='DNSCache'; Detail="$($_.Entry) -> $($_.Data)"} }
Write-Host "`n===== HUNT RESULTS =====" -ForegroundColor Yellow
if ($report.Count -eq 0) { Write-Host "No indicators found on this host." -ForegroundColor Green }
else { $report | Format-Table -AutoSize | Out-String -Width 300 | Write-Host }
$report | Export-Csv -Path ".\iab_sliver_hunt_$(hostname)_$(Get-Date -Format yyyyMMdd_HHmm).csv" -NoTypeInformation
Response Priorities
Immediate (0–4 hours)
- Block all IOCs: Push
scansec-upd.com,fine-work-team.com,timelevel12.com,snake.zooparkko.com, and31.58.209.241to DNS sinkhole, web proxy, and firewall egress blocklists. Push all 28+ file hashes to EDR prevention policies. - Disable or restrict Quick Assist enterprise-wide unless a documented helpdesk workflow requires it. If required, gate it behind an allowlist and alert on every execution.
- Retro-hunt 90+ days: Run the KQL and PowerShell hunts above across the fleet. The IAB campaign has been active since January 2026 — assume dwell time.
- Identify Teams external access exposure: Audit Teams external communication settings; any user who accepted external Teams chats from unknown "helpdesk" contacts in the past 90 days is a triage priority.
24 Hours
- Credential reset for any host with confirmed Quick Assist or GoGRPC artifacts: RSOX/RevSocket access means the actor had interactive control — harvest everything: local creds, browser stores, session tokens, cached domain creds. Reset affected user passwords and revoke all active sessions/tokens (Entra ID sign-out, refresh token revocation).
- Assume ransomware staging: If GoGRPC or RSOX is confirmed, invoke incident response retainer and hunt for lateral movement, backup access, and staged exfil (S3Siphon → monitor egress to AWS S3 endpoints for anomalous volume).
- MFA posture check: Vishing operators often pair calls with MFA-fatigue or token-theft follow-ons. Verify phishing-resistant MFA (FIDO2) on privileged and helpdesk-adjacent accounts.
- Patch validation: Confirm no internet-facing ownCloud (CVE-2023-49105) or WordPress LiteSpeed Cache (CVE-2024-28000) instances exist in your environment or your supply chain's; patch or take offline.
1 Week
- Helpdesk identity verification architecture: Implement out-of-band verification for any remote-support request — helpdesk-initiated sessions must originate from the ITSM ticket system, never inbound chat/call. Publish a "we will never ask you to open Quick Assist" policy to all staff.
- Teams hardening: Restrict external Teams federation to approved partner domains; enable user-reporting workflow for suspicious external contacts.
- Egress segmentation: Block outbound gRPC/non-HTTP traffic on 443 that fails TLS inspection or JA3/JA4 allowlisting; alert on direct-to-IP TLS from user endpoints (defeats SOCKS pivots like RSOX).
- Application control: Deploy WDAC/AppLocker rules blocking unsigned executables in user-writable paths — this breaks the GoGRPC/BlindDoor staging pattern across all four variants.
- Tabletop exercise: Run a vishing-to-ransomware scenario with the SOC and helpdesk; measure time-to-detection against the Sigma rules deployed above.
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.