近期,深信服安全团队在排查问题时,遇到一台主机不断访问恶意域名linuxsrv134.xp3.biz,尝试与之通信,通过对问题主机的排查和域名的威胁情报分析,关联到了一个2019年新型Linux蠕虫——ibus,本文针对其C&C模块进行详细分析。
进行第一阶段的初始化以及检测。判断/tmp/.Abe0ffdecac1a561be917bfded951a7a pid记录文件是否存在,判断是否存在已经运行的线程。
再重新fork一个进程:
并将新的pid记录到/tmp/.Abe0ffdecac1a561be917bfded951a7a文件:
进行第二阶段的初始化,判断配置文件/usr/share/hplip/data/images/24×24/.rc是否存在,其中包含配置文件的hash以及休眠时间:
判断预定的UUID是否为空,如果为空则生产新的UUID并写到/usr/share/hplip/data/images/24×24/Remove_user.png文件。
完成第二阶段初始化,进入循环执行阶段:
MAIN为主函数,通过调用check_relay, 判断是否还存在指令:
但是目前该域名已经过期了,获取不到任何的数据。
如果还有未执行的指令,就会调用Knock_Knock函数上传ID信息来获取被base64编码和异或加密的指令内容, 其指令任务内容主要分为4大类,分别为needregr、newtask、notasks以及newreconfig。
下图为任务处理过程:
具体指令功能见下表:
功能分类 | 功能编号 | 具体功能 |
---|---|---|
Needregr | 上传本地信息并更新配置文件 | |
Newtask(任务执行) | 1 | 下载执行 |
3 | 下载并且带参数执行 | |
6 | 退出 | |
9 | 进行自我更新 | |
10 | 卸载 | |
11 | 命令执行 | |
notasks | 根据休眠时长休眠 | |
Newreconfig | 重新配置配置文件hash以及休眠时长 |
如果没有指令或者网络有问题,为了继续通信,就会尝试以下4种方式:
目前该blog linuxservers.000webhostapp.com的指令如下,通过隐藏属性隐藏。手动可以访问该内容,通过该脚本直接访问得到404:
根据DGA算法获取新的C2地址,但是该方法目前并没有实现。
最后为了长时间驻留,其创建了定时任务,分为了用户态以及内核态两种定时任务。
用户态:每小时执行一次/bin/sh “/bin/nmi”;
内核态:每天执行一次/bin/sh “/var/run/pm-utils/locks/nbus”;
每周日执行/bin/sh “/usr/lib/rpm/platform/x86_x64-linux/.dbus”。
大多数时候,都是直接在root上查看,但是有些病毒是通过web漏洞等方式进来的,所以在排查的时候,需要确认一下目前能够使用的用户有哪些,并针对每个用户进行检查,不然会出现遗漏,不能正确定位问题所在。
5.196.70.86
5.2.73.127
speakupomaha.com
linuxservers.000webhostapp.com
linuxsrv134.xp3.biz
*本文作者:深信服千里目安全实验室,转载请注明来自FreeBuf.COM