LSN โ€” Local Sovereign Network

๐Ÿ”ด ACTIVE โ€” Residential Proxy Botnet ยท 102 Compromised Devices ยท 4,080 Connections ยท 58 Days ยท SSH Tunnel Proxy Verification Network

TI-2026-016 โ€” "Phantom Pipes" โ€” The Vietnamese Residential Proxy Botnet: 102 Hacked Home Routers Selling SSH Tunnel Access Through Viettel's CGNAT

A commercial residential proxy network operating exclusively on Vietnam's largest telecommunications provider (Viettel Group, 80M subscribers). Unlike traditional brute-force botnets, this operation's sole purpose is credential verification and SSH tunnel proxy validation โ€” each compromised router is tested for its ability to forward traffic, then added to a paid proxy pool. The botnet uses a frozen 6.5-year-old Python library (AsyncSSH 2.1.0, released November 2019) embedded in persistent router firmware, rotates through 5 distinct CGNAT/DHCP address pools, and operates each IP for a maximum of 6 minutes before discarding it. With 102 confirmed nodes across both consumer broadband (AS7552) and corporate backbone (AS24086), this represents a fraction of what is likely a thousands-node residential proxy service selling "clean" Vietnamese IP addresses to customers needing to bypass anti-bot protections, geo-restrictions, and IP reputation systems.
๐Ÿ‡ป๐Ÿ‡ณ 100% Vietnam โ€” Viettel ISP 102 Compromised Residential Devices 4,080 TCP Connections ยท 526 Auth Sessions 100% Success ยท 0 Commands ยท Pure Verification AsyncSSH 2.1.0 โ€” Frozen 2019 Malware HASSH: fda360b1b4f4d345... SSH Tunnel โ†’ ip-who.com (Proxy Test) 6-Minute IP Lifecycle ยท Never Reuses 5 CGNAT DHCP Pools ACTIVE โ€” Growing +1.5 Nodes/Day

๐Ÿ“‹ Executive Summary

A sophisticated residential proxy botnet operates exclusively on Vietnam's Viettel telecommunications network, leveraging 102 compromised residential broadband devices as SSH tunnel proxies. Unlike traditional brute-force botnets that seek to install malware, this network's sole purpose is to verify SSH credentials and test proxy connectivity โ€” the hallmark of a commercial residential proxy service operating on hacked home routers.

The smoking gun: AbuseIPDB reports from other honeypot operators capture post-authentication behavior โ€” SSH direct-tcpip tunnel attempt. Destination: ip-who.com:80 โ€” the botnet verifies each proxy's exit IP before adding it to the commercial pool. Our honeypot observes the credential verification phase: 100% authentication success rate (they only test known-good defaults), zero commands executed, zero malware downloads โ€” just connect, authenticate, disconnect. The actual proxy traffic flows through other compromised servers.

Each IP is active for a maximum of 6 minutes (91 parallel connections in that window), then never seen again โ€” consistent with CGNAT dynamic IP rotation on residential broadband. The malware persists on the physical device (likely a home router), continuing operation regardless of which public IP it receives. We estimate 15-25 physical devices generating 102 unique IPs over 58 days of observation, with the botnet actively growing at ~1.5 new IPs per day.

๐Ÿฏ Campaign Intelligence โ€” 2026-03-24 โ†’ 2026-05-20 (58 Days, Ongoing)
102
Compromised IPs
4,080
TCP Connections
526
Auth Sessions
100%
Success Rate
0
Commands / Downloads
6 min
Max IP Lifetime

๐Ÿงฌ The Forensic Fingerprint โ€” A 6.5-Year-Old Ghost

Every single connection from all 102 IPs presents the identical SSH client banner:

Banner:  SSH-2.0-AsyncSSH_2.1.0
HASSH:   fda360b1b4f4d3455cb75c6e7edb1d11

AsyncSSH 2.1.0 was released on November 30, 2019 โ€” it is now 34 versions behind the current release (2.23.0, May 2026). The malware author embedded this library into their router implant in late 2019/early 2020 and never updated it. This is the permanent forensic fingerprint of frozen botnet firmware โ€” updating router malware risks bricking the device or triggering detection, so operators leave the initial build running for years.

The HASSH algorithm string includes deprecated ciphers (arcfour, blowfish-cbc, 3des-cbc) and weak KEX (diffie-hellman-group1-sha1, rsa1024-sha1) โ€” the exact default configuration of AsyncSSH 2.1.0 with zero customization. This means the malware is using the library straight out of the box with no attempt to disguise its fingerprint.

๐ŸŒ Infrastructure โ€” Viettel's Compromised Residential Network

FieldValue
ISPViettel Group (Tแบญp ฤ‘oร n Viแป…n thรดng Quรขn ฤ‘แป™i)
TypeCable/DSL/ISP โ€” Residential Broadband
Country๐Ÿ‡ป๐Ÿ‡ณ Vietnam
AS NumbersAS7552 (61 nodes) + AS24086 (31 nodes)
Subscribers~80 million (Vietnam's largest telecom)
Parent OrganizationMinistry of National Defence, Vietnam
PeeringDBTraffic: 1-5 Tbps ยท 8 IX exchanges ยท Global scope
RDAP ContactsIRT-VNNIC-AP ยท Nguyen Dang Tiep ยท Tran Van Thanh
IP Classification"Fixed Line ISP" โ€” residential broadband subscribers
Shodan Visibility91/92 IPs return "No information available" โ€” fully NAT'd

๐Ÿ—บ๏ธ The 5 CGNAT/DHCP Pools

All 102 nodes map to exactly 5 dynamic IP allocation pools, confirming residential broadband subscribers receiving rotating CGNAT addresses:

PoolPrefixIPs SeenEvidence
Pool A27.79.0.0/18313rd octets 0-47 โ€” single large DHCP range
Pool B171.231.176.0/19263rd octets 176-199 โ€” contiguous allocation
Pool C116.110.0.0/1616Two clusters: .9-.30 and .145-.217
Pool D116.99.168.0/21153rd octets 168-175 โ€” tight DHCP pool
Pool E171.243.148.0/2353rd octets 149-151 โ€” smallest pool
๐Ÿ’ก Key Insight: Each "node" is a compromised home router or IoT device. When Viettel's DHCP server rotates the subscriber's IP (every 24-48h), the malware maintains persistence and continues with the new IP. We observe 102 unique IPs but estimate 15-25 physical devices seen across multiple rotations over 58 days.

๐Ÿ’€ Attack Pattern โ€” The Proxy Verification Sequence

Phase 1: Credential Spray (what our honeypot captures)

T+0.0s  โ”œโ”€ SSH connect (port 60188) โ†’ admin:admin    โœ“
T+0.1s  โ”œโ”€ SSH connect (port 60200) โ†’ root:root123   โœ“
T+2.0s  โ”œโ”€ SSH connect (port 58562) โ†’ root:admin     โœ“
T+3.0s  โ”œโ”€ SSH connect (port 58590) โ†’ admin:123456   โœ“
T+3.5s  โ”œโ”€ SSH connect (port 58604) โ†’ test:test      โœ“
  ...     (all 12 creds tested in PARALLEL)
T+90s   โ””โ”€ All connections closed. 91 TCP sessions. 0 commands.

Duration: 6 minutes โ”‚ Success: 100% โ”‚ Post-auth: NOTHING

Phase 2: Tunnel Verification (captured by other honeypots via AbuseIPDB)

1. Authenticate with working credential
2. Request SSH direct-tcpip channel โ†’ ip-who.com:80
3. HTTP GET / โ†’ receive external IP in response
4. Verify: exit IP matches expected proxy address?
5. If YES โ†’ mark as ACTIVE PROXY in commercial pool
6. Disconnect. Total: <30 seconds.
๐Ÿšจ Evidence from AbuseIPDB: Report for 116.99.173.23: "SSH direct-tcpip tunnel attempt. Destination: ip-who.com:80" โ€” This is a proxy connectivity test. The bot authenticates, opens an SSH tunnel to an IP-checking website, verifies the exit address, then disconnects. The residential IP is now confirmed as a working proxy endpoint.

Phase 3: Commercial Proxy Usage (inferred from business model)

Once verified, the residential IP joins a proxy pool sold to customers needing: web scraping with residential IPs (bypass anti-bot), ad fraud (clicks from "real" IPs), account creation/credential stuffing (avoid bans), censorship circumvention (exit through residential IPs).

๐Ÿ”‘ The Credential Dictionary โ€” Minimal but Effective

#UsernamePasswordIPs UsingTarget
1adminadmin46Router admin panels
2rootadmin46Linux + router default
3admin12345647Common weak password
4testtest46Test/demo accounts
5root1234545Numeric default
6rootpassword45English default
7rootroot46Self-referential
8rootroot12345Common variant
9rootadmin12345Admin variant
10adminpassword43English default
11roottoor44Reversed root
12rootabc12321Dictionary word

On other targets (extracted from AbuseIPDB report logs), the botnet uses an expanded 41-username dictionary including: oracle, ftp, nginx, squid, ubnt (Ubiquiti routers), belkinstyle (Belkin routers!), nikita, rebecca, config, installer, support. The presence of "belkinstyle" โ€” a known Belkin home router default โ€” confirms the botnet specifically targets consumer networking equipment.

โฑ๏ธ Temporal Analysis โ€” Machine Precision

IP Lifecycle: Maximum active time = 6 minutes (0.1 hours). Average = under 1 minute. Each IP is used exactly once then permanently discarded.

Daily Pattern: Exactly 2 IPs/day (64% of days), 3 IPs (14%), 4 IPs (20%). Never 0, 1, or 5+. This is automated scheduling, not random.

Day-of-Week: Wednesday peaks (124 sessions, 20 IPs), Sunday troughs (24 sessions, 4 IPs) โ€” correlates with business-day proxy demand in UTC+7.

Growth: Linear +1.5 new IPs per day for 58 days. The botnet is actively expanding through ongoing exploitation of newly-deployed vulnerable routers.

๐Ÿ”ฌ Parallel Connection Forensics

A single visit from 27.79.44.126 on March 25, 2026 at 23:14 UTC:

23:14:09 โ”ฌโ”€โ”€ port 60188 (admin:admin)     โ”€โ”€โ”€ 3.5s
23:14:10 โ”œโ”€โ”€ port 60200 (root:root123)    โ”€โ”€โ”€ 3.7s    โ† OVERLAPPING
23:14:30 โ”œโ”€โ”€ port 58562 (root:admin)      โ”€โ”€โ”€ 7.4s
23:14:33 โ”œโ”€โ”€ port 58590 (admin:123456)    โ”€โ”€โ”€ 7.2s    โ† 3 CONCURRENT
23:14:33 โ”œโ”€โ”€ port 58604 (test:test)       โ”€โ”€โ”€ 7.0s    โ† 3 CONCURRENT
23:14:38 โ”œโ”€โ”€ port 38456 (admin:password)  โ”€โ”€โ”€ 9.7s    โ† 4 CONCURRENT
         โ”‚   ... 85 more connections ...
23:21:00 โ””โ”€โ”€ port 53884 (final)           โ”€โ”€โ”€ 3.8s

Total: 91 TCP sessions in 6m51s
Overlapping session pairs: 124
Peak concurrency: 5-6 simultaneous SSH sessions
๐Ÿ’ก Analysis: This is NOT a simple for loop โ€” it's a Python asyncio event-driven scanner using the AsyncSSH library to fire multiple connections simultaneously. The source port gaps (60188โ†’60200โ†’58562) show the OS recycling ephemeral ports from a CGNAT device handling hundreds of concurrent connections. The device behind this IP is simultaneously probing dozens of targets in parallel โ€” we are one of many.

๐ŸŒ Corroboration โ€” What the World Sees

SourceFinding
GreyNoise9/9 tested IPs classified as MALICIOUS โ€” internet-wide mass scanning confirmed
AbuseIPDB942 reports from 780 distinct reporters โ€” 100% abuse confidence on all IPs
PulsediveListed in Blocklist.de + Brute Force Blocker feeds โ€” tagged "SSH Brute Force"
VirusTotal116.99.173.23: 9/57 engines flag as malicious. ET Compromised list.
OTX/AlienVaultAppears in 3 threat intelligence pulses (community reports)
Shodan91/92 IPs invisible โ€” zero exposed ports. Fully residential NAT.
ThreatBookTags: "Zombie, Dynamic IP" โ€” confirms compromised residential device
CrowdSecMultiple IPs detected and banned by CrowdSec community blocklist
Blocklist.deActive listings for SSH brute-force across multiple IPs
BinaryDefenseListed in BinaryDefense IP blocklist

๐Ÿง  Attribution โ€” Commercial Proxy Operator

IndicatorAssessment
Tool versionFrozen at 2019 release โ€” never updated in 6.5 years
IP rotationPerfect ephemeral usage โ€” never reuses IPs (OPSEC)
ParallelismHigh-performance async I/O โ€” skilled Python developer
Target selectionMinimal dictionary โ€” efficiency over coverage
Post-authTunnel test only โ€” zero filesystem interaction
Working hoursWednesday peak, Sunday low โ€” business operation
Growth rateLinear +1.5 nodes/day โ€” organic device recruitment
Geographic focus100% single ISP โ€” intimate knowledge of Viettel infrastructure

Likely Actor Type: Commercial Residential Proxy Provider

  • Motivation: Financial โ€” selling proxy access ($2,000-$10,000/month estimated)
  • Capability: Medium-high โ€” custom AsyncSSH automation, persistent router malware
  • Sophistication: High OpSec โ€” no forensic traces, ephemeral IPs, zero noise
  • Scale: 102+ nodes in single ISP, likely thousands across Vietnam
  • Business model: Proxy-as-a-Service with "clean" Vietnamese residential IPs

Why Viettel? Massive subscriber base (80M+), CGNAT provides built-in IP rotation anonymity, poor home router security culture, and the ISP is military-owned โ€” abuse reporting is bureaucratic and ineffective. VNNIC's WHOIS even self-flags its abuse contact as "invalid".

๐Ÿšจ Detection Signatures

# HASSH fingerprint (exact match)
hassh: fda360b1b4f4d3455cb75c6e7edb1d11

# SSH banner (string match)
client_version: "SSH-2.0-AsyncSSH_2.1.0"

# Behavioral indicators (any combination)
- 100% auth success with default credentials
- Zero commands post-authentication
- SSH direct-tcpip tunnel attempt to ip-who.com (or similar IP-check service)
- Multiple parallel SSH connections (>5 concurrent from same IP)
- Total visit duration < 7 minutes
- No SSH key presented (password-only authentication)
- Source: Vietnamese residential ISP (AS7552 / AS24086)

๐ŸŽฏ Conclusions

  1. Residential proxy botnets are invisible to traditional security. With zero commands, zero malware downloads, and 100% authentication "success," these connections look benign to most IDS systems. The only indicator is the SSH tunnel request โ€” which many honeypots don't even log.
  2. CGNAT is both the vulnerability and the camouflage. Dynamic IP assignment means each node gets a "fresh" IP every 24-48 hours, making blacklisting futile. The same physical device appears as dozens of different IPs over time, while thousands of legitimate subscribers also use those same IPs later.
  3. Frozen malware creates permanent forensic artifacts. AsyncSSH 2.1.0 from 2019 is a gift to defenders โ€” its HASSH fingerprint will never change because the router malware cannot be safely updated. This single hash identifies the entire botnet forever.
  4. The business model explains the behavior. Traditional botnets are noisy (malware downloads, command execution, lateral movement). This one is silent because it's not trying to compromise โ€” it's verifying inventory for a proxy service. Silence IS the business model.
  5. Military-owned ISPs create accountability gaps. Viettel is owned by Vietnam's Ministry of Defence. International abuse reports go to VNNIC contacts that WHOIS itself flags as invalid. There is no effective mechanism to compel remediation of 80 million subscribers' home routers.
The Uncomfortable Truth

Your home router might already be a node in a commercial proxy network. If you're on a major residential ISP, using default credentials, and your router hasn't had a firmware update in years โ€” congratulations, someone might be selling your IP address for $0.05/request to people who need to look like "normal" internet users. The botnet operator doesn't want to hack you โ€” they just want to route traffic through you. You'd never notice. The traffic is encrypted. Your internet works fine. And somewhere, a scraper, a fraudster, or worse is wearing your IP address like a mask.

Published
June 1, 2026 ยท Shuffle-On Intelligence Platform
Methodology: Passive SSH honeypot collection (Cowrie) ยท No unauthorized access was performed
โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous Honeypot Field Reports โ€” 18 / 20 Next โ†’