DDG僵尸矿业样本v3016技术分析

来源:未知 浏览 279次 时间 2021-04-12 07:19

0�0。前言

最近蜜罐捕获一个矿业样品列表确认DDG.Mining的3016版本。僵尸网络样品后分析。与之前的版本相比网站优化确认DDG.Mining的3016版本。僵尸网络样品后分析。与之前的版本相比3016版使用了一个新的分布式框架Memberlist构建僵尸网络。基于这个框架DDG僵尸网络可以实现C2分散更稳定SEO关键词DDG僵尸网络可以实现C2分散更稳定和管理扩大集群更灵活。

0�1。样本比较

干玉米酒糟是一个Linux恶意程序使用SSH和复述相关漏洞入侵服务器建立一个僵尸网络使用服务器资源开采虚拟货币(Monero)。分析后整个过程的样本行为如下:

DDG僵尸挖矿样本v3016技术分析

后与之前的版本相比DDG v3014样本发现样品的攻击模块ssh和复述没有太多变化和两个版本基本上是一样的。。通过bindiff您可以更直观地看到(ssh攻击模块):

DDG僵尸挖矿样本v3016技术分析

V3016版本和更新点Memberlist根据八卦是一个分布式的框架协议和由golang开发。八卦是分散的容错最终一致的协议。其基本思想是类似于流行病的传播。通过不断与集群中的节点交换信息经过多次交互八卦协议可以传输信息到所有节点从而迅速收敛达到一致性。

0�2。样品具体分析1。恢复函数名

干玉米酒糟由golang发达和符号表删除当编译成可执行文件但它包含了.gopclntab章节其中包含所有项目导入包信息:象征

DDG僵尸挖矿样本v3016技术分析

在互联网上使用现有的自动化工具来恢复大部分的函数名:

DDG僵尸挖矿样本v3016技术分析

2。系统论

程序有一个功能存储在.gopclntab函数名=包下name_the函数名包所以你可以找到所有的功能在主包通过直接搜索主关键词。我们从main_main入手分析功能。可以看出之前的版本与v3014版本一致。首先检测运行环境参数然后使用VividCortex / godaemon包golang建立自己作为一个守护进程:

DDG僵尸挖矿样本v3016技术分析

过程仍符合v3014首先调用main_singleInstance函数通过确定3016年。锁文件以确定是否存在ddg主程序一直运行在受害者的机器:

DDG僵尸挖矿样本v3016技术分析

第一运行main_NewGuard函数叫做监控一些特殊文件的更改。具体的实现使用golang fsnotify包。有三个文件监控对象:/root/.ssh / authorized_keys /var/spool/cron/crontabs/root /var/spool/cron/root.

DDG僵尸挖矿样本v3016技术分析

然后调用main_NewBackdoor和写内置的公钥的authorized_keys受害者机器通过main__ptr_backdoor_injectSSHKey函数在它完成ssh的植入后门。

DDG僵尸挖矿样本v3016技术分析

DDG僵尸挖矿样本v3016技术分析

3。集群节点施工后

守护进程被创建时文件监控和后门植入完成以下两个版本的过程不再是完全相同的:

DDG僵尸挖矿样本v3016技术分析

它可以清楚地看到从v3016的汇编代码版本使用main_MustXList函数取代main_NewXHosts v3014版本的函数和代码的执行流序列也发生了变化。v3016不下载并运行矿业项目首先从内置的IP列表。选择是构建分布式节点加入集群网络。节点建设的总体流程如下:

DDG僵尸挖矿样本v3016技术分析

让我们跟进这个新函数来看到它的具体实现。首先获得当前用户的主目录的受害者的机器然后拼接与3016年的道路。bs和开放:

DDG僵尸挖矿样本v3016技术分析

打开文件后使用golang bufio包在一个循环中读取文件的每一行并且不会内置列表中的内容存储在内置的ip列表和文件完成后关闭:

DDG僵尸挖矿样本v3016技术分析

然后构建一个分布式节点通过ddgs_xlist_New函数。节点名由干玉米酒糟版本号+主机名md5和新更新内置的ip列表传递到函数的节点名。

DDG僵尸挖矿样本v3016技术分析

如果样品到达受害者的机器第一次在3016年。bs文件肯定不存在然后ddgs_xlist_New中的ip列表通过使用最原始的内置:

DDG僵尸挖矿样本v3016技术分析

跟进ddgs_xlist_New函数你会发现这个示例使用Hashicorp的开源库memberlist去建立一个分布式网络这不是v3014中可用的版本。

DDG僵尸挖矿样本v3016技术分析

标签: 样本v3016分析技术僵尸挖矿