本篇文章主要记录某学校长期未运营维护的程序,被黑客发现了漏洞,但好在学校有全流量设备,抓取到了过程中的流量包
需要你进行上机以及结合流量分析,排查攻击者利用的漏洞以及上传利用成功的木马
文章目录
-
- 靶机介绍
- 1.使用工具分析共有多少IP存在扫描web特征,提交其数量
- 2.在2025.6.22日17点03分27秒,192.168.37.10,55689端口进行访问的url路径以flag方式进行提交(应急三要素缩小范围)
- 3.提交存在使用NMAP扫描特征的IP
- 4.审计流量并结合web站点,攻击者通过什么漏洞进行控制主机,提交漏洞文件名接口
- 5.审计流量并结合web站点,攻击者通过哪个用户名利用的漏洞,提交其注册用户名
- [6. 审计流量并结合漏洞,提交攻击者控制成功木马文件名](#6. 审计流量并结合漏洞,提交攻击者控制成功木马文件名)
- 7.审计流量并清除掉攻击者上传的木马,清除成功后在/var/flag/1/flag中查看flag并提交
- [8. 黑客拿到主机权限后,上传了挖矿木马,需要你提交矿池地址](#8. 黑客拿到主机权限后,上传了挖矿木马,需要你提交矿池地址)
- 9.清除掉主机上的挖矿木马,完成后在/var/flag/2/flag文件中查看flag并提交
- [10. 黑客做了后门,即使你清除以后,仍然会定时更新挖矿程序并运行,你找到这个程序,提交其路径](#10. 黑客做了后门,即使你清除以后,仍然会定时更新挖矿程序并运行,你找到这个程序,提交其路径)
- 11.清除掉后门挖矿程序,在/var/flag/3/flag下查看提交flag
靶机介绍
背景:完全仿真了某学校长期未运营维护的程序,被黑客发现了漏洞,但好在学校有全流量设备,抓取到了过程中的流量包
需要你进行上机以及结合流量分析,排查攻击者利用的漏洞以及上传利用成功的木马
以及清除掉攻击者上传的挖矿程序以及后门程序,挖矿环境完全还原了真实环境,但不会出网,比较有意义,清除做了check操作,你只需要按照相关题目引导进行清除
在指定目录下查看flag提交即可,流量包在远程登录成功后/hacker2025.pcap(玄机直接以附件形式下载)
流量中被攻击机IP:192.168.37.11
SSH远程端口:2222 账号密码:root/edusec123
下载地址:点击此处
参考文章:州弟学安全
要求:
- 使用工具分析共有多少IP存在扫描web特征,提交其数量
- 在2025.6.22日17点03分27秒,192.168.37.10,55689端口进行访问的url路径以flag方式进行提交(应急三要素缩小范围)
- 提交存在使用NMAP扫描特征的IP
- 审计流量并结合web站点,攻击者通过什么漏洞进行控制主机,提交漏洞文件名接口
- 审计流量并结合web站点,攻击者通过哪个用户名利用的漏洞,提交其注册用户名
- 审计流量并结合漏洞,提交攻击者控制成功木马文件名
- 审计流量并清除掉攻击者上传的木马,清除成功后在/var/flag/1/flag中查看flag并提交
- 黑客拿到主机权限后,上传了挖矿木马,需要你提交矿池地址
- 清除掉主机上的挖矿木马,完成后在/var/flag/2/flag文件中查看flag并提交
- 黑客做了后门,即使你清除以后,仍然会定时更新挖矿程序并运行,你找到这个程序,提交其路径
- 清除掉后门挖矿程序,在/var/flag/3/flag下查看提交flag
--
1.使用工具分析共有多少IP存在扫描web特征,提交其数量
这里我们打开靶机的同时,也打开一台kali,用于端口以及服务的扫描:
这里由于两台机器属于同一网段,所以直接使用nmap进行扫描:
bash
nmap 192.168.44.0/24
显示结果如下:
这时候我们得到目标机器的ip地址,而题目中的"使用工具分析共有多少IP存在扫描web特征",需要我们进行流量分析;
所以登录2222端口的服务,输入账号密码:
SSH远程端口:2222
账号密码:
root / edusec123
随后即可链接成功;

查看根目录,发现hacker流量包,把他下载到本地用工具进行分析:

这里我是用xshell的xftp功能 进行传输到本地:
然后进行分析------查看有多少IP访问了
192.168.37.11
这个靶机,可以使用命令:
缺点:需要一个个数,比较耗时;
bash
http and ip.dst == 192.168.37.11 # 筛选http协议且目的地址为靶机的IP地址
也可以使用别的方法:
然后进行过滤器条件如下,进行筛选带有扫描特征的条件,那么之前讲过,怎么判断扫描特征?
答:
短时间内大量访问不存在的文件
属于扫描特征,但是由于实战中每个站点"文件不存在"返回状态码不一致,可能是404、403、500、502、405等情况,那么我们可以自行测试
所以访问网站,输入一个不存在的文件,看看文件不存在的状态码 是什么?
可以看到是404 ,所以我们就可以根据状态码进行筛选:

bash
http.response.code==404

也可以放进本地工具里进行分析:
count() by 表示计数,id.orig_h表示源地址,status_code表示状态码,|表示条件分隔

发现还剩IP地址为29个,所以flag:
flag{29}
--
2.在2025.6.22日17点03分27秒,192.168.37.10,55689端口进行访问的url路径以flag方式进行提交(应急三要素缩小范围)
这里题目给出的具体的时间范围,结合实际情况的话:
(1) 在企业中,每天可以产生几十TB的数据,要是遇到webshell入侵的话,不可能一条一条去查找;
(2)所以在确定时间范围的情况下,去筛选排除就很有必要;这就是此题的目的
根据题目,输入命令:
bash
ip.addr == 192.168.37.10 and ip.dst == 192.168.37.11 and tcp.port == 55689
可以得到3条请求记录,追踪http流进行查看:


将他们的url分别尝试一次:
bash
/servlet/user/uploadAvatar
/servlet/user/profile?uploadSuccess=true
/uploads/06853c4f-8b05-4949-90ae-9adc49f27a94.jsp
分析:
- 第一个请求看特征就知道是上传文件
- 第二个看关键词就知道上传成功
- 第三个应该是GET访问了上传的文件
(所以这是一次任意文件上传攻击)
这里根据题目,应该是url路径,但是最终结果却是一个文件名,不懂:
最终的flag为:
flag{06853c4f-8b05-4949-90ae-9adc49f27a94.jsp}
--
3.提交存在使用NMAP扫描特征的IP
通常情况下,nmap扫描到web服务(80或者8080端口),就会在URL或者User-Agent里添加nmap 字样,很容易辨识。
除此之外,nmap则会进行SYN扫描,FIN扫描等。
NMAP最大特征: 扫描 HTTP 时,会在 URL 及 UA 里包含 nmap 关键字特征
bash
http.request.headers contains "Nmap"
http.user_agent contains "Nmap"
可以发现记录,很容易得到攻击IP为192.168.37.4
假如对方没有扫描HTTP协议,只进行了端口扫描?
那么在nmap中使用TCP SYN扫描的情况下,可以进行筛选。
- 基于 TCP 标志位(SYN 扫描特征)筛选
tcp.flags.syn == 1 && tcp.flags.ack == 0
- 默认情况下大部分版本的nmap窗口大小为1024,当然也有其它版本的扫描可能为:2048,3072,4096
tcp.flags.syn == 1 and tcp.window_size == 1024 and tcp.len == 0 and ip.frag_offset == 0

(如果不用tcp协议,而用udp呢?当然是问AI啊。)
flag{192.168.37.4}
--
4.审计流量并结合web站点,攻击者通过什么漏洞进行控制主机,提交漏洞文件名接口
根据之前的结果,我们发现了任意文件上传的漏洞:
第二个题目的时候,看到了文件上传的操作
- 思路:WEB 系统起码有文件上传功能
- 如何确定可疑访问?
- 只查看正常状态码或排除非正常状态码后进行排序
这里还是使用工具,进行筛选:
bash
count () by id.orig_h,status_code,uri|status_code==200 | sort -r count

然后去wireshark筛选一下:
可以看到有三条访问记录,进入查看内容:(冰蝎流量)
这里很容易可以看出是冰蝎的流量,而题目要求的是攻击者利用的漏洞接口,所以查看上述流量包即可得到
flag{uploadAvatar}
--
5.审计流量并结合web站点,攻击者通过哪个用户名利用的漏洞,提交其注册用户名
回到登录页面,其实我们访问WEB端口看到是有鉴权的,那么攻击者肯定是通过注册账号进去的,有时候溯源,账号可能会有很大的用处;

以及账号密码的参数payload:

所以可以根据上述进行筛选:
bash
ip.addr==192.168.37.10&&http.request.uri=="/servlet/user/login"
得到结果:
可以发现,输入账号密码后,跳转到了index.jsp页面;
flag{wangyunqing}
--
6. 审计流量并结合漏洞,提交攻击者控制成功木马文件名
根据之前的分析,可以知道这个jsp文件,访问的次数最多:
bash
ip.addr==192.168.37.10&&http.request.uri=="/uploads/70b86b64-ce15-46bf-8095-4764809e2ee5.jsp"

随便点击进去查看,可以发现有着加密的异常流量:

这里使用蓝队解密工具进行分析,由于是冰蝎的默认密钥加密,所以点击"解密"即可:
多看几个,发现了木马的文件名:

flag{70b86b64-ce15-46bf-8095-4764809e2ee5.jsp}
--
7.审计流量并清除掉攻击者上传的木马,清除成功后在/var/flag/1/flag中查看flag并提交
check操作:就是检测我们是否清除了木马,因为以往我们只能被动去做题,没有check有很大局限性,比如增删改操作,所以当我们做了清除操作后,flag会在主机指定文件生成
登录靶机,匹配木马的文件位置,然后进行删除:
bash
find / -name *809e2ee5.jsp
# 这里匹配全部名字反而找不到;
也是找到了文件路径:
直接删除即可:
bash
rm -rf /var/lib/tomcat9/webapps/ROOT/uploads/70b86b64-002dce15-002d46bf-002d8095-002d4764809e2ee5.jsp

随后即可得到flag:
flag{1979c46c2af37dc62a4b05881e816995}
--
8. 黑客拿到主机权限后,上传了挖矿木马,需要你提交矿池地址
使用top
命令进行查看cpu使用情况,发现了异常:

名为java 的程序使用资源异常,且PID为913;
随后ps -ef 913
查看具体情况,发现矿马

位于/tmp目录下,将其下载下来进行反编译:

可以找到矿池IP:
放进微步在线分析一下:

flag{pool.minexmr.com:4444}
--
9.清除掉主机上的挖矿木马,完成后在/var/flag/2/flag文件中查看flag并提交
这里删除一下miner.jar文件,查看flag即可:
bash
rm -rf miner.jar

flag{da236fe0cda81bfc03d022799589110e}
--
10. 黑客做了后门,即使你清除以后,仍然会定时更新挖矿程序并运行,你找到这个程序,提交其路径
我们删除后,发现过了不久,恶意进程又重新启动,所以推测存在cron定时任务:
新的PID

首先排查计划任务:
bash
crontab -l
ls -la /etc/cron*
可以发现一个定时任务,每分钟运行:

随后检查/etc/cron
目录下,没有发现异常:
查看这个sh文件的具体内容:

bash
#!/bin/bash
SOURCE_FILE="/usr/share/.miner/miner.jar"
DEST_FILE="/tmp/miner.jar"
PROCESS_NAME="java -jar $DEST_FILE"
LOG_FILE="/var/log/.malware_events.log"
if pgrep -f "$PROCESS_NAME" > /dev/null; then
exit 0
else
echo "[$(date)] Miner process not found. Taking action..." >> "$LOG_FILE"
if [ ! -f "$DEST_FILE" ]; then
echo "[$(date)] Miner file ($DEST_FILE) is missing. Restoring from backup..." >> "$LOG_FILE"
cp "$SOURCE_FILE" "$DEST_FILE"
chmod +x "$DEST_FILE"
fi
if [ -f "$DEST_FILE" ]; then
nohup java -jar "$DEST_FILE" > /dev/null 2>&1 &
echo "[$(date)] Miner process restarted with PID $!." >> "$LOG_FILE"
else
echo "[$(date)] CRITICAL: Could not restore miner file from backup. Cannot start." >> "$LOG_FILE"
fi
fi
这段 Bash 脚本是 恶意挖矿程序的守护脚本,作用是:
- 监控 :检查
java -jar /tmp/miner.jar
挖矿进程是否运行 - 自恢复 :若进程/程序文件丢失,从隐藏备份(
/usr/share/.miner/miner.jar
)恢复并重启 - 隐蔽性:日志藏系统目录,进程后台静默运行,持续偷算力挖矿
危害:占满服务器资源,拖垮业务、增加成本,需立即清理文件、进程并溯源 。
flag{/usr/share/.per/persistence.sh}
--
11.清除掉后门挖矿程序,在/var/flag/3/flag下查看提交flag
首先就是先清除定时任务,然后再去删除脚本文件,jar包;
bash
crontab -e //编辑计划任务清除掉计划任务
rm /usr/share/.per/persistence.sh //删除掉后门脚本程序
rm /usr/share/.miner/miner.jarh //删除备份挖矿程序
rm /tmp/miner.jar //删除已恢复的挖矿脚本
kill -9 (PID) //杀掉挖矿进程
等待一分钟过后,CPU和进程都恢复正常,查看/var/flag/3/flag文件获取到flag:
flag{27bd067769b51ed71f899c7a6f08af2c}
--