悄然崛起的挖矿机僵尸网络:打服务器挖价值百万门罗币

congtou 2017-9-3 最新资讯 0 1

第一部分 背景

360互联网安全中心监测到一种利用被入侵服务器进行门罗币挖矿的僵尸网络,该僵尸网络控制的服务器数量高峰时单日达到两万多台。僵尸网络建立初期利用“永恒之蓝”漏洞攻击武器入侵一定数量的计算机并以此作为僵尸网络发展的基础,之后这些计算机扫描其他计算机的1433端口(msSQL服务端口),尝试爆破目标计算机的msSQL服务,一旦爆破成功则登陆SQL Server执行恶意代码。目标计算机被僵尸网络控制之后同样会通过1433端口入侵其他计算机,僵尸网络因此不断扩大控制范围,最终形成现在这样的规模。

僵尸网络的蔓延离不开强大的Bot程序,通过代码同源性可以发现该家族的Bot程序的诞生最早可追溯到2014年。在2014年到2017年之间, Bot程序进行多次版本更新,最早的版本只是简单的入侵与远程控制,从2017年4月的版本开始, Bot程序借鉴多款扫描器、爆破工具以及著名僵尸网络mirai的实现,添加了多种针对不同协议的扫描爆破模块,并且实现了一套针对msSQL的“入侵+利用+传播”的攻击模块。Bot程序版本更替及传播量如下图所示。(图示中xx.x.x.x.x(x)表示的是Bot程序的版本,例如17.1.0.0.2(1)表示2017年编译的1.0.0.2版本的Bot程序变种1)

1

从图1-1中可以看出,Bot程序自4月底开始传播量开始出现爆发式增长,这正是作者利用“永恒之蓝”漏洞攻击武器进行僵尸网络建立的时间段。此外,Bot程序有一套完善的更新体系,当Bot程序检测到有新版本发布之后,将自动更新至最新版本。从图1种也不难看出,新版本传播量增加之后,老版本的传播量也相应地下降。

Bot程序当前的主要目的是安装门罗币挖矿机,利用服务器资源挖矿。截止目前,作者的门罗币钱包已经有高达1975枚门罗币,当前约合人民币167万。

1

Bot程序高度模块化,集合了多种不同的功能,并且具有完善的更新和持久驻留机制。

对Bot程序的分析将有助于了解该僵尸网络的传播机制。本文将通过对Bot程序的详细分析,挖掘该僵尸网络的工作原理,并据此讨论服务器在面对该僵尸网络时所需的预防措施以及防御策略。

 

第二部分 Bot程序分析

本文选用Bot程序2017年4月份编译的1.0.0.2版本作为分析的样本,样本MD5:10ace2e06cc8b5656d38eb2e6ed4f079。

Bot程序由main模块,update模块,Scanner模块,Cracker模块,ServerAgent模块和cService模块6个模块构成,模块之间互有联系,相互协作。以下将对每个模块执行的功能进行分析。

  1. main模块分析 

Bot程序是以控制台形式存在的,在介绍main模块之前先介绍Bot程序所接收的启动参数以及参数对应的功能。

1

这些启动参数满足以下几条规则:

1.当存在“-start”,“-stop”,“-create”和“-delete”中的多个时,只有第一个参数是有效的,因此作者引入“-run”参数配合“-create”参数以完成创建服务并启动服务的操作。

2.“-delete”参数在删除Bot服务之前会关闭该服务。

3.当未指定“-syn”参数时默认扫描器为TCP_CONNECT模式。

4.当同时存在“-srv”和“-cli”时只有第一个参数是是有效的,两者都不存在时默认为“-srv”。

5.当程序启动参数包含“-s”时,将以服务形式执行main模块,否则以控制台形式执行main模块。

main模块主要是进行一些准备工作以及配置并启用其他模块。在程序准备工作方面,主要包括以下几部分。

(1)获取系统信息。

1

(3)结束并禁用Network list Service和Network Location Awareness。Network list Service用于识别计算机已连接的网络,收集和存储这些网络的属性,并在更改这些属性时通知应用程序;Network Location Awareness用于收集并保存网络配置和位置信息,并在信息改动时通知应用程序。Bot程序关闭并禁用这些服务以防止自身的网络通信被记录。

1

完成初始化工作之后,main模块将创建新线程执行update模块。update模块检查Bot程序版本并根据情况进行更新。同时,main模块还作为Scanner模块,Cracker模块和ServerAgent模块的入口。

  1. update模块分析

update模块是Bot程序进行自更新的模块。当程序执行main模块时,将创建线程执行update模块进行版本检查及必要的更新。update模块每6小时进行一次更新检查。

1

进行更新检查时,update模块首先获取程序当前的版本号,之后通过博客地址“http://blog.sina.com.cn/s/blog_16fb721c50102x6hw.html”获得加密后的C&C的ip地址。将加密后的ip地址去除首尾的分隔符(***和@@@),经过base64解密并与0x36异或之后得到真实的ip地址(在本样本中,C&C ip地址为67.229.144.218,以下简称为“ip”)。

1

1

1

1

ps.jpg是末尾拼接了一个PE文件的图片。该PE文件就是最新版本的Bot程序。

1

my1.html是一个批处理脚本,功能与Cracker:mssql模块释放的批处理脚本123.dat基本相同,主要是创建一些需要的文件夹并为之后Cracker模块配置环境。

完成下载之后,cabs.exe会结束Bot程序的进程和服务,更新相关文件之后再重启Bot进程和服务。

  1. scanner模块分析

scanner模块修改自masscan(github:https://github.com/robertdavidgraham/masscan)。masscan是一个快速、灵活的端口扫描器,在windows下发包速度可达到每秒30万包。

在调用scanner模块进行扫描之前,Bot程序会配置一个excludefile,该文件指定ip段黑名单,在该范围中的ip地址将不会被扫描。ip黑名单以字符串的形式存放在Bot程序的资源段中,scanner模块在临时文件夹下创建excludefile,读取资源后将ip黑名单写入excludefile。

1

图2-3-1 读取ip黑名单资源并写入excludefile

在Bot程序2017年四月份编译的1.0.0.2版本和五月份编译的1.0.0.3版本的其中一个变种中未发现ip黑名单,在五月份编译的1.0.0.3版本的另一个变种中发现了ip黑名单。

1

对于每一个a类ip,scaner模块排除掉部分b段。由于全网扫描容易遭到监控,通过排除部分ip地址可以减少被发现的风险。

1

图2-3-4 部分scanner模块扫描的端口

scanner模块可通过两种模式进行端口扫描,分别是TCP_SYN扫描和TCP_CONNECT扫描。使用何种扫描模式由参数“-syn”决定,如果启动参数包含“-syn”则选择使用TCP_SYN模式进行端口扫描,否则选择TCP_CONNECT模式进行端口扫描。当选择TCP_SYN模式进行端口扫描时,Bot程序只发送SYN帧,端口开放回应SYN&ACK帧,端口关闭回应RST帧,;当选择TCP_CONNECT模式进行端口扫描时,Bot程序尝试连接目标端口,端口开放则连接成功,否则连接失败。

Scanner模块创建的最大扫描线程数由“-t”参数决定,“-t”的最大值为1800。在scanner模块创建扫描线程的同时会同时创建名为“CrackerWMI”的线程,但是在Bot程序发送的数据包中并未发现目的端口为135(wmi服务使用的端口)的数据包,推测可能是作者预留的尚未完善的功能。

1

图2-3-5 两种不同的扫描模式

scanner模块会记录开放特定端口的ip地址,并且与ServerAgent模块和Cracker模块进行交互完成“端口扫描+爆破+入侵”一系列工作。

 

  1. ServerAgent模块分析

 

ServerAgent模块由两部分功能组成。一是向C&C发送扫描结果;二是对端口扫描和爆破进行相应的配置工作。

ServerAgent模块在scanner模块扫描过程中连接C&C。当scanner模块扫描到开放的端口之后,ServerAgent模块将把对应的ip地址和端口号发送至C&C。

1

此外,ServerAgent模块下载密码字典并为Cracker模块配置密码字典,当scanner模块扫描到某ip地址的特定端口为开放状态时,将通过该字典进行爆破。字典的下载地址为http://ip:8888/wpd.dat,当下载完成之后,ServerAgent模块将从http://ip:8888/wpdmd5.txt获取正确的密码字典的MD5值并与下载的字典wpd.dat的MD5值进行对比以确定下载文件的正确性。下载的密码字典wpd.dat是经过加密的,ServerAgent模块读取密钥“cm9vdCpwd2Q=”,对密钥进行base64解密后,使用其解密wpt.dat。解密后的wpd.dat部分内容如下图所示。

1

1

1

1

  1. Cracker模块分析

 

Cracker模块是Bot程序中最重要的模块。该模块用于入侵目标计算机并在目标计算机上执行恶意代码。Cracker模块分为多个小模块,在分析的样本中包括Cracker:CCTV,Cracker:mssql, Cracker:RDP,Cracker:Telnet四个小模块。按照入侵的端口的不同,Cracker模块提供不同的攻击方式。下面将介绍每一种攻击的实现。

 

5.1  Cracker:mssql

 

由于Bot程序默认的密码字典wpd.dat中指定扫描的服务为msSQL,因此Cracker:mssql模块是所有Cracker模块中功能最为完善的。在大部分被感染的服务器的msSQL服务中都可以发现该模块所执行的恶意动作。

Cracker:mssql模块首先使用爆破字典爆破目标的msSQL服务。如果成功爆破目标,则登陆SQL Server执行下一步操作。

登陆SQL Server之后,需要在SQL Server中获得执行shell的权限,因此Cracker:mssql模块使用多种方式尝试获得执行shell的权限,包括:

  1. 恢复xp_cmdshell。

1

1

1

1

1

下载的文件中,item.dat是C&C用于控制Bot的远程控制软件;ms.rar实际上就是Bot程序的更新程序cab.exe;ss.bat和Cracker:mssql模块释放的123.bat是同一个文件;未找到op7key.rar文件,猜测与爆破字典类似。

从myusago.dvr下载的文件不难看出,Bot程序除了执行Cracker:mssql模块中硬编码的恶意代码之外,还通过云端下载相应的恶意程序,这保障与Bot程序相关联的恶意代码能够持续驻留。在分析的过程中我们发现,用于进行环境配置和程序运行控制的123.bat批处理脚本是更新最为频繁的,从2017年4月份起更新次数超过了10次。

myusago.dvr和myusa.dvr将作为ftp的参数写入命令行中并加入SQL Agent的Job中,每天执行一次。

  1. 将Bot程序加入SQL Agent的job中,并附带参数“-syn 1000”。每次SQL Agent启动时Bot程序也将启动。

1

1

1

Cracker:mssql模块还通过SQL Server执行多段shellcode,大部分的shellcode都以SQL Agent的Job形式存在并定期执行。

第一段shellcode使用wmi中的ActiveScriptEventConsumer类执行脚本代码。该脚本读取http://www.cyg2016.xyz:8888/test.html网页内容,并根据网页内容获取第二组网址,下载文件并执行。

1

下载的文件包括更新程序cabs.exe和挖矿机lsmosee.exe。挖矿机修改自xmr-stak(github:https://github.com/fireice-uk/xmr-stak-cpu),以32位形式编译,作者在此挖矿机中添加了一个模块,当需要64位挖矿机时,该模块将从C&C下载64位的挖矿机lsmose.exe到本地执行。本样本中,32位挖矿机的路径为“C:\\windows\help”,而64位挖矿机的路径修改为“C:\\windows\debug”。由于作者添加了SQL Agent的Job,使“C:\\windows\debug”路径下的exe文件每20分钟执行一次,猜测作者将挖矿机保存到此目录下是为了保证挖矿机能够稳定运行。

QQ截图20170903160417

1

1

1

第八段shellcode将123.bat加入启动项中,此处不再赘述。

第九段shellcode从http://down.mys2016.info:280下载文件到C:\\WINDOWS路径下,并命名为ps.exe。ps.exe实际上是PsExec,一款强大的远程执行工具,黑客在每台入侵的计算中部署该工具,使每台计算机成为一个控制端,方便构建一个庞大的僵尸网络。

1

1

5.2  Cracker:Telnet

 

Cracker:Telnet模块是除了Cracker:mssql模块之外较为完善的一个模块。作者充分利用mirai僵尸网络的优点构建了一套类似于mirai的Telnet入侵模块。

在执行Cracker:Telnet模块之前,Bot程序在ServerAgent模块中配置Telnet入侵攻击的payload。ServerAgent模块会根据不同的平台架构从资源段中读取payload并将其转化为十六进制字节码的形式。

1

1

由于Cracker:Telnet模块与mirai相差无几,在此不再赘述,感兴趣的读者可以查看mirai源码(github:https://github.com/jgamblin/Mirai-Source-Code)。

 

5.3  Cracker:RDP

 

Cracker:RDP模块修改自hydra(github:https://github.com/vanhauser-thc/thc-hydra)的RDP部分。hydra是一款支持多种网络服务的强大的暴力破解工具,Cracker:RDP模块使用了其源码中的rdp.c文件,用于对开放了RDP服务端口的计算机进行爆破。不同于Cracker:mssql模块和Cracker:Telnet模块,Cracker:RDP模块只是进行爆破而未加入任何入侵以及代码执行的功能。

1

图2-5-40 Cracker:CCTV模块扫描CCTV摄像头

由于在密码字典wpd.dat中并没有配置CCTV相关的键值,猜测该模块是和Cracker:Telnet模块结合使用的。由于mirai中含有识别特定IOT设备的代码,而Cracker:Telnet模块又是修改自mirai,猜测当Cracker:Telnet模块发现某台设备为CCTV摄像机时则通过Cracker:CCTV模块进行入侵。

 

5.5 其他模块

 

在Bot程序早期的版本中(2016年10月编译的版本)还发现了Cracker:MySQL模块,Cracker:SSH模块和Cracker:WMI模块,这些模块的功能都是在被入侵的计算机中执行shell。

1

不过这几个模块在之后的版本中都被移除了,而原本功能简单的Cracker:mssql模块在之后的版本中得到了完善。

cService模块分析

cService模块用于管理Bot服务,Bot服务是Service形式的Bot程序。

当Bot程序的启动参数中包含“-create”时,cService模块创建名为“xWinWpdSrv”的服务,该服务以“-s –syn 1500”作为启动参数启动Bot程序。

1

1

1

图2-6-5 Bot程序与其他组件关系图

 

第三部分 防御总结

 

从僵尸网络当前的攻击重点来看,防范其通过1433端口入侵计算机是非常有必要的。此外,Bot程序还有多种攻击方式尚未使用,这些攻击方式可能在未来的某一天被开启,因此也需要防范可能发生的攻击。对此,我们总结以下几个防御策略:

1.对于未遭到入侵的服务器,注意msSQL,RDP,Telnet等服务的弱口令问题。如果这些服务设置了弱口令,需要尽快修改;

2.对于无需使用的服务不要随意开放,开放的服务是黑客入侵的前提。对于必须使用的服务,注意相关服务的弱口令问题;

3.特别注意445端口的开放情况。由于黑客曾经使用永恒之蓝漏洞入侵计算机,不排除黑客故技重施。及时打上补丁更新操作系统是非常有必要的。

4.关注服务器运行状况,注意CPU占用率和进程列表和网络流量情况可以及时发现系统存在的异常。此外,注意系统账户情况,禁用不必要的账户。

5.对于网络摄像头持有者,建议修改默认密码以防止黑客直接使用默认密码爆破。

该僵尸网络现今主要依靠端口扫描和弱口令爆破进行传播,但其在“永恒之蓝”漏洞攻击武器出现之初就利用该武器入侵了一定数量的计算机,可见其对于最新曝光的漏洞利用以及攻击方法的掌握十分迅速,因此需时刻警惕其可能发起的重大攻击。

附录

 

  1. 相关文件MD5

1

  1. 相关ip地址和域名

1

 

密码字典

 

MySQL
root
root root
root 123
root 123456
phpmind phpmind
root admin123
root password
root root123
root 123456*a
mysqld 654321*a

 

msSQL
sa
sa sa
sa 123
sa 123456
sa password
sa 525464
sa shabixuege!@#
vice vice
sa 3xqan7,n`~!@ ~#$%^&*(),.;
sa 4xqan7,m`~!@ ~#$%^&*(),.;
mssqla 4xqan7,n`~!@ ~#$%^&*(),.;
mssqla 4xqan7,m`~!@ ~#$%^&*(),.;
mssqla 3xqan7,mm`~!@ ~#$%^&*(),.;
mssqla 3xqan7,m`~!@ ~#$%^&*(),.;
mssqla 3xqan7,n`~!@ ~#$%^&*(),.;
mssqla 4xqan7,mm`~!@ ~#$%^&*(),.;
sa 4xqbn7,m`~!@ ~#$%^&*(),.;
mssqla 4xqbn7,mm`~!@ ~#$%^&*(),.;
sa 4yqbn7,m`~!@ ~#$%^&*(),.;
mssqla 4yqbn7,mm`~!@ ~#$%^&*(),.;
sa 4yqbm7,m`~!@ ~#$%^&*(),.;
mssqla 4yqbm7,mm`~!@ ~#$%^&*(),.;
kisadmin ypbwkfyjhyhgzj
hbv7 zXJl@mwZ
bwsa bw99588399
ps 740316
uep U_tywg_2008
sa sa123
sa sasa
sa 12345
sa sunshine
sa trustno1
sa 111111
sa iloveyou
sa sql2005
sa DiscoJack
sa 1
401hk 401hk!@#
sa admin@123
sa sa2008
sa 123123
sa 1111
sa 1234
sa 12345678
sa 1234567890
sa passw0wd
sa abc
sa abc123
sa abcdefg
sysdba masterkey
sa bing_1433 xing
sa ^_^$$wanniMaBI:: 1433 vl
sa sapassword
sa linwen5555
su vice_1433 vice
sa Aa123456
sa ABCabc123
sa sqlpassword
sa 1qaz2wsx
sa 1qaz!QAZ
sa sql2008

 

Telnet
!!Huawei @HuaweiHgw
system ping ;sh
root 1001chin
root xc3511
root vizxv
admin admin
5up 5up
root
root jvbzd
root root
root 123
root hg2x0
root 123456
admin admin1234
root admin
superadmin Is$uper@dmin
admin
support support
admin 123456
1234 1234
Admin Admin
admin ho4uku6at
admin 123
admin 1234567
admin 12345
root 12345
admin root
e8telnet e8telnet
telecomadmin nE7jA%5m
e8ehomeasb e8ehomeasb
telnetadmin telnetadmin
e8ehome e8ehome
Zte521 Zte521
root Zte521
user password
admin password
root password
user user
root 888888
root grouter
root 666666
guest 12345
admin ZmqVfoSIP
admin 888888
admin guest
admin 666666
Admin 111111
admin oelinux123
Administrator meinsm
adminlvjh adminlvjh123
default antslq
root telnet
guest admin
netgear netgear
realtek realtek
root 88888888
service service
root cat1029
system system
root oelinux123
root tl789
telnet telnet
root GM8182
user qweasdzx
root hunt5759
root rootpassword
zte zte
root cisco
root telecomadmin
root 12345678
root default
huawei admin@huawei.com
root solokey
root twe8ehome
dvr dvr
supervisor supervisor
root 1234567890
root 0123456789
root rootroot
Manager manager
admin admin888
useradmin useradmin
ubnt ubnt
root dvr
cusadmin highspeed
cisco cisco
admin smcadmin
h3c h3c
admin benq1234
admin 12345678
root PASSWD
root passwd
ROOT PASSWD
huawei huawei
root h3c
root nmgx_wapia
toor toor
Huawei Huawei
admin private
root private

 

ssh
root
root root
root 123
root 123456
root i826y3tz
root password
ubnt ubnt
ubnt admin
root gwevrk7f@qwSX$fd

 

wmi
administrator

 

RDP
administrator 123
administrator 123456
administrator
administrator 1234
administrator 12345
administrator 5201314
administrator 1qaz2wsx
administrator Aa123456
administrator qwe123!@#
administrator qwe!@#
administrator 123qweqwe
administrator 654321
administrator admin
administrator 0
administrator password
administrator 123123
piress adminlv123
administrator p@ssw0rd
administrator 112233
administrator !@#123
administrator 1qaz2wsx3edc
administrator !@#qwe
administrator zxcvbnm
administrator login
administrator admin123
administrator 3389
administrator pass

转载请注明来自华盟网,本文标题:《悄然崛起的挖矿机僵尸网络:打服务器挖价值百万门罗币》

喜欢 (1) 发布评论