青少年CTF靶场 - 特洛伊挖矿木马事件排查 wp
摘要:本文记录了一次Ubuntu服务器挖矿病毒应急处置过程。通过分析异常进程定位到挖矿程序路径(/tmp/kworkerds),发现其外联IP(flag{192.168.1.1:3333})。调查发现/etc/cron.d/0guardian守护进程,溯源发现钓鱼网站下载的恶意程序感染了系统关键文件(whoai/ls/top等)。通过安装/deb_final目录下的原始deb包恢复系统,最终清除挖
靶场地址:青少年CTF练习平台
题目背景:你是一名初级安全工程师,运维团队报告,公司的一台核心开发服务器(Ubuntu 22.04 LTS)出现CPU使用率异常飙高告警及安全设备检出外联挖矿事件。现在,你需要登录该服务器,排查并处置这一安全事件,并最终找出问题的根源。账号:root,密码:P@ssw0rd
任务1:
任务名称:提交挖矿文件的绝对路径
任务分数:2.00
任务类型:静态Flag
提交挖矿文件的绝对路径,最终以flag{/xxx/xxx}格式提交
打开一个命令窗口 依次输入下面的代码扫描全系统正在运行的二进制文件
for i in /proc/[0-9]*; do
ls -l $i/exe 2>/dev/null
done
在列出的所有进程中找到这个路径异常的进程 它指向的文件夹即为挖矿文件所在的路径(其实我一开始翻了一遍目录就直接看到了)

任务2:
任务名称:提交挖矿文件的外联IP与端口
任务分数:2.00
任务类型:静态Flag
提交挖矿文件的外联的IP与端口,最终以flag{ip:port}格式提交
查看当前网络连接的内容
ss -antp
找到挖矿程序指向的ip即为flag

任务3:
任务名称:守护进程脚本的绝对路径
任务分数:2.00
任务类型:静态Flag
停止挖矿进程并尝试删除挖矿程序,根据异常判断,提交守护进程脚本的绝对路径,最终以flag{/xxx/xxx/xxx/xxx}提交
通过题目可以得知挖矿程序是有守护脚本的 这里猜测使用的是cron
cat /etc/crontab

列出所有的内容 挨着去翻一翻里面的文件
ls -l /etc/cron.*

![]()
翻到第一个文件的时候就发现不对劲 继续往下看

进去发现是一个脚本 得到最终flag
任务4:
任务名称:异常处理
任务分数:2.00
任务类型:静态Flag
根据出现的异常及守护进程脚本,继续排查,以人为本,使用环境内浏览器访问:http://chat.internal-dev.net:8081 获取可疑网址,最终以flag{http://www.example.com}格式提交
在靶机内访问题目给的网站

通过会话得到一个网址(其实也没必要去验证了 因为就这一个网址能提交)
小张提到的这一个脚本在查看之后没有什么问题

访问钓鱼网站后将恶意程序下载下来 通过逆向发现其中出现了一开始的挖矿程序
任务5:
任务名称:分析病毒文件
任务分数:2.00
任务类型:静态Flag
分析病毒文件,提交其感染的所有程序,最终以flag{md5(/usr/bin/whoai,/usr/bin/ls,/usr/bin/top)}进行提交,顺序需以病毒文件中为准
(以下部分图片等内容来自于官方wp)
使用die看到程序没有加壳 并且使用c语言编写

在ida中打开该程序 并查看main的内容 在第八行找到程序文件名后点击跳转

在第14行中 sub_1670为感染程序的函数,unk_4040为挖矿程序(kworkerds)
查看sub_1670的内容

其中的24行取出了off_3CA8(指定文件列表),给到V4,然后V5取出第一个,比如ls程序,然后递归循环进行感染双击off_3CA8,下图证明所有指定的感染文件:

这样就得到了所有被感染的文件 整理在一起并转换为md5 即为flag
任务6:
任务名称:修复系统并恢复文件完整性
任务分数:2.00
任务类型:静态Flag
修复系统并恢复文件完整性:已知所有程序被感染,当前系统属于断网状态,所以作者贴心的在/deb_final目录下存放了对应程序的deb包,请尝试恢复所有程序,恢复完毕后在/var/flag/1文件获取flag
切换到/deb_final目录
dpkg -i --force-overwrite *.deb
恢复所有文件后得到flag

任务7:
任务名称:最终清理
任务分数:2.00
任务类型:静态Flag
最终清理:删除挖矿程序、删除计划任务及守护进程及清除相关进程,等待片刻在/var/flag/2获取flag
这个时候突然发现 我好像找不到挖矿程序的pid没法给他关了 还是因为任务1的时候非预期没有按照出题人的思路来走 现在得填个坑
输入top发现没反应 再来看alias

这里发现输入top被改成了返回一个空白内容 删掉这一串之后再次使用top命令
unalias top

这时候找到它的进程了 给它kill掉
kill -9 307

然后依次删除挖矿程序以及守护进程
rm -rf /tmp/k*
rm -rf /usr/bin/.0guardian
rm -rf /etc/cron.d/0guardian
最终耗时俩小时拿到全部flag(我草这题怎么这么长)

更多推荐



所有评论(0)