Exposed etcd → cluster-wide secret raid
etcd is reachable without mTLS — read every Secret in the cluster including service-account tokens that grant cluster-admin.
§ Context
Assumed environment: a self-managed K8s cluster with etcd 2379/2380 reachable from the network and --client-cert-auth=false (or missing).
§ Steps
- 01Auth to API server with cluster-admin tokenInitial AccessT1078— Valid Accounts
- 02Extract secrets (SA tokens, TLS keys, DB creds)Credential AccessT1552— Unsecured Credentials
- 03etcdctl get / --prefix --keys-onlyCredential AccessT1552— Unsecured Credentials
- 04Confirm no client-authInitial AccessK-ETCD-OPEN— etcd Exposed Without Auth
- 05Backdoor admission webhookPersistenceK-ADMISSION-WEBHOOK— Malicious Admission Webhook
- 06Find etcd portDiscoveryN-NMAP-INTERNAL— Internal Nmap Sweep
§ References
- T1078Valid Accounts
- T1552Unsecured Credentials
§ Frequently asked
- What is the "Exposed etcd → cluster-wide secret raid" attack path?
- etcd is reachable without mTLS — read every Secret in the cluster including service-account tokens that grant cluster-admin. It chains 6 steps drawn from real-world offensive-security techniques.
- What starting position does this attack require?
- The first step is Auth to API server with cluster-admin token (T1078) — a initial access primitive. Assumed environment: a self-managed K8s cluster with etcd 2379/2380 reachable from the network and --client-cert-auth=false (or missing).
- What is the final impact of this kill-chain?
- The final step lands on Find etcd port (N-NMAP-INTERNAL), which falls under Discovery. From here, an operator typically pivots into post-exploitation or maintains persistence.
- How can defenders detect or prevent this attack?
- Detection and prevention vary per step. Refer to each linked MITRE ATT&CK entry under "References" — every technique on that page lists defensive controls, detection telemetry, and known threat-actor usage.
§ Related dossiers
- Shared techniques3
npm typosquat → developer workstation → corporate VPN
Publish a typosquat npm package; the developer's `npm install` runs the postinstall script, exfils SSH keys + VPN profile, then connects to the corporate network.
- Shared techniques3
Privileged pod escape → cluster admin
GenericWrite on a Deployment in the kube-system namespace lets you launch a privileged pod; the pod mounts the host filesystem and steals the kubeconfig of cluster-admin.
- Shared techniques2
Industroyer2 IEC-104 substation hijack
Timed payload speaks IEC-60870-5-104 to substation RTUs at attacker-chosen hour; sends 'open breaker' commands across a substation, blackouts a grid section.
- Shared techniques2
Dev workstation → cloud backup keys → encrypted vault store (LastPass 2022)
Attacker compromised a single LastPass DevOps engineer's home machine via outdated Plex Media Server, harvested AWS keys for the encrypted-vault backup bucket, exfiltrated production vault data.
- Shared techniques2
z/OS TN3270 → RACF userID brute → mainframe shell
Internet-/intranet-exposed TN3270 mainframe terminal. Userids follow predictable HR scheme. Brute-force passwords; many environments allow short / dictionary passwords for legacy reasons.
- Shared techniques2
F5 BIG-IP iControl auth bypass (CVE-2022-1388) → root on LB
Connection-header smuggle bypasses iControl REST auth, command-injection RCE as root. Load balancers see all traffic — recover TLS keys, session cookies, internal SSO config.