第二届“长城杯”半决赛ISW赛后复现教学文档
题目背景
小路是一名网络安全网管,发现公司主机上有异常外联信息。回忆前段时间执行过某些更新脚本(已删除),现在需要进行网络安全应急响应分析,查找木马,进一步分析,寻找攻击源头,获取攻击者主机权限获取flag文件。
分析工具准备
- FTK Imager:用于挂载.raw磁盘镜像文件
- R-Studio:用于打开挂载后的磁盘,扫描并恢复删除的文件
- IDA Pro:用于逆向分析二进制文件
- CyberChef:用于计算MD5值等编码转换
题目1:找出主机上木马回连的主控端服务器IP地址
要求:找出周期性回连的主控端服务器IP:port,以flag{MD5(IP:port)}形式提交
解题步骤
-
在ubuntu用户目录下发现删除的1.txt,内容显示曾从
http://mirror.unknownrepo.net/f/l/a/g/system_upgrade下载文件并储存为/tmp/.system_upgrade -
在用户目录下发现.viminfo缓存文件,显示编辑过
system-upgrade.service文件 -
在
/etc/systemd/system找到system-upgrade.service文件,内容为加载自定义内核模块system-upgrade.ko -
在
/lib/modules/5.4.0-84-generic/kernel/drivers/system找到system-upgrade.ko文件 -
使用IDA逆向分析
system-upgrade.ko:- Shift+F12查看字符串,发现可疑IP地址
192.168.57.203 - 尝试端口4948、1337、8080,确认正确为4948
- Shift+F12查看字符串,发现可疑IP地址
-
计算MD5:
echo -n "192.168.57.203:4948" | md5sum结果为:
59110f555b5e5cd0a8713a447b082d63
答案
flag{59110f555b5e5cd0a8713a447b082d63}
题目2:找出主机上驻留的远控木马文件本体
要求:计算该文件的MD5,提交形式:flag{md5}
解题步骤
-
通过分析
system-upgrade.ko发现其调用并隐藏了systemd-agentd进程 -
在
/lib/systemd/目录下找到systemd-agentd文件 -
计算MD5:
md5sum /lib/systemd/systemd-agentd结果为:
bccad26b665ca175cd02aca2903d8b1e
答案
flag{bccad26b665ca175cd02aca2903d8b1e}
题目3:找出主机上加载远控木马的持久化程序
要求:计算该文件的MD5,提交形式:flag{MD5}
解题步骤
-
确认
system-upgrade.ko是木马加载器 -
计算MD5:
md5sum /lib/modules/5.4.0-84-generic/kernel/drivers/system/system-upgrade.ko结果为:
78edba7cbd107eb6e3d2f90f5eca734e
答案
flag{78edba7cbd107eb6e3d2f90f5eca734e}
题目4:查找持久化程序植入时的原始名称
要求:计算原始名称字符串的MD5,提交形式:flag{MD5}
解题步骤
-
根据1.txt内容,原始下载文件名为
.system_upgrade -
计算MD5:
echo -n ".system_upgrade" | md5sum结果为:
9729aaace6c83b11b17b6bc3b340d00b
答案
flag{9729aaace6c83b11b17b6bc3b340d00b}
题目5:获取木马通信加密密钥
要求:提交形式:flag{通信加密密钥}
解题步骤
-
逆向分析
systemd-agentd: -
发现可疑字符串
unk_4beffd可能是密文 -
跟踪到
sub_405ec9函数,发现是对数据进行异或编码 -
编写解码脚本解密后得到密钥
答案
flag{ThIS_1S_th3_S3cR3t_fl@g}
题目6&7:获取攻击者服务器权限
说明:由于没有远程服务器环境,无法实际复现
技术分析总结
system-upgrade.ko分析
这是一个内核级rootkit,主要功能包括:
- 初始化钩子:篡改文件系统、网络栈、进程管理等接口
- 命令接口:
- HIDEME/SHOWME:隐藏/显示功能
- HIDE/SHOW DENT:隐藏/显示目录项
- HIDE/SHOW TCP/UDP PORT/IP:隐藏网络端口或IP
- BINDSHELL_CREATE:创建绑定shell
- RUN_CUSTOM_BASH:执行自定义shell命令
- 默认隐藏:隐藏自身和相关进程、端口、IP
systemd-agentd分析
远控木马功能:
- 检查本地是否存在
systemd-agentd文件 - 如果不存在则从
https://192.168.57.207/wp-content/uploads/2025/02/agent下载 - 给予执行权限并运行
- 使用加密通信与C2服务器
192.168.57.203:4948连接