โšก CRITICAL โ€” 39% of HTTP Attackers Simultaneously Brute-Force SSH โ€” Protocol-Agnostic Attack Platforms

TI-2026-046D โ€” The Multi-Vector Operators

When the Same IP Address Scans Your Web Server for Credentials While Simultaneously Brute-Forcing Your SSH โ€” 1,751 IPs That Donโ€™t Specialize
โšก Multi-Vector SSH + HTTP 84% Amazon Overlap โ˜๏ธ Cloud Attack Platform .openai/config.json .kube/config Botnet-as-a-Service LeakIX l9scan 1,751 Dual-Protocol IPs

๐Ÿ“– 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

1,751 IPs attacking both HTTP and SSH 39% of all HTTP attackers ยท out of 4,459 unique IPs observed

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:

ProviderASNHTTP IPsIn SSH HoneypotOverlapVisual
โ˜๏ธ ScalewayAS12876131292%
๐Ÿ’€ Advin ServicesAS22295514486%
๐Ÿ“ฆ Amazon (AES)AS1461814612284%
โ˜๏ธ Google CloudAS39698257544477%
โ˜๏ธ MicrosoftAS807543626761%
โ˜๏ธ DigitalOceanAS140611767442%
ฮฃ Combined1,39796369%

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:

IPRequests404sUnique PathsSSH HoneypotCrowdSecTop Target
20.104.203.2531,479824249โœ…โœ…/wp-content/uploads/
20.206.64.1151,293297111โœ…โœ…/phpinfo/info.php
20.104.244.1651,157498โ€”โœ…โœ…โ€”

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:

The Argument For:
Exposing vulnerabilities forces fixes. Sunlight is the best disinfectant. Responsible disclosure at scale.
The Argument Against:
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:

SingleHop/Internap
90.0%
Psychz+MULTACOM
89.6%
OVH
70.3%
ColoCrossing
62.2%
Contabo
53.8%
โ˜๏ธ Google Cloud
49.0%
โ˜๏ธ DigitalOcean
39.5%

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.

1,751Dual-Protocol IPs
113Credential Path Types
6Cloud Providers Weaponized

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 โ†’

โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous The Web Siege โ€” 4 / 5 Next โ†’