报告解读 > 正文

样本分析|网宿云安全新捕获DDG挖矿木马样本

2019-10-31

近日,网宿科技云安全团队新捕获DDG挖矿木马样本,木马通过ssh暴力破解主机成功后,上传i.sh脚本,i.sh脚本下载DDG挖矿木马并执行,经分析该挖矿木马样本为4004版本。

DDG挖矿僵尸网络主要通过漏洞攻陷主机,利用主机算力挖掘门罗币进行获利,并经过多个版本的迭代,具有P2P通信机制,最新版本又增加了针对Nexus、Supervisord的RCE漏洞攻击代码。

1 i.sh脚本

i.sh脚本作为攻击成功后首先上传并执行的脚本,其主要功能是设置自动执行(每15分钟一次),下载最新DDG样本并kill掉之前执行的版本,从脚本看4004大版本已经经过了8个小版本的迭代。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2 DDGv4004样本分析

通过脚本中的网址可以下载到DDGv4004样本,样本是用golang语言进行编写,并使用UPX 3.95进行加壳,使用官方工具可以脱壳成功。由于golang程序在编译的时候进行了剥离,去掉了符号文件,这里使用了IDAGolangHelper-master脚本进行还原,能保证还原出绝大部分函数名。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2.1监控关键文件

DDG使用开源fsnotify进行关键文件监控,主要监控文件如下:
/root/.ssh/authorized_keys
/var/spool/cron/root
/var/spool/cron/crontabs/root

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2.2 创建SSH后门

DDG通过植入硬编码的ssh公钥,写入authorized_keys中,实现ssh后门植入。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

对应的ssh公钥:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2.3 P2P机制

DDG通过借助hashicorp_memberlist实现了P2P机制,Memberlist是基于Gossip协议来传播消息,该Gossip是构建在swim协议之上,用P2P机制可以更好的管理僵尸网络的bots,相比于原来单纯的C2机制,现在更不容易被打击掉,并且配置数据通过RSA公钥进行校验,使整个系统更坚固。

样本通过main_MustXList函数加入到P2P网络中,与以往不同的是这次对HUP IP LIST进行了异或解密,而不是硬编码到样本中。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

通过异或解密出的IP加上“:7964|”组成IP列表,其中7964端口是用于P2P节点间通信的默认端口,这些ip大部分都是P2P网络中的其他节点,将作为加入这个P2P网络的“敲门砖”。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

通过github.com/shirou/gopsutil函数获取系统信息并计算出MD5与版本号结合构成节点名称如下所示:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

并将上面的IP列表与节点名称传入ddgs_xlist_New中,加入到P2P节点中:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

在加入之后,通过调用Memberlist_Members获取其他节点,加入到IP列表中:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2.4 挖矿获利

此僵尸网络主要通过挖掘门罗币进行获利, 执行代码主要在main_NewMinerd函数中。为了利益最大化,该僵尸网络加入了对抗其他挖矿僵尸网络的机制。一是通过云端下载专门清除其他挖矿家族的ELF文件:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

二是用main__ptr_minerd_killOtherMiners函数通过gopsutil获取CPU使用率,并干掉使用率超过30%的进程。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

在进行完清除工作后,开始调用ddgs_cmd__ptr_XRun_Do传入的参数有挖矿样本的本地路径:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

挖矿样本的远程路径:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

挖矿样本的MD5用于验证:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

并下载执行挖矿程序:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

使用的C2是通过atomic_store对内存unk_89AD5A8读取为132.148.241.138:8000,也可以通过在main_pingpong解析获取的配置文件后进行更新。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

下载的挖矿程序为XMRig 2.14.1编译的挖矿程序,里面内置的钱包为:
8AzmXnQJ4kjNmcE4w6mwVabzhUTZ4jsaj5rmBgJosvrD7ag7TPTG2U4Kruv5Mevxp2BE8K6n9YJGfeLYZzkCDUdNGHT8sUy

2.5 更新配置文件

DDG并不是完全的P2P机制的僵尸网络,在样本中还是通过C2机制获取配置文件、攻击指令,主要通过main_pingpong函数获取配置文件,配置文件是msgpack编码的:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

最后的Signature使用RSA私钥加密的部分需要使用以下函数加载公钥解密:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

对应的公钥:

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

2.6 攻击手段

DDG早期主要攻击ssh、Redis服务跟扫描OrientDB数据库服务器,现在新版中又增加了针对Nexus、Supervisord的RCE漏洞。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

3 挖矿收益

钱包:
8AzmXnQJ4kjNmcE4w6mwVabzhUTZ4jsaj5rmBgJosvrD7ag7TPTG2U4Kruv5Mevxp2BE8K6n9YJGfeLYZzkCDUdNGHT8sUy

可以看出总共产出12个门罗币左右。

网宿科技黄莎琳:5G 与边缘计算“相互成就” 会持续深耕

4 iOC

94054991ceb669ac23259117686b68e34a37d89ca8c89a3d0b17929c4d6ea7e6
2dfce07d7066cca93bc85d5c235ee9b4ed6cf4776a9f45dfcc8b14790e8b2912
153d2d55a57f578e5db52c828f2ef88d090e9d5a4585fa605865912e754a1416

5 参考

https://blog.netlab.360.com/tag/ddg/
https://www.freebuf.com/articles/network/194845.html
https://bbs.pediy.com/thread-254518.htm