portainer-tactics

$npx mdskill add wgpsec/AboutSecurity/portainer-tactics

Exploit 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)

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|