32

Dota Campaign:分析一款挖矿与后门并存的木马

 4 years ago
source link: https://www.tuicool.com/articles/zABZ7jr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

就在前不久,我自己部署的一个蜜罐受到了一次特别严重的攻击,其中涉及到了两个远程访问工具和一个加密货币恶意挖矿文件。接下来,我将在这篇文章中跟大家分析一下这一波攻击,并看看攻击者所使用的攻击技术。值得一提的是,现在的互联网中这类攻击每秒钟都会发生一次。

初始感染

根据攻击文件的内容,我将此次攻击命名为了“Dota Campaign”。在此攻击活动中,攻击者通过弱SSH凭证获取到了目标设备的初始访问权。我的SSH蜜罐所使用的用户名和密码均为salvatore,下面给出的是我SSH日志的初始登录数据:

yY3M7ju.jpg!web

完成认证之后,攻击者立刻通过SSH执行了系统命令,而且所有命令都是通过实际的SSH命令传递进来的,因为我的系统是一个安装了自定义OpenSSH版本的蜜罐,所以我们可以查看到攻击者执行的命令:

Z3YZnqN.jpg!web

首先,攻击者通过HTTP向主机54.37.70[.]249请求了一个名为.x15cache的文件,然后在等待了10秒钟之后执行了该文件。除此之外,攻击者还将用户密码修改为了一个随机字符串。.x15cache文件的内容如下:

2iaU3qQ.jpg!web

由此看来,.x15cache文件应该只是一个负责设置环境的Dropper,它还会获取主机54.37.70[.]249中的其他文件。第二个文件名叫dota2.tar.gz,这个tar文件包含的是一段恶意代码,目录名为.rsync。我用我的文件检测脚本提取了该文件中的部分内容:

FveMf2m.jpg!web

.x15cache脚本会切换到这个.rsync目录中,然后尝试执行./cron和./anacron文件。攻击者使用了“||”或语句来让./cron文件先执行,如果执行失败则执行./anacron。.rsync目录中还有一个文件,这个文件似乎从来不会运行,我们一起看一看:

Ff63Ebi.jpg!web

i686架构针对的是32位环境,x86_64架构针对的是64位环境。如果cron是64位代码,那么anacron就是32位的了。运行之后我们也证实了这一点:

yIJBzqR.jpg!web

因为这两个文件其实做的是同一件事情,所以我们只需要分析其中一个就可以了。

分析cron代码

我们先通过strings命令收集一些基本信息,其中的“cryptonight”字符串吸引了我的注意:

2Eji6nQ.jpg!web

实际上,CryptoNight是一种工作量证明算法,它可以适用于普通PC的CPU,但它不适用于专门的挖矿设备,所以CryptoNight暂时只能用CPU挖矿。

得知它跟挖矿有关之后,我们看看strings命令还能找到些什么:

n6zqa2q.jpg!web

上图为xmrig命令的帮助页面,而它是一款针对门罗币的CPU挖矿软件。除此之外,我们还捕捉到了编译时间信息:2019年5月3日,也就是上个月。

接下来,我们一起分析一下网络流量。我们可以看到代码跟新的主机5.255.86[.]129:80建立了连接:

zIzMRzj.jpg!web

运行tcpdump捕捉流量后,我们用Wireshark对其进行了分析:

Vf6Nry3.jpg!web

客户端会向服务器发送一些json数据,而且这里还包含了XMrig参数以及cn参数(CryptoNight)。

攻击第二阶段

在运行了上述命令之外,攻击者还会在几秒钟之后运行另一波命令:

auY3i23.jpg!web

这一次,攻击者的操作目录为/dev/shm,并从之前的主机54.37.70[.]249获取rp和.satan这两个文件,。接下来,攻击者会尝试运行sudo命令来获取root权限,然后以root权限感染.satan脚本。.satan文件内容如下:

NnuMfuE.jpg!web

这个satan脚本首先会创建一个名为srsync的系统服务文件,然后自动运行。srsync服务会调用脚本/usr/local/bin/srsync.sh,而srsync.sh脚本会运行rsync.pl在这个perl脚本以及ps.bin代码文件。rsync.pl脚本来自于/dev/shm/rp,会跟.satan脚本一起从服务器传送过来,并使用wget命令获取ps.bin代码文件(来自于主机54.37.70[.]249)。需要注意的是,在恶意挖矿软件中,攻击者使用了crul作为wget的备用命令,

分析ps.bin文件

简单分析后,我发现ps.bin是实际上是一个32位代码文件:

b6NJnuE.jpg!web

使用strings搜索之后,我发现代码提到了ssh,所有我又用grep命令搜索了“ssh”:

eyMvyiJ.jpg!web

我首先注意到的是一个用于向~/authorized_keys文件添加RSA密钥的系统命令,实际上这就是在创建一个SSH后门,因为攻击者可以使用关联的RSA私钥来实现账号认证。随后我还发现了大量跟ssh有关的内容,原来这些都属于函数名称:

fUfYf2U.jpg!web

就此看来,我们面对的就是一个纯SSH后门了。

代码分析

首先,我们看一看后门代码中的IP地址:

qYBZBbq.jpg!web

而且变量名明显为西班牙语,emmmm…..

接下来,定位到软件主函数的循环:

iYbuuya.jpg!web

它主要负责持续监听IRC服务器发送过来的命令,parse函数用来判断命令内容:

j2Uv222.jpg!web

我还注意到了一个针对shell函数的调用:

FVZvyuq.jpg!web

$comando指的就是系统命令了,看来这又是第二个后门,而这个后门基于的是IRC信道。我们可以通通过netstat命令来查看信道的连接和建立:

FF7FZny.jpg!web

设置好tcpdump命令后,运行perl脚本,然后通过WireShark分析流量,下面给出的是完整的TCP数据流:

UbAr6jR.jpg!web

这是标准的IRC流量,客户端会持续获取用户名,成功之后便会加入一个##root信道,而且服务器端还是2019年5月7日创建的。

值得一提的是,这里面似乎还嵌入了一部分DoS攻击代码:

ZBj22aA.jpg!web

入侵威胁指标IoC-哈希(MD5)

.satan: 36e692c1e58b53f54ae4966d15fdfa84
rsync.pl: 52a422722c479d8c5483d2db9267e4cd
ps.bin: 04d0658afae3ea7b0fdaf6a519f2e28c
dota2.tar.gz: 2cfb1ad304940ae7e3af954d5c1d1363
.x15cache: 6d6fb279bb78b25413a441e4bfd3ded9
cron: fdb085727694e327c8758061a224166b
anacron: 2c15d9bcd208c9446b14452d25d9ca84

* 参考来源: kindredsec ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK