LSN โ€” Local Sovereign Network

TI-2026-095E โ€” The Config Vultures: A Google-Cloud Fleet Wears the Wayback Machine to Strip Every Secret

Classification: HIGH ยท Forensic threat intelligence ยท Web-threats vector ยท Series: Below the Noise Floor

A request arrives claiming to be the Internet Archive's Wayback crawler โ€” the polite robot that mirrors the web for posterity, the one many admins wave straight through. Then it asks, in the same twelve seconds, for your AWS credentials, your GCP service account, your SSH private key, your Terraform state, your CI/CD deploy tokens, your Spring heap dump, and your database backup โ€” two hundred and seventy-one secret files, one after another, all 404. It is not the Wayback Machine. It is a Google-Cloud burst fleet wearing the Wayback Machine's name, and it is reading the entire estate for anything left unlocked. This is the anatomy of a secret harvest disguised as an archive.

1. Two Disguises at Once

The previous entry in this series hid by age โ€” a nine-year-old CVE nobody watches. This one hides by identity and by silence, two disguises stacked.

The identity: every node presents the ia_archiver user-agent, the string used by the Internet Archive's Wayback crawler. That is a name with a reputation for good behaviour, and a name that security-conscious operators sometimes allow-list so their sites get properly archived. Borrowing it buys the fleet reduced scrutiny โ€” a request from "the Internet Archive" earns less suspicion than one from a nameless scanner. The web-threats pipeline is not fooled: it classes the identity spoofed and clusters the nodes as the Fake-ia_archiver Fleet AS396982. But an operator is betting that a busy admin, glancing at an access log, reads "archive.org" and moves on.

The silence: every single one of the 271 requests returns 404. A wall of not-found reads, to a tired eye, as harmless enumeration โ€” a scanner poking at files that aren't there, achieving nothing, worth ignoring. That is the second cover. The 404s are not failure from the attacker's side; they are the expected output of a fishing sweep. Ninety-nine hosts out of a hundred return 404 to /.aws/credentials. The campaign is built to be run against everyone, cheaply, for the one host in a hundred that returns 200.

Below the noise floor, again โ€” this time beneath a benign name and beneath a curtain of 404s.

2. The Sweep โ€” 271 Paths in Twelve Seconds

Pivot into any node's full behaviour and the archive disguise falls apart instantly. Representative node 34.32.47.181 (Google Cloud, AS396982) issued 271 requests in about twelve seconds โ€” 2026-06-10 14:19:15 to 14:19:27, a rate near 81,000 paths per hour โ€” every request a distinct secret-or-config path, every one a 404, all against a single host (www.shuffle-on.com).

The Wayback Machine mirrors public pages. It does not ask for your private key. This does nothing else.

The 271 paths are not random. They are a curated, current map of the modern DevOps secret surface โ€” the files that, if a web root is mis-deployed, leak the keys to everything:

Cloud credentials. /.aws/credentials, /.aws/config, /.gcloud/credentials.json, /.config/gcloud/credentials.db, /gcp-credentials.json, /google-credentials.json, /firebase-adminsdk.json, /firebase-credentials.json, /service-account.json, /serviceaccount.json, /.azure/credentials, /aws-credentials.json, /api_keys.json.

Private keys and auth. /id_rsa, /.ssh/id_rsa, /.ssh/authorized_keys, /private.key, /private_key.pem, /server.key, /server.pem, /secret.json, /secrets.env, /.netrc, /.npmrc, /.pypirc, /.htpasswd.

Infrastructure-as-code. /terraform.tfvars, /terraform.tfstate, /.terraform/terraform.tfstate, a dozen docker-compose*.yml variants, /kubernetes.yaml, /k8s.yml, /helm/values.yaml, /helm/values-production.yaml, /Dockerfile.

CI/CD pipelines. /jenkins/Jenkinsfile, /Jenkinsfile, /.github/workflows/deploy.yml (and main.yml, production.yml), /.circleci/config.yml, /azure-pipelines.yml, /bitbucket-pipelines.yml, /.buildkite/pipeline.yml, /.travis.yml.

Spring Boot actuator. /actuator/env, /actuator/heapdump, /actuator/configprops, /actuator/threaddump, /actuator/httptrace, /actuator/auditevents, /actuator/sessions, /actuator/logfile โ€” each also tried under /api/, /v1/, /v2/, /server/, /app/, /backend/, /internal/ prefixes.

Framework config and databases. /application.yml, /application.properties, /wp-config.php (and .bak, .old), /appsettings.json, /web.config, /settings.py; and /dump.sql, /pg_dump.sql, /mysqldump.sql, /database.sql, /backup.sql.gz, /backup.tar.bz2.

Read the list as a whole and its intent is unambiguous. This is not a vulnerability scan; it is an exfiltration checklist. Every path is a file whose contents unlock something else โ€” a cloud account, a server, a CI system, a database. The campaign is the reconnaissance-and-theft half of "find a leaky deployment and empty it."

3. Why the CVE Tag Understates It

The web-threats engine files this campaign under CVE-2018-1273 (Spring Boot Actuator exposure), because the 271-path sweep includes the actuator endpoints, and the actuator paths carry a known CVE signature. That correlation is correct but partial. The actuator paths are perhaps two dozen of the 271; the other ~247 are cloud credentials, private keys, Terraform state, CI/CD secrets and database dumps that no single CVE covers.

This matters for defence. An operator who keys only on "the Spring actuator CVE" sees a Java-framework probe and shrugs โ€” no Spring here, move on. But the campaign never cared whether you run Spring. It is checking for /.aws/credentials and /service-account.json on the same breath, and those have nothing to do with Java. The CVE is a lens that happens to catch one facet; the campaign is the whole 271-path grab. Read the behaviour, not just the tag.

4. The Fleet โ€” 143 Nodes, All Google Cloud

The per-CVE actor view returns 143 distinct source IPs and 69,831 hits, and every one is a Google Cloud address in AS396982 (ARIN-registered, US). As with the DigitalOcean Struts2 fleet of the previous dossier, there is no bulletproof hosting and no residential scatter โ€” one mainstream, high-reputation cloud, rented by the minute.

That single-provider concentration is the same double-edged fact it was for the DigitalOcean fleet. It makes the campaign cheap to reconstitute (burn a flagged instance, spin another) but also maximally attributable and takedown-tractable: one abuse desk (Google Cloud) covers the whole fleet, and every node is already MikroTik-banned and CrowdSec-listed on the LSN side. Renting from Google buys clean IP reputation and elastic scale; it costs attributability. The operator took that trade.

And the cadence tells you it is automated and disposable: each node fires its full 271-path sweep as a single burst โ€” first_seen and last_seen seconds apart โ€” then goes quiet. There is no interactive operator here, no adaptation; there is a script, a target, and a rented box that exists for exactly one twelve-second sweep.

5. One Node per Host โ€” a Pattern Now Seen Twice

Here is the detail that connects this campaign to the last one and elevates both. Line the 143 nodes against the hosts they hit, and it is a clean one-to-one map across the estate: www and mail.shuffle-on.com, auth.sonatural.life, tautulii, lsn-ai-k3s, lsn-jupyter, lsn-webmail.sonatural.life, lsn-git, lsn-registry, lsn-karaoke, lsn-cert, lsn-auth-manager, lsn-webtop, openwebui, lsn-plasma-chat, lsn-storage, lsn-docling, lsn-ai-staging, lsn-pma, lsn-vault, lsn-llm-factory, peertube, lsn-grafs, lsn-maps, lsn-nas2 โ€” the whole published surface, one node per subdomain.

This is exactly the assignment pattern documented for the DigitalOcean Struts2 fleet in TI-2026-095D. And that is the point worth sitting with: these are two completely independent campaigns โ€” different provider (Google Cloud vs DigitalOcean), different objective (secret harvest vs Struts RCE), different disguise (spoofed Wayback bot vs spoofed LeakIX) โ€” and they use the same one-node-per-host partition of the same estate. When two unrelated operators independently arrive at the identical structure, it is not coincidence; it is convergent tradecraft. Renting a cloud fleet and assigning one disposable node per target subdomain has become a standard way to run a distributed sweep: it spreads the request load, dilutes per-IP rate signals, and lets each node be burned independently.

For a defender that convergence is a gift. It means the one-node-per-host partition is a provider- and exploit-agnostic detection primitive: whenever your telemetry shows your subdomains cleanly partitioned across distinct rented-cloud IPs โ€” whatever they're throwing โ€” you are looking at a coordinated campaign, and you knew it before you read a single payload.

6. What It Took โ€” and the Checklist It Left Behind

Every one of the 271 paths returned 404. The LSN hosts are Traefik-fronted and Authelia-guarded, and none of them serves a credential file, a Terraform state, or an exposed actuator. The vultures found carrion-free ground; the sweep harvested nothing here.

But the capture is still valuable, and the value is the dictionary. Those 271 paths are a live, curated, current inventory of exactly what a mis-deployed modern web application leaks โ€” assembled by an adversary who runs it against the whole internet and keeps it up to date. Turned around, it is the cleanest hardening checklist a defender could ask for: every path in it is a file that must never be reachable from the web, and the presence of any of them at a 200 is an incident. The vultures published the list by flying it at us; we can read it as a map of our own worst mistakes-not-yet-made.

7. The Counter-Narrative

Steelman: "This is nothing. It's the Internet Archive, or at worst a commodity .env scanner, hitting a bunch of paths and getting 404s. Every website on earth sees /.env and /.git/config probes hourly. You found a scanner. Congratulations."

Each clause has a grain of truth, and the finding survives:

What is not claimed: attribution to a named operator (single-provider, spoofed identity โ€” the anchor is Google Cloud's abuse desk); any affiliation with the real Internet Archive (the UA is borrowed); that any secret was exposed (all 404); or that CVE-2018-1273 is the campaign's actual objective (it is one correlated facet of a broader secret harvest).

Confidence: HIGH that a 143-node Google-Cloud fleet ran a coordinated, ia_archiver-spoofing, one-node-per-host 271-path secret-harvesting sweep of the LSN estate in June 2026; MEDIUM on operator identity and on impact (attempts, not compromise).

8. Defence Response

9. A Note on Method

Like the previous dossier, this was built entirely through the web-threats MCP layer, with no direct database access โ€” the per-CVE actors endpoint (wt_cve_actors / GET /api/web-threats/cves/{cve}) for the fleet roster, and dossier_web_threats_intel for each node's full 271-path behaviour, identity classification and campaign clustering. The honeypot and entity-graph CVE tools see none of this: it is a pure web (L7) campaign, and its home is the web-threats vector.

10. Investigation Metadata

FieldValue
Dossier IDTI-2026-095E
SeriesBelow the Noise Floor (part 5)
Correlated CVECVE-2018-1273 (Spring Boot Actuator) โ€” the actuator slice of a 271-path secret sweep
Fleet143 IPs, 100% Google Cloud (AS396982); 69,831 hits; June 2026 bursts
Behaviour271 distinct secret/config paths per node in ~12s (~81k paths/hr), all 404
DisguiseSpoofed ia_archiver (Internet Archive Wayback) UA โ€” "Fake-ia_archiver Fleet AS396982"
TargetsCloud creds (AWS/GCP/Azure), SSH/TLS keys, Terraform state, CI/CD pipelines, Spring actuator, DB dumps โ€” one node per host across the estate
ImpactAttempts only โ€” all 404 (Authelia-fronted, no exposed secrets)
MethodBuilt entirely via the web-threats MCP layer (wt_cve_actors + dossier_web_threats_intel) โ€” no direct SQL
Cross-referenceTI-2026-095D (DigitalOcean Struts2 fleet โ€” same one-node-per-host partition), TI-2026-095C (the weaponizers)
ConfidenceHIGH (fleet, sweep, disguise, partition); MEDIUM (operator identity, impact = attempts)

Cristian Liศ™neanu ยท shuffle-on.com ยท Threat Intelligence

โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous Below the Noise Floor โ€” 5 / 8 Next โ†’