[【通过】] 某DdosXor变种病毒查杀记录

[复制链接]
liil 发表于 2018-12-10 13:03:00 | 显示全部楼层 |阅读模式

正式成员|主题 |帖子 |积分 107

本帖最后由 liil 于 2018-12-10 13:03 编辑

0x00  事件背景

  前不久的某天,接到消息说xx服务器异常,现状是大量往外发包,当时还跑着其他重要业务,还不能停,所以情况比较紧急。通过排查分析,总算是解决了这个问题,我这就抛砖引玉的记录下排查分析过程及其过程中的一些坑,如有误的地方,请各位大佬多多指教。
0x01  现状分析

通过排查分析,发现当时情况如下:
1. 多个ssh连接及其多个连接历史记录,部分ip来自外国;
2. 4个ntpd进程占用cpu97%以上,并向外大量发包;
3. 网卡向外发送数据量多达6.8T之多;
4. 历史命令中发现下载病毒及操作命令;
5. 进程杀了过不了多久病毒会自动重启;
6. 开机启动项中存在病毒的定时启动脚本。

下面是部分图片:
1540359002313.png
1540358997445.png
1540359216142.png
1540359536604.png


0x02  找病毒

通过开启启动项发现如下信息:
1540362265106.png
1540362299566.png
1540360234845.png

将压缩包放到https://www.virustotal.com查毒得到如下结果:
1540360324814.png

根据进程查可疑文件位置:
1. 查可疑进程pid:netstat、top、nethogs、lsof filename等命令
2. 根据pid查文件位置:ll /proc/pid
这里就不一一写详情了,直接上其他部分扫描结果:

1540360624619.png
1540360716054.png

0x03  自动杀毒

根据扫描的信息基本能够判断属于Ddos病毒,属于DdosXor变种,直接安装clamAV查杀试试:
安装clamAV杀毒软件:
apt-get install clamav
更新病毒库:
freshclam
全盘扫描:
sudo clamscan -r --remove  --bell -i /

最终发现16个:
/lib/libudev.so: Unix.Trojan.DDoS_XOR-1 FOUND
/usr/bin/.sshd: Unix.Trojan.Agent-37008 FOUND
/usr/bin/chef: Unix.Trojan.Agent-37008 FOUND
/usr/bin/glitmtahmq: Unix.Trojan.DDoS_XOR-1 FOUND
/usr/bin/bsd-port/getty: Unix.Trojan.Agent-37008 FOUND
/usr/bin/bsd-port/knerl: Legacy.Trojan.Agent-1388639 FOUND
/usr/bin/lsof: Unix.Trojan.Agent-37008 FOUND
/bin/netstat: Unix.Trojan.Agent-37008 FOUND
/bin/ps: Unix.Trojan.Agent-37008 FOUND
/bin/ss: Unix.Trojan.Agent-37008 FOUND
/tmp/xm.tgz: Unix.Malware.Agent-1395346 FOUND
/etc/libstdc: Unix.Trojan.Agent-37008 FOUND
/root/xf123.1: Unix.Trojan.Agent-37008 FOUND
/root/xf123: Unix.Trojan.Agent-37008 FOUND
/mnt/.gosh/uctkone: Unix.Trojan.Agent-37008 FOUND
/mnt/uctkone: Unix.Trojan.Agent-37008 FOUND

这里可以看到netstat、ps、ss、lsof命令被替换及多个病毒。
由于病毒的多个守护进程导致杀毒软件无法杀死,杀了这个病毒文件立马生成新文件。

0x04  手动杀毒

根据扫出来的信息,虽然杀软不能杀干净,但检测出来了就很省事,先从简单的开始做,重装被替换的命令:
apt install procps
apt install iproute
apt install net-tools
apt install lsof

由于多个文件加了i属性,无法直接删除,需要手动去掉属性并删除,我以下面这个举例说明:
chattr -i /usr/bin/bsd-port/knerl
rm -rf /usr/bin/bsd-port/knerl

前面这些删除问题不大,难点在于文件删除后立马生成,无法删除:
/lib/libudev.so

这里直接写解决方案吧:
删定时启动脚本:rm -rf /etc/cron.hourly/gcc.sh
编辑定时启动内容:crontab -e
破坏libudev.so并+i属性不允许病毒修改 :
lsattr libudev.so
chattr -i libudev.so
echo fuck > libudev.so
chattr +i libudev.so
杀进程:
kill -9 【ntpd】的pid(现在就可以正常杀进程了)
另外发现类似的地方:
/lib/systemd/systemd-udevd

杀了这几个进程后,cpu立马降下来了:
1540363433926.png
正常来讲,后续的工作就是简单的去除下开机启动项、清理下残余文件就完了,但是,没想到的是下面这个坑花了不少时间,先说下当时的情况,在下面多个目录有多个文件删了直接生成新的随机文件
/etc/cron.hourly/niinxibu.sh (这些文件名都是随机生成的)
/usr/bin/glitmtahmq
/bin/kackzkpcy.sh
/etc/rc*.d/S90....

类似这样,删了立马出新文件:
1540363902010.png
关键是这些clamAV检测不到,由于是生成新的文件,这里就没办法用之前的方法破坏源文件并+i属性,就类似这样,不管是杀进程还是删文件或是改文件,只要有问题,病毒立马生成个新的;另外,此病毒有外连ip的操作:
1540364325479.png
1540364849363.png

最后,在说解决方案之前先说下关键点:
由于程序内部判断进程被杀或文件被删会触发自启动,这里改文件、杀进程行不通,那有没有一种方法可以在不杀进程的情况下删除文件?

答案是有的,我们可以通过停止进程而不是关闭进程来避免触发病毒自启动,这样进程停之后就解除了文件占用就可以正常删除病毒文件了
停止进程命令是:kill -stop pid

下面是实际过程中的命令:
lsof /bin/yrphrvgclwpom
<b>kill -stop 89777  (关键步骤)</b>
rm -rf yrphrvgclwpom
rm -rf mopwlcgvrhpry*
kill -9 89777

最后,发现了usr/bin/[也有问题,采取上面的方法去除即可;病毒在.ssh目录下留了公钥,记得删除就好。
0x05  结语
    通过此次应急响应,也算是一次学习和实践的过程,小弟才疏学浅,行文当中难免有误,望各位大佬不吝指教。另外,如有更好的解决方案,欢迎各位大佬多多交流。 最后,大家如有兴趣分析此病毒,可以找我拿样本。





评分

参与人数 2酒票 +6 收起 理由
管理05 + 5 欢迎加入90!
mx7krshell + 1 欢迎加入90!

查看全部评分

快速回复 返回顶部 返回列表