Linux平台ibus蠕虫C&C模块源码分析
2019-07-16 11:23:34 Author: www.secpulse.com(查看原文) 阅读量:276 收藏

近期,深信服安全团队在排查问题时,遇到一台主机不断访问恶意域名linuxsrv134.xp3.biz,尝试与之通信,通过对问题主机的排查和域名的威胁情报分析,关联到了一个2019年新型Linux蠕虫——ibus,本文针对其C&C模块进行详细分析。

进行第一阶段的初始化以及检测。判断/tmp/.Abe0ffdecac1a561be917bfded951a7a pid记录文件是否存在,判断是否存在已经运行的线程。

图片1.png

再重新fork一个进程。

图片2.png

并将新的pid记录到/tmp/.Abe0ffdecac1a561be917bfded951a7a文件。

图片3.png

进行第二阶段的初始化,判断配置文件/usr/share/hplip/data/images/24x24/.rc是否存在,其中包含配置文件的hash以及休眠时间。

图片4.png

图片5.png

判断预定的UUID是否为空,如果为空则生产新的UUID并写到/usr/share/hplip/data/images/24x24/Remove_user.png文件。

图片6.png

完成第二阶段初始化,进入循环执行阶段。

图片7.png

MAIN为主函数,通过调用check_relay, 判断是否还存在指令。

图片8.png

图片9.png

但是目前该域名已经过期了,获取不到任何的数据。

图片10.png

如果还有未执行的指令,就会调用Knock_Knock函数上传ID信息来获取被base64编码和异或加密的指令内容, 其指令任务内容主要分为4大类,分别为needregr、newtask、notasks以及newreconfig。

图片11.png

下图为任务处理过程。

图片12.png

具体指令功能见下表:

功能分类 功能编号 具体功能
Needregr
上传本地信息并更新配置文件
Newtask(任务执行) 1 下载执行
3 下载并且带参数执行
6 退出
9 进行自我更新
10 卸载
11 命令执行
notasks
根据休眠时长休眠
Newreconfig
重新配置配置文件hash以及休眠时长

如果没有指令或者网络有问题,为了继续通信,就会尝试以下4种方式。

图片13.png

1、尝试重连;

图片14.png

2、从备用网络linuxservers.000webhostapp.com以及linuxsrv134.xp3.biz等获取新的C&C地址进行通信;

图片15.png

图片16.png

目前该blog  linuxservers.000webhostapp.com的指令如下,通过隐藏属性隐藏。手动可以访问该内容,通过该脚本直接访问得到404。

图片17.png

3、通过解密函数,其解密分为2个部分,首先进行base64解码,再通过异或(“#”为key)得到如下更新信息;

图片18.png

图片19.png

根据DGA算法获取新的C2地址,但是该方法目前并没有实现。

4、通过查找5.196.70.86的开发端口,更新新的C2地址为5.2.73.127,端口更新为检测到的开放端口。

图片20.png

最后为了长时间驻留,其创建了定时任务,分为了用户态以及内核态两种定时任务。

用户态:每小时执行一次/bin/sh “/bin/nmi”,

内核态:每天执行一次/bin/sh “/var/run/pm-utils/locks/nbus”,

每周日执行/bin/sh “/usr/lib/rpm/platform/x86_x64-linux/.dbus”。

图片21.png

大多数时候,都是直接在root上查看,但是有些病毒是通过web漏洞等方式进来的,所以在排查的时候,需要确认一下目前能够使用的用户有哪些,并针对每个用户进行检查,不然会出现遗漏,不能正确定位问题所在。

IOC

IP&Domain:

5.196.70.86

5.2.73.127

speakupomaha.com

linuxservers.000webhostapp.com

linuxsrv134.xp3.biz


文章来源: https://www.secpulse.com/archives/109440.html
如有侵权请联系:admin#unsafe.sh