Classification: TLP:WHITE | Intelligence Type: Active Malware Campaigns & Criminal Tooling
Threat Summary
AlienVault OTX has published analysis (via AhnLab ASEC research) detailing active abuse of Suo5, a high-performance HTTP/HTTPS tunneling tool, by threat actors pivoting from compromised perimeter web servers into internal enterprise networks. This is not theoretical tooling — Suo5 is being observed in real intrusions, primarily deployed against IIS/.NET environments, though the tool natively supports Java, PHP, and Nginx targets as well.
The attack chain follows a consistent pattern:
- Initial access — exploitation of a public-facing web application or arbitrary file upload vulnerability on a web server.
- Tunnel deployment — the attacker drops a Suo5 server-side component (a script/binary tailored to the web stack — e.g., an
.aspxor.jsppayload) onto the compromised server. - Pivot establishment — Suo5 relays TCP traffic over standard HTTP/HTTPS, exposing a SOCKS5 proxy that gives the attacker direct access to internal systems that are not internet-routable.
- Lateral movement — RDP, SMB, WinRM, and internal web portals become reachable through the tunnel, bypassing perimeter firewalls and many network monitoring controls because all traffic is wrapped in legitimate-looking web sessions.
The objective is persistent covert access to internal network segments using the compromised web server as a relay. Because Suo5 tunnels through port 443/80 with encrypted or chunked HTTP semantics, it defeats naïve egress filtering and blends with normal web traffic. Two deployment methods have been confirmed in the wild: file upload exploitation and post-exploitation manual placement.
This is a high-severity finding for any organization running internet-facing IIS, Tomcat, PHP, or Nginx infrastructure: a single web shell + Suo5 deployment converts a perimeter compromise into full internal network access.
Threat Actor / Malware Profile: Suo5
Attribution: Unknown — Suo5 is an open-source tunneling tool available on GitHub and has been adopted by multiple intrusion sets, including China-nexus actors and ransomware affiliates, as a replacement for older tunneling tools like Neo-reGeorg and reGeorg.
Distribution Method:
- Uploaded to compromised web servers via file upload vulnerabilities, web shells (e.g., China Chopper, Behinder/冰蝎 follow-on), or post-exploitation tooling.
- Deployed as a server-side script matched to the target stack:
.aspxfor IIS/.NET,.jspfor Java/Tomcat,.phpfor PHP, or a standalone binary for Nginx/Linux.
Payload Behavior:
- Establishes a SOCKS5 proxy tunneled over HTTP/HTTPS between the attacker's client and the compromised server.
- Relays raw TCP traffic to arbitrary internal destinations (RDP :3389, SMB :445, WinRM :5985, internal databases, intranet portals).
- Supports multiple transmission modes (full-duplex streaming, half-duplex chunked) selected dynamically based on the web environment's capabilities, making it resilient across IIS, Nginx, and Java middleware where older tunnel tools fail.
C2 Communication:
- All traffic rides on standard HTTP/HTTPS to the web server itself — there is no separate C2 domain or IP. The compromised server is the C2 endpoint.
- Requests to the Suo5 endpoint typically feature distinctive patterns: long-lived connections,
Content-Type: application/octet-stream, unusual cookie/session header usage, and sustained bidirectional data transfer inconsistent with normal page loads.
Persistence Mechanism:
- Persistence is inherited from the web shell or upload vector — the Suo5 script file itself persists in web-accessible directories (e.g.,
C:\inetpub\wwwroot\,C:\inetpub\wwwroot\aspnet_client\, or application-specific paths). - Attackers frequently drop multiple tunnel endpoints across different virtual directories as redundancy.
Anti-Analysis Techniques:
- Traffic is encrypted when HTTPS is used; even in HTTP mode, payloads are binary/octet-stream encoded.
- File names are often randomized or masquerade as legitimate application files (e.g.,
error.aspx,upload.aspx,temp.jsp). - No registry artifacts, no scheduled tasks, no services — disk footprint is a single script file, minimizing detection surface.
IOC Analysis
The pulse contains 3 file-hash indicators covering a single Suo5-related sample across MD5, SHA1, and SHA256:
| Type | Indicator |
|---|---|
| FileHash-MD5 | 810726bb14e100a122cd8fc189eb087f |
| FileHash-SHA1 | da6918a86f2165f44539c54b22d457660101228c |
| FileHash-SHA256 | 5fa12b9a16d6d5bab38b4a6d8c4cd46afbcd8f54786131c618588073ebabd1a5 |
Operationalization guidance for SOC teams:
- Push all three hashes to EDR blocklists immediately (Microsoft Defender, CrowdStrike, SentinelOne, etc.). File-hash IOCs are low-noise, high-confidence — Suo5 binaries and server components are not legitimate enterprise software.
- Hunt historically, not just forward-looking. Hash-match against EDR telemetry for the past 90 days across web server and DMZ assets. Tunneling tools often sit dormant for weeks before activation.
- Do not rely on hashes alone. Suo5 server-side components are frequently recompiled or delivered as plain script source (
.aspx/.jsp), which trivially evades hash matching. Behavioral detection (below) is mandatory. - Decode with standard tooling: use CyberChef or
file/ssdeepfor triage; submit unknown samples to sandbox detonation (ANY.RUN, Hybrid Analysis) to confirm SOCKS5 tunneling behavior. Note: because Suo5 is open-source, expect hash churn — attackers recompile constantly. - Watch for the absence of network IOCs. This pulse deliberately has no IPs or domains — the C2 is your own web server. Shift hunting effort from egress indicators to web server process and connection anomalies.
Detection Engineering
Sigma Rules
---
title: Suo5 Tunneling Endpoint Deployment in IIS Web Root
id: 9f2a1c44-7b3e-4d1a-a8c5-suo500000001
status: experimental
description: Detects creation of script files (.aspx, .ashx, .jsp, .php) in IIS web root or related directories consistent with Suo5 tunneling tool deployment via file upload exploitation.
author: Security Arsenal Threat Intelligence
references:
- https://asec.ahnlab.com/en/95879/
- https://otx.alienvault.com/
date: 2026/10/19
logsource:
category: file_event
product: windows
detection:
selection_path:
TargetFilename|contains:
- '\inetpub\wwwroot\'
- '\inetpub\wwwroot\aspnet_client\'
- '\www\'
- '\tomcat\webapps\'
selection_ext:
TargetFilename|endswith:
- '.aspx'
- '.ashx'
- '.asmx'
- '.jsp'
- '.php'
filter_legit:
Image|contains:
- '\Microsoft.NET\Framework\'
- '\visual studio\'
condition: selection_path and selection_ext and not filter_legit
falsepositives:
- Legitimate web application deployments and CI/CD pipelines
- Developer activity on production servers (should be rare)
level: high
tags:
- attack.persistence
- attack.t1505.003
- attack.t1105
---
title: Suspicious SOCKS5 Tunneling Network Activity from IIS Worker Process
id: 9f2a1c44-7b3e-4d1a-a8c5-suo500000002
status: experimental
description: Detects w3wp.exe (IIS worker process) initiating outbound internal network connections to lateral-movement ports (RDP, SMB, WinRM), consistent with Suo5 SOCKS5 pivoting through a compromised web server.
author: Security Arsenal Threat Intelligence
references:
- https://asec.ahnlab.com/en/95879/
date: 2026/10/19
logsource:
category: network_connection
product: windows
detection:
selection_image:
Image|endswith:
- '\w3wp.exe'
- '\tomcat9.exe'
- '\httpd.exe'
- '\nginx.exe'
selection_ports:
DestinationPort:
- 3389
- 445
- 5985
- 5986
- 22
- 1433
- 3306
selection_internal:
DestinationIp|startswith:
- '10.'
- '172.16.'
- '192.168.'
condition: selection_image and selection_ports and selection_internal
falsepositives:
- Web applications legitimately connecting to internal databases (tune per-environment baselines)
- Monitoring/scanner services running under IIS app pools
level: critical
tags:
- attack.command_and_control
- attack.t1090
- attack.t1572
- attack.lateral_movement
- attack.t1021
---
title: Long-Lived HTTP Tunnel Session Indicators on Web Servers
id: 9f2a1c44-7b3e-4d1a-a8c5-suo500000003
status: experimental
description: Detects execution of suspicious process trees or command lines under web server worker processes that indicate post-exploitation tunnel setup, including Suo5 client/server execution and SOCKS5 proxy configuration.
author: Security Arsenal Threat Intelligence
references:
- https://asec.ahnlab.com/en/95879/
date: 2026/10/19
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\w3wp.exe'
- '\tomcat9.exe'
- '\java.exe'
selection_cmd:
CommandLine|contains:
- 'suo5'
- 'socks5'
- '127.0.0.1:1111'
- '-mode http'
- 'proxy socks'
condition: selection_parent and selection_cmd
falsepositives:
- Rare; SOCKS5 tooling spawned from web worker processes is almost never legitimate
level: critical
tags:
- attack.command_and_control
- attack.t1090.001
- attack.t1059
Microsoft Sentinel KQL Hunt
// Hunt: Suo5 tunneling artifacts — IIS worker processes spawning shells or making internal lateral connections
let lookback = 14d;
let suo5_hashes = dynamic([
"810726bb14e100a122cd8fc189eb087f",
"da6918a86f2165f44539c54b22d457660101228c",
"5fa12b9a16d6d5bab38b4a6d8c4cd46afbcd8f54786131c618588073ebabd1a5"
]);
let HashHits = (
DeviceFileEvents
| where TimeGenerated > ago(lookback)
| where MD5 in (suo5_hashes) or SHA1 in (suo5_hashes) or SHA256 in (suo5_hashes)
| project HitType="IOC File Hash", TimeGenerated, DeviceName, FolderPath, FileName, SHA256, InitiatingProcessFileName
);
let WebShellSpawn = (
DeviceProcessEvents
| where TimeGenerated > ago(lookback)
| where InitiatingProcessFileName in~ ("w3wp.exe", "tomcat9.exe", "java.exe", "httpd.exe", "nginx.exe")
| where FileName in~ ("cmd.exe", "powershell.exe", "net.exe", "net1.exe", "whoami.exe", "ipconfig.exe", "nltest.exe", "certutil.exe")
| project HitType="Web Worker Shell Spawn", TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, AccountName
);
let InternalPivot = (
DeviceNetworkEvents
| where TimeGenerated > ago(lookback)
| where InitiatingProcessFileName in~ ("w3wp.exe", "tomcat9.exe", "java.exe", "nginx.exe")
| where RemotePort in (3389, 445, 5985, 5986, 22, 1433, 3306)
| where RemoteIP has_any ("10.", "172.16.", "192.168.")
| summarize Connections=count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), RemoteIPs=make_set(RemoteIP), Ports=make_set(RemotePort) by DeviceName, InitiatingProcessFileName
| project HitType="Web Server Internal Pivot", DeviceName, InitiatingProcessFileName, Connections, FirstSeen, LastSeen, RemoteIPs, Ports
);
union HashHits, WebShellSpawn, InternalPivot
| sort by TimeGenerated desc
PowerShell IOC Hunt Script
# Suo5 Tunneling Hunt — run on suspected web servers or via remote sweep
# Checks: IOC hashes, suspicious web root scripts, anomalous w3wp connections, recent script drops
$iocHashes = @(
"810726bb14e100a122cd8fc189eb087f", # MD5
"da6918a86f2165f44539c54b22d457660101228c", # SHA1
"5fa12b9a16d6d5bab38b4a6d8c4cd46afbcd8f54786131c618588073ebabd1a5" # SHA256
)
$webRoots = @(
"$env:SystemDrive\inetpub\wwwroot",
"$env:SystemDrive\inetpub",
"C:\xampp\htdocs",
"C:\Program Files\Apache Software Foundation",
"C:\nginx"
)
$findings = @()
Write-Host "[1/4] Scanning web roots for IOC hash matches and recently dropped scripts..." -ForegroundColor Cyan
foreach ($root in $webRoots) {
if (Test-Path $root) {
Get-ChildItem -Path $root -Recurse -Include *.aspx,*.ashx,*.asmx,*.jsp,*.php,*.dll,*.exe -ErrorAction SilentlyContinue |
ForEach-Object {
$md5 = (Get-FileHash $_.FullName -Algorithm MD5 -ErrorAction SilentlyContinue).Hash
$sha1 = (Get-FileHash $_.FullName -Algorithm SHA1 -ErrorAction SilentlyContinue).Hash
$sha256 = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
if ($iocHashes -contains ($md5, $sha1, $sha256 | Where-Object { $_ } | ForEach-Object { $_.ToLower() })) {
$findings += [PSCustomObject]@{ Type="IOC HASH MATCH"; Path=$_.FullName; SHA256=$sha256 }
}
# Flag scripts created or modified in last 30 days
if ($_.LastWriteTime -gt (Get-Date).AddDays(-30)) {
$findings += [PSCustomObject]@{ Type="Recent web script"; Path=$_.FullName; SHA256=$sha256 }
}
# Content scan for Suo5/SOCKS5 markers in script files
if ($_.Extension -match '\.(aspx|ashx|jsp|php)$') {
$content = Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue
if ($content -match 'suo5|socks5|Socks5|Socket.*proxy|chunked.*tunnel') {
$findings += [PSCustomObject]@{ Type="SUSPICIOUS CONTENT"; Path=$_.FullName; SHA256=$sha256 }
}
}
}
}
}
Write-Host "[2/4] Checking for anomalous internal connections from web worker processes..." -ForegroundColor Cyan
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
Where-Object { $_.RemotePort -in 3389,445,5985,5986,22,1433,3306 -and
$_.RemoteAddress -match '^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)' } |
ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
if ($proc.ProcessName -match 'w3wp|java|tomcat|nginx|httpd') {
$findings += [PSCustomObject]@{ Type="WEB PROCESS PIVOT"; Path="$($proc.ProcessName) -> $($_.RemoteAddress):$($_.RemotePort)"; SHA256="n/a" }
}
}
Write-Host "[3/4] Enumerating IIS app pools and recent worker process anomalies..." -ForegroundColor Cyan
Get-Process w3wp -ErrorAction SilentlyContinue | ForEach-Object {
$findings += [PSCustomObject]@{ Type="w3wp running (verify)"; Path="PID $($_.Id) — check loaded modules for unsigned DLLs"; SHA256="n/a" }
}
Write-Host "[4/4] Checking web logs for tunneling request patterns (IIS default path)..." -ForegroundColor Cyan
$logPath = "$env:SystemDrive\inetpub\logs\LogFiles"
if (Test-Path $logPath) {
Get-ChildItem $logPath -Recurse -Filter *.log -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending | Select-Object -First 5 |
ForEach-Object {
Select-String -Path $_.FullName -Pattern 'application/octet-stream' -ErrorAction SilentlyContinue |
Select-Object -First 20 |
ForEach-Object { $findings += [PSCustomObject]@{ Type="OCTET-STREAM LOG HIT"; Path=$_.Path; SHA256=$_.LineNumber } }
}
}
Write-Host "`n===== HUNT RESULTS =====" -ForegroundColor Yellow
if ($findings.Count -eq 0) { Write-Host "No Suo5 indicators found." -ForegroundColor Green }
else { $findings | Format-Table -AutoSize | Out-String -Width 300 | Write-Host }
$findings | Export-Csv -Path ".\suo5_hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
Response Priorities
Immediate (0–4 hours)
- Block the three file hashes at EDR and email/web gateways; push to all endpoint and server policies.
- Sweep all internet-facing web servers (IIS, Tomcat, Nginx, PHP) with the hunt script above; prioritize DMZ assets and any server with a history of web application vulnerabilities.
- Audit web-accessible directories for recently created
.aspx,.ashx,.jsp, or.phpfiles, especially inaspnet_client, upload directories, and temp paths. - Kill suspicious w3wp.exe outbound connections to internal RFC1918 addresses on lateral-movement ports (3389/445/5985) — a healthy web app tier should rarely initiate these.
24 Hours
- If any Suo5 endpoint is confirmed, assume internal credential exposure: attackers pivoting via SOCKS5 typically target RDP and SMB, meaning interactive logons occurred. Force password resets for all accounts observed authenticating to or from the compromised server, and audit for newly created local/domain accounts.
- Review IIS access logs (and reverse proxy/WAF logs) for long-duration requests,
application/octet-streamPOSTs, and repeated connections to the uploaded script path — identify the source IPs to scope dwell time. - Isolate the compromised web server from internal VLANs pending forensic imaging; do not simply delete the tunnel file.
- Verify whether the initial access vector (file upload flaw, unpatched CVE) is still open — patch or take the application offline before re-exposing the host.
1 Week
- Segment the DMZ: web servers should have zero standing network path to RDP/SMB/WinRM on internal hosts. Enforce deny-by-default egress rules from web tiers to internal management ports.
- Deploy the Sigma detections above into the SIEM and validate with atomic tests; tune per-environment web app baselines.
- Implement file integrity monitoring (FIM) on web root directories with alerting on any new script file creation outside deployment windows.
- Adopt egress TLS inspection or JA3/JA4 fingerprinting at the DMZ boundary to surface long-lived tunneled sessions masquerading as HTTPS.
- Conduct a threat hunt retrospective across all perimeter web infrastructure — Suo5 adoption is growing, and one discovered tunnel frequently indicates other footholds.
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.