TI-2026-046D โ The Multi-Vector Operators
๐ Series: The Web Siege
Letter D of The Web Siege โ a forensic series documenting multi-vector attacks at our Traefik ingress during June 2026.
In the previous letters, we dissected specific attack types: A: .env credential harvesters, B: WordPress ghost shell checkers, C: the reconnaissance spectrum. Each examined HTTP traffic in isolation.
This letter breaks the walls down. Because 39% of the IPs we observed attacking HTTP are simultaneously attacking SSH. They donโt specialize. They donโt choose a protocol. They scan everything, everywhere, all at once.
Cross-referenced: 4,459 web-threats IPs ร 8,000+ SSH honeypot IPs ร CrowdSec intelligence ร MikroTik address lists. The overlap is not coincidence. It is architecture.
๐ฅ The Number That Changes Everything
Think about what this means. An IP address probing your web server for /server/application.yml is, at the same time, trying root:admin123 against your SSH port. The same infrastructure. The same operator. The same cloud billing account.
This is not two separate threat actors coincidentally sharing an IP. This is one platform, one tool chain, running parallel attacks across every available protocol. The TCP port number is a parameter, not a specialization.
๐ The Cloud Provider Overlap Map
Every major cloud provider shows multi-vector behavior. The overlap rate โ percentage of HTTP IPs that also appear in the SSH honeypot โ measures how weaponized each providerโs infrastructure has become:
| Provider | ASN | HTTP IPs | In SSH Honeypot | Overlap | Visual |
|---|---|---|---|---|---|
| โ๏ธ Scaleway | AS12876 | 13 | 12 | 92% | |
| ๐ Advin Services | AS22295 | 51 | 44 | 86% | |
| ๐ฆ Amazon (AES) | AS14618 | 146 | 122 | 84% | |
| โ๏ธ Google Cloud | AS396982 | 575 | 444 | 77% | |
| โ๏ธ Microsoft | AS8075 | 436 | 267 | 61% | |
| โ๏ธ DigitalOcean | AS14061 | 176 | 74 | 42% | |
| ฮฃ Combined | 1,397 | 963 | 69% |
Scaleway leads at 92% โ nearly every Scaleway IP in our HTTP logs also appears in the SSH honeypot. But the sheer volume belongs to Google Cloud (444 dual-protocol IPs) and Microsoft (267). Amazonโs 84% rate across 146 IPs makes it the most weaponized hyperscaler per capita.
๐งฌ The Evolution of Credential Harvesting: Advin Services
๐ AS22295 โ Advin Services LLC โ 51 IPs โ 86% SSH Overlap
Advin is not the largest fleet. But it is the most evolved. While Google Cloudโs dead-device fleet still scans for .env files and Spring Boot configs (the 2020 playbook), Advin has adapted its wordlist for 2026 infrastructure:
๐ค AI Infrastructure
/.openai/config.json
/.openclaw/agents/main/agent/models.json
OpenAI API keys = $$$. One leaked key can run thousands in compute before the owner notices.
โธ๏ธ Kubernetes & Container
/.kube/config
/.docker/config.json
Kubernetes config = cluster admin. Docker config = registry credentials. Game over.
โ๏ธ Cloud Provider Secrets
/config/gcp-credentials.json
/config/service-account.json
GCP service account = full cloud access. Deploy cryptominers, exfiltrate data, pivot anywhere.
๐ Traditional Credentials
/.env, /.env.local, /.env.save
/.git/refs/heads/main
Still hunting .env โ but itโs just one target class among many now.
This is what credential harvesting looks like in 2026. The .env file is still there, but itโs joined by AI API keys, Kubernetes cluster configs, Docker registry tokens, and cloud provider service accounts. Each of these is worth more than a database password. An OpenAI API key can burn through $10,000 in compute. A Kubernetes config file gives you root to an entire cluster. A GCP service account can deploy cryptominers across hundreds of instances.
๐ฏ And 86% of these IPs are simultaneously trying admin/admin against SSH. The same Advin IP that requests /.openai/config.json via HTTP is, in the same hour, attempting root passwords on port 22. One platform. Every protocol. Every credential type.
๐ป The 62-IP Kill Squad: Azure Shared-Exploit Cluster
โก Campaign #9 โ 62 Azure IPs โ 13,260 Requests โ All Empty UA
This is the largest coordinated exploit cluster we observed. 62 IPs from AS8075 (Microsoft Azure), all with empty User-Agents, all checking for the same set of pre-planted webshells:
158.158.46.108 GET /wp-content/plugins/hellopress/wp_filemanager.php โ 404 UA: (empty) 158.158.47.67 GET /this_is_a_new_hello_world.php โ 404 UA: (empty) 172.173.67.22 GET /x.php โ 404 UA: (empty) 135.119.47.58 GET /wefile.php โ 404 UA: (empty) 172.173.98.90 GET /mac.php โ 404 UA: (empty) 158.158.104.28 GET /25d653587fdfd1.php โ 404 UA: (empty) 191.232.50.190 GET /ops.php โ 404 UA: (empty)
Notice the filenames. this_is_a_new_hello_world.php. x.php. mac.php. 25d653587fdfd1.php (a hash-based name). These are not exploits โ they are webshells previously planted by other campaigns. This fleet doesnโt install backdoors. It checks whether someone else already did.
This is supply chain parasitism. One operator plants the backdoor. Another checks if the backdoor exists. The 62-IP cluster is essentially a quality assurance team for someone elseโs exploitation campaign. And every single IP is also in the SSH honeypot and CrowdSec blacklists.
Geographic distribution: 158.158.x (US/EU), 172.173.x (US), 191.232.x (Brazil), 135.119.x (US). Four countries. One operation. Azure billing as the only identity.
๐ฃ The Azure Heavy Hitters
Three Azure IPs stand out for sheer volume โ single nodes generating over 1,000 requests each:
| IP | Requests | 404s | Unique Paths | SSH Honeypot | CrowdSec | Top Target |
|---|---|---|---|---|---|---|
20.104.203.253 | 1,479 | 824 | 249 | โ | โ | /wp-content/uploads/ |
20.206.64.115 | 1,293 | 297 | 111 | โ | โ | /phpinfo/info.php |
20.104.244.165 | 1,157 | 498 | โ | โ | โ | โ |
IP 20.104.203.253 alone hit 249 unique paths โ empty User-Agent, targeting WordPress upload directories, admin panels, and obfuscated PHP shells (dx.php, CDX2.php, 166.php). This single Azure IP generated more malicious traffic than most entire ASNs.
20.206.64.115 hunts for phpinfo() pages โ which leak server configuration, environment variables, and sometimes credentials. 1,293 requests from a single Microsoft cloud IP. Not a scan โ a siege.
๐ The Grey-Hat Ecosystem: LeakIX
๐ l9scan/2.0 โ DigitalOcean โ The Honest Scanner That Helps Criminals
Among all the spoofed UAs, dead devices, and empty headers, one scanner stands out for its honesty:
Mozilla/5.0 (l9scan/2.0.332313e2736313e24313e253; +https://leakix.net)
LeakIX is a vulnerability discovery platform. It scans the internet for exposed credentials, open databases, and misconfigured services โ then publishes the results publicly. Anyone can search LeakIX for exposed .env files, .git directories, and .DS_Store files.
This creates a fascinating ethical problem:
Exposing vulnerabilities forces fixes. Sunlight is the best disinfectant. Responsible disclosure at scale.
The same public index that notifies defenders also serves as a target list for Advin-style credential harvesters.
The IP (167.99.210.137) appears in our SSH honeypot too. The l9scan tool doesnโt just scan HTTP โ it checks SSH, Telnet, and other protocols. Same platform, every protocol. The ethical multi-vector operator.
๐ OSINT Library: The Three-Tier Attack Model
โTier 1 Professional: AS396982 Google โ 54 IPs, temporal bursts, zero honeypot overlap. Tier 2 Research: AS14061 DigitalOcean โ 51 IPs, LeakIX + individuals, some overlap. Tier 3 Criminal: AS22295 Advin โ 44 IPs, ALL in SSH honeypot.โโ OSINT Library, ASN Distribution Analysis (from TI-2026-046A investigation)
The three-tier model holds, but with an update: Google Cloudโs โprofessionalโ tier has a 77% SSH overlap when examined at full scale (575 IPs vs. the 54 in the .env-specific campaign). The โprofessionalโ label was based on the specialized .env fleet. The broader GCP presence is overwhelmingly criminal.
The real taxonomy is simpler: there are specialized operators (the 54-IP .env fleet with 0% overlap) and general-purpose attack platforms (everything else). The specialists are professional. The platforms are commodity.
๐ธ The Abuse Economy: Provider Rankings
From our OSINT library โ provider abuse rates across SSH and HTTP attack data:
These are not outlier customers on otherwise clean networks. When half of Google Cloudโs IPs in our dataset are involved in attacks, thatโs not an abuse problem โ itโs a business model. Cheap VPS + credit card verification only + slow abuse response = attack infrastructure with a billing department.
๐ก๏ธ What This Means for Defense
1. Cross-Protocol Correlation Is Mandatory
If you monitor HTTP and SSH independently, you are blind to 39% of the threat. An IP thatโs brute-forcing your SSH should automatically be blocked from your web applications. An IP scanning your web server for .kube/config should be immediately banned from SSH. Protocol-isolated defenses are a 2015 model fighting 2026 threats.
2. Cloud Provider Reputation Is a Liability
Allowing traffic from Google Cloud, Amazon, and Microsoft because โtheyโre legitimate cloud providersโ is actively dangerous. 77% of GCP IPs in our dataset attack SSH. 84% of Amazonโs. The โcloud providerโ allowlist is the widest hole in most security configurations.
3. The Credential Landscape Has Expanded
If your WAF only blocks /.env probes, youโre running 2020 rules. Attackers now target: .openai/config.json, .kube/config, .docker/config.json, gcp-credentials.json, service-account.json. Every infrastructure-as-code credential file. Every AI API key config. Your WAF rules need to include the full 2026 attack surface.
4. Grey-Hat Scanners Are Part of the Kill Chain
LeakIX finds your exposed .env. Criminal operators harvest from LeakIX. The โresponsible disclosureโ platform is, functionally, a targeting database. Whether you consider this ethical is irrelevant โ itโs happening, and the time between LeakIX indexing your exposure and an attacker exploiting it is measured in hours.
๐๏ธ Conclusion: The Platform Era
The era of specialized attack tools is over. What we observe in 2026 is the attack platform: a single cloud-hosted infrastructure that scans every protocol, probes every credential format, and checks every known vulnerability โ simultaneously.
These platforms donโt choose between HTTP and SSH. They donโt choose between .env and .kube/config. They donโt choose between WordPress shells and Spring Boot configs. They scan everything, everywhere, all at once.
The defense model must evolve to match: cross-protocol correlation, cloud-provider-aware blocking, and WAF rules that cover the full 2026 credential attack surface โ from .env to .openai/config.json to .kube/config.
The TCP port number is a parameter, not a specialization.
The protocol is irrelevant. The platform attacks everything.
Series: TI-2026-046 โThe Web Siegeโ ยท Letter: D ยท Classification: TLP:WHITE
Data Sources: Traefik access logs (7-day window) ยท SSH honeypot (8,000+ IPs) ยท CrowdSec intelligence ยท MikroTik address lists ยท Qdrant OSINT library (15,392 crosslinks) ยท web-threats behavioral database (4,459 IPs)
Investigation: TI-2026-046D ยท 5 actors ยท 6 evidence ยท 6 findings ยท 4 connections
โ 046C: The Reconnaissance Industrial Complex ยท 046E: The Cloud Mercenaries โ