Add files via upload
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
### Kubernetes 攻击思路
|
||||
|
||||
**1. 从外部服务入手**
|
||||
|
||||
这是最常见的攻击起点,攻击者通常会寻找暴露在公网上的 K8s 组件或应用。
|
||||
|
||||
**a. 攻击 Web 应用**
|
||||
|
||||
- **漏洞利用**:如果 K8s 集群中运行着 Web 应用,攻击者会首先对这些应用进行漏洞扫描。常见的漏洞包括 **SQL 注入**、**文件上传**、**RCE(远程代码执行)**等
|
||||
- **反向 Shell**:一旦成功利用 RCE,攻击者可以在 Pod 内部获取一个反向 Shell。这是进入集群内部的第一步
|
||||
- **容器逃逸**:仅仅获得 Pod 的 Shell 还不够。攻击者会尝试进行**容器逃逸**,利用 Pod 配置不当或内核漏洞,从容器内部获取宿主机(Node)的权限。
|
||||
|
||||
**b. 攻击暴露的 K8s 服务**
|
||||
|
||||
- **Kubelet API**:如果 Kubelet 的 API(默认端口 10250 或 10255)没有进行严格的认证,攻击者可以直接访问它。通过 Kubelet API,攻击者可以执行命令、查看 Pod 详情,甚至创建新的 Pod,从而实现对整个 Node 的控制
|
||||
- **Dashboard**:如果 K8s Dashboard 暴露在公网,并且使用了弱密码,攻击者可以登录 Dashboard,然后利用其强大的 UI 界面直接管理集群资源
|
||||
|
||||
**2. 权限提升与横向移动**
|
||||
|
||||
一旦攻击者进入集群内部,哪怕是获得了普通 Pod 的权限,他们也会立即开始进行权限提升和横向移动,寻找更高的权限,例如 `Cluster Admin`
|
||||
|
||||
**a. 权限提升**
|
||||
|
||||
- **RBAC 滥用**:K8s 的 **RBAC(基于角色的访问控制)**机制是权限提升的核心攻击点。攻击者会枚举当前 Pod 所拥有的 ServiceAccount 权限,寻找那些被错误配置为高权限的角色。例如,如果一个普通 Pod 的 ServiceAccount 拥有 `list secrets` 或 `create pods` 的权限,攻击者就可以利用这些权限来窃取敏感信息或创建恶意 Pod
|
||||
- **滥用宿主机挂载**:如果 Pod 被配置为挂载了宿主机的敏感路径(如 `/etc`、`/var/run/docker.sock`),攻击者可以直接访问这些路径,甚至通过 `docker.sock` 控制宿主机的 Docker 守护进程,从而实现容器逃逸。
|
||||
|
||||
**b. 横向移动**
|
||||
|
||||
- **ServiceAccount 凭证窃取**:攻击者可以窃取当前 Pod 的 ServiceAccount Token,并使用这个 Token 伪装成 ServiceAccount,访问其他 Pod 或 K8s API
|
||||
- **扫描内网**:利用已控制的 Pod 作为跳板,攻击者可以对集群内网进行扫描,寻找其他可以被攻击的服务或未授权的 API
|
||||
|
||||
**3. 供应链攻击**
|
||||
|
||||
供应链攻击是一种更高级的攻击方式,它不直接攻击 K8s 集群本身,而是攻击 K8s 集群所依赖的组件
|
||||
|
||||
- **恶意镜像**:攻击者可以将恶意代码注入到 Docker 或 OCI 镜像中。当开发者或 CI/CD 流水线拉取并部署这个镜像时,恶意代码就会在集群内部运行
|
||||
- **第三方工具漏洞**:攻击者可以利用 K8s 周边工具的漏洞,例如,攻击 CI/CD 工具(如 Jenkins、Gitlab CI)或 Helm charts,通过这些工具将恶意 Payload 部署到集群中
|
||||
Reference in New Issue
Block a user