首页 >> 网络安全 >>病毒分析 >> 僵尸网络XorDDoS的原理分析与清除
详细内容

僵尸网络XorDDoS的原理分析与清除

家族背景以及现状介绍

XorDDoS僵尸网络家族从2014年一直存活至今,因其解密方法大量使用Xor而被命名为XorDDoS,该僵尸网络家族目前活跃程度仍旧较高,主要是攻击者对其C2一直持续进行更新,下图是深信服云脑中对XorDDoS网络请求趋势分析,从访问情况来看较为稳定。

1.jpg

下图为该僵尸网络家族在国内的感染分布图,可以看到主要存在广东以及江浙一带。

2.jpg

防护原理分析

深信服安全团队对XorDDos家族的防护原理进行详细分析,并对其做清除处理。主要进程的执行流程如下:

3.jpg

cron.hourly下的bash文件,其中包含了其比较明显的特征名称,曾经出现过以下几种(可能还有更多)

4.png

解密daemonname子串,解密部分其他文章已经做了很详细的分析,解密字符串如下:

5.jpg

6.jpg

然后会执行daemon(1,0)创建守护进程,守护进程的描述如下:

7.jpg

接下来它会对进程的参数数量做检查,主要包括对2个和3个参数的处理。


如果只有一个参数,会对当前运行文件的路径与/usr/bin/、/bin、/tmp目录做对比,如果不在上述任意一个目录,会进行创建/usr/bin、/bin、/tmp、/lib、/var/run目录,拷贝文件到/lib/libudev4.so(这只是其中一个变种),然后拷贝自身到/usr/bin、/bin、/tmp下面任意一个目录(名称为10个小写字母随机名,一个成功就不会拷贝到其他目录),并且变换md5,执行该文件。

8.jpg

9.jpg

10.jpg

11.jpg

这里的LinuxExec实际是dobulefork来创建子进程,然后再次调用execvp来创建一个新进程(2个参数)。

接下来就会删除当前运行的进程的自身文件。

当进程是运行在/usr/bin、/bin、/tmp任意一个目录下的,则会先获取共享内存,获取共享内存成功当前的进程pid写入共享内存。

18.jpg

然后转到添加服务,这里就是各种启动项以及定时任务。

19.jpg

生成一个随机ID,从之前的daemonname中随机挑选一个,然后将这个daemonname放到进程环境变量argv中,就会在系统中将本进程的名称改变,达到迷惑的作用。

接下来创建一个daemon_process线程,该线程会检测/var/run/xxx.pid文件;/lib目录下的母体文件,没有检测到母体文件就重新拷贝一份;检测当前进程的文件是否还存在,不存在则将当前进程杀死(这里是一个bug点,后续对清除有很大作用)。

24.jpg

daemon_process进程详细如下:

25.jpg

继续删除自身文件,重新创建文件和进程,这就是XorDDos进程终止后会被重新拉起的原因。

26.jpg

rootkit版本

XorDDoS的rootkit模块来源于https://github.com/mncoppola/suterusu项目,但在实际环境中,该模块的安装函数并没有执行,因此未能成功安装。


清除原理

从分析中知道,会有一个daemon_process线程对文件状态进行检测,文件不存在就将进程杀死,所以在将恶意启动项、定时任务等清除以后,使用chattr对xorddos涉及到的几个目录加锁,然后病毒进程就会自动终止,之后再将被加锁的文件夹恢复。


深信服为广大用户免费提供查杀脚本:

https://edr.sangfor.com.cn/api/download/chk_cln_xorddos.zip


原文链接:https://sec.sangfor.com.cn/wiki-safe-event/MTQ0ZTdiYjQtZjYwZS0xMWU5LWIxZDEtZmVmY2ZlMzMwNGM0/1/?category=B007_C0008.B007_C0001.B007_C0003

技术支持: 建站ABC | 管理登录