portainer-tactics
$
npx mdskill add wgpsec/AboutSecurity/portainer-tacticsExploit Portainer vulnerabilities to achieve remote code execution.
- Bypass authentication via default credentials or CVE-2024-29296 user enumeration.
- Leverage Docker API endpoints for privileged container escape and host file access.
- Execute request splitting attacks on legacy versions to bypass security controls.
- Deliver actionable exploitation chains prioritized by severity and exploitability.
SKILL.md
.github/skills/portainer-tacticsView on GitHub ↗
---
name: portainer-tactics
description: |
Portainer 后渗透方法论:默认凭据认证突破、用户枚举时间差攻击、Docker API特权容器逃逸RCE、宿主机文件系统挂载。
当用户提到Portainer漏洞、Portainer RCE、Portainer Docker逃逸、Portainer认证绕过、Portainer利用、Portainer检测时,必须使用此技能。
也适用于用户提到Docker管理面板漏洞、容器管理平台利用、Portainer CE/BE渗透等场景。
metadata:
tags: "Portainer,Docker,容器管理,默认凭据,用户枚举,SSRF,特权容器逃逸,RCE,Kubernetes"
category: "postexploit"
mitre_attack: "T1190,T1059,T1078"
---
# Portainer 漏洞利用技能
- **产品**: Portainer (Docker/Kubernetes容器管理平台)
- **默认端口**: 9000 (HTTP), 9443 (HTTPS) | **识别**: `/api/status` 返回JSON | **FOFA**: `app="Portainer"`
## 漏洞总览
| 漏洞编号 | 影响版本 | 漏洞类型 | 利用条件 | 危害 |
|---------|---------|---------|---------|------|
| 默认/弱口令 | 全版本 | 认证突破 | 弱口令 | Critical |
| CVE-2024-29296 | CE 2.19.4 | 用户枚举(时间差) | 无需认证 | Medium |
| CVE-2018-12678 | <=1.17 | Request Splitting SSRF→RCE | 无需认证 | Critical |
| Docker API滥用 | 全版本 | 特权容器逃逸RCE | 需认证 | Critical |
## 利用决策树
```
1. 识别: GET /api/status → 确认Portainer
2. 认证突破:
├── 尝试默认凭据 admin/已知密码
├── CVE-2024-29296: 用户枚举确定有效用户名
└── 暴力破解密码
3. 认证后: JWT Token → 枚举端点 → 特权容器 → 挂载宿主机 → RCE
4. 未认证(老版本): CVE-2018-12678 → Request Splitting → Docker API → RCE
```
## 利用链优先级
```
1. 默认/弱口令 → JWT Token → Docker API → 特权容器 → RCE
2. CVE-2024-29296 用户枚举 → 定向暴力破解 → 同上
3. CVE-2018-12678 (仅<=1.17) → SSRF → Docker API → RCE
```
## 常用API端点
| 端点 | 用途 |
|------|------|
| `GET /api/status` | 系统状态/版本 |
| `POST /api/auth` | 登录认证 |
| `GET /api/endpoints` | Docker端点列表 |
| `POST /api/endpoints/{id}/docker/containers/create` | 创建容器 |
| `POST /api/endpoints/{id}/docker/containers/{cid}/start` | 启动容器 |
| `POST /api/endpoints/{id}/docker/containers/{cid}/wait` | 等待容器 |
## 特权容器逃逸方法论
**技术**: 通过Portainer Docker API创建特权容器,挂载宿主机文件系统,实现容器逃逸RCE。
- 利用 Docker API `/containers/create` 端点,创建特权模式容器
- 将宿主机根目录 `/` 以读写方式挂载到容器内
- 通过 `chroot` 切换到宿主机文件系统,命令直接作用于宿主机
- 需要已认证的JWT Token和可用的Docker端点
## 详细参考
- [认证后RCE API速查](references/post-auth-rce.md)