用户
搜索
  • TA的每日心情
    开心
    2016-8-7 00:03
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    版主

    关注信息安全

    Rank: 7Rank: 7Rank: 7

    251

    主题

    728

    帖子

    1627

    魔法币
    收听
    2
    粉丝
    21
    注册时间
    2016-2-1

    秦春秋游侠核心白帽i春秋签约作者

    中国Cold 版主 关注信息安全 秦 春秋游侠 核心白帽 i春秋签约作者 楼主
    发表于 2017-9-4 14:28:53 921758
    本帖最后由 中国Cold 于 2017-9-4 14:55 编辑

    本文来自360投稿



    第一部分 背景

    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.png

    图1-1 Bot程序版本更替及感染量概览图


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


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





    1.2.png

    图1-2 作者门罗币钱包概况


    Bot程序高度模块化,集合了多种不同的功能,并且具有完善的更新和持久驻留机制。
    对Bot程序的分析将有助于了解该僵尸网络的传播机制。本文将通过对Bot程序的详细分析,挖掘该僵尸网络的工作原理,并据此讨论服务器在面对该僵尸网络时所需的预防措施以及防御策略。

    第二部分 Bot程序分析



    本文选用Bot程序2017年4月份编译的1.0.0.2版本作为分析的样本,
    [AppleScript] 纯文本查看 复制代码
    样本MD5:10ace2e06cc8b5656d38eb2e6ed4f079

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

    1.main模块分析


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

    2.png

    表2-1-1 Bot程序所接收的参数及对应的功能


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

    1.当存在“-start”,“-stop”,“-create”和“-delete”中的多个时,只有第一个参数是有效的,因此作者引入“-run”参数配合“-create”参数以完成创建服务并启动服务的操作。
    2.“-delete”参数在删除Bot服务之前会关闭该服务。
    3.当未指定“-syn”参数时默认扫描器为TCP_CONNECT模式。
    4.当同时存在“-srv”和“-cli”时只有第一个参数是是有效的,两者都不存在时默认为“-srv”。
    5.当程序启动参数包含“-s”时,将以服务形式执行main模块,否则以控制台形式执行main模块。
    main模块主要是进行一些准备工作以及配置并启用其他模块。在程序准备工作方面,主要包括以下几部分。

    (1)获取系统信息。
    211.png

    图2-1-1 获取系统信息


    (2)判断系统类型是否为Server。

    212.png

    图2-1-2 判断系统类型


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

    213.png

    图2-1-3 结束并禁用Network list Service和Network Location Awareness


    (4)结束并禁用SharedAccess和MpsSvc(Intemet连接共享和防火墙服务)以保障Bot程序的网络通信能够正常进行,并且删除日志文件。

    214.png

    图2-1-4结束并禁用SharedAccess和MpsSvc


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

    2.update模块分析

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

    215.png

    图2-2-1 创建线程执行update模块


    216.png

    图2-2-2 调用Sleep函数以定期执行update模块


    进行更新检查时,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”)。

    217.png

    图2-2-3 博客中加密的ip地址


    http://ip:8888/ver.txt中存放最新的Bot程序版本号,update模块读取该版本号并与当前Bot程序的版本号进行对比。当两者相同时,则认为程序已经更新到最新版本,继续执行后续功能;当两者不同时,则对程序进行更新。

    218.png

    图2-2-4 对比Bot程序版本和最新版本号


    219.png

    图2-2-5 最新的版本号


    若Bot程序未更新到最新版本,则进行更新。最新版本的Bot程序通过路径C://windows/system下的更新程序cabs.exe获取。若cabs.exe不存在,则Bot程序将从http://ip:8888/ups.rar下载cab.exe,并启动该程序进行更新。

    225.png

    图2-2-5 下载更新程序cab.exe并启动更新


    cabs.exe会判断当前计算机系统是否为Windows Server,只有当当前计算机系统为Windows Server时才会执行更新。


    226.png

    图2-2-6 判断当前系统是否为Windows Server


    如果当前计算机系统为Windows Server,则访问http://ip:8888/update.txt获取最新的下载列表,并将下载列表下载到c:\\windows\\system路径下,命名为upslist.txt。

    227.png

    图2-2-7 下载下载列表

    下载列表中包含两个文件ps.jpg和my1.html。

    228.png

    2-2-8 下载列表内容

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

    2-2-9 藏有最新版本Bot程序的图片

    2210.png

    2-2-10 图片中监测到的PE文件特征

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

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

    1. scanner模块分析


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

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

    231.png

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

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

    2-3-2 存放在Bot程序资源段中的ip黑名单

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

    2-3-3 scanner模块排除部分ip地址后扫描全网

    scanner模块能够扫描的端口包括1433端口,3306端口,135端口,22端口,445端口,23端口,80端口和3389端口。
    234.png

    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程序发送的数据包中并未发现目的端口为135wmi服务使用的端口)的数据包,推测可能是作者预留的尚未完善的功能。
    235.png

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

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


    2. ServerAgent模块分析


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

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

    2-4-1 ServerAgent模块连接C&C

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

    242.png

    2-4-2 密码字典的部分内容

            wpd.dat实际上是一个xml文件,里面包含mysqlmssqltelnetwmisshrdp的密码字典以及不同的入侵方式执行的shell。此外,wpd.dat中存在一个名为ports的键,当该键的某个子健键值为1时,ServerAgent模块将配置scanner模块使其扫描该子键对应的端口。

    243.png

    2-4-3 ports键概览

            在默认的wpd.dat中,只有mssql子键的值设为1,因此scanner模块只扫描mssql服务对应的端口(端口号1433)。黑客可以通过配置wpd.dat文件增加、减少、修改扫描端口的数目和类别。

    244.png

    2-4-4 从抓包数据发现Bot程序只扫描1433端口

            有趣的是,ServerAgent模块选择随机的ip段作为每一轮扫描的ip范围,这和mirai僵尸网络的做法十分相似。如下所示,get_random_ip函数生成的随机ip段为220.176.171.93~220.182.171.87,因此本轮扫描中scanner模块对该ip段进行扫描。

    2-4-5 ServerAgent模块计算并选取随机ip

    246.png

    2-4-6 测试中生成的随机ip

    247.png

    2-4-7 从抓包数据中发现此轮扫描中Bot程序扫描其随机生成的ip


    3. Cracker模块分析

    Cracker模块是Bot程序中最重要的模块。该模块用于入侵目标计算机并在目标计算机上执行恶意代码。Cracker模块分为多个小模块,在分析的样本中包括Cracker:CCTVCracker:mssqlCracker:RDPCracker: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

    248.png

    2-5-1 恢复xp_cmdshell

    2. 开启被禁止的xp_cmdshell

    249.png

    2-5-2 开启xp_cmdshell

    3. xp_cmdshell被删除后,使用SP_OACreate执行shell

    253.png

    2-5-3 使用SP_OACreate执行shell

    4.         开启CLR enabled选项,使用SQL Server CLR执行shell。

    254.png

    2-5-4 开启CLR enabled选项

    5.         注册regsvr32.dll执行远端代码所需的组件,使用regsvr32.dll执行shell

    255.png

    2-5-5 注册相关组件

    6.         通过沙盒执行shell

    256.png

    2-5-6 通过沙盒执行shell

    7. 开启SQL Agent服务,使用SQL Agent服务执行shell
    257.png

    2-5-7 开启SQL Agent服务

    Cracker:mssql模块所执行的主要功能主要包括以下几方面:

    1. 在c:\\windows\system32\wbem下创建批处理文件123.dat,并在该文件中写入内容。

    258.png

    2-5-8 创建123.bat

            该批处理文件执行的功能包括对一些程序运行所涉及到的文件和文件夹进行权限设置;使用regsvr32.dll执行远端代码;判断是否存在item.dat,若存在则调用rundll32执行该程序。item.dat是修改自PCSharegithubhttps://github.com/isuhao/pcshare)的远程控制程序,C&C通过item.dat控制Bot

    2.         创建文件PerfStringse.ini,并在该文件中写入内容。

    259.png

    2-5-9 创建PerfStringse.ini

    该文件是个组策略模板文件,主要是禁止一些涉及到的文件的访问权限。在创建该模板文件之后调用secedit.exe配置组策略
    2510.png

    2-5-10 调用secedit.exe配置组策略

    3.         在c:\\windows\system下创建文件myusa.dvr,并在文件中写入内容。

    2511.png

    2-5-11 创建myusa.dvr

            myusa.dvr是个ftp下载脚本,主要功能是从down.mys2016.info下载文件1.dat到本地c:\\windows\system路径下,命名为myusago.dvr;下载1.bat到本地c:\\windows\system路径下,命名为backs.bat

    myusago.dvr也是个ftp下载脚本,从down.mys2016.info下载多个文件到本地;backs.bat用于记录系统时间并写入1.txt中。

    2512.png

    2-5-12 myusago.dvr内容

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

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

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

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

    2513.png

    2-5-13 Bot程序加入SQL AgentJob

    5. Job的形式每20分钟运行一次C\\Progra~1\mainsoft\install.exe。该程序是一个挂机赚分软件。

    2514.png

    2-5-14 Job形式执行install.exe

    6. Job的形式每20分钟执行C:\\windows\debugC:\\Progra~1\\shengdaC:\\Progra~1\\kugou2010路径下的所有exe。从我们的监控中发现,Bot程序所释放的挖矿机以及能给黑客带来直接收益的程序都存在于这几个路径中,黑客通过定时启动这些程序保证收益的源源不断。

    2515.png

    2-5-15 定时执行C:\\windows\debug下的exe

    2516.png

    2-5-16 定时执行C:\\Progra~1\\shengda下的exe

    2517.png

    2-5-17 定时执行C:\\Progra~1\\kugou2010下的exe

    7. 创建ftp下载脚本msinfo.dat,该脚本从down.mys2016.info下载文件到C:\\windows\debug路径下,并命名为bss.exe。之后通过批处理脚本msinfo.bat调用ftp执行下载脚本,下载完成后启动bss.exe,并删除这两个脚本。bss.exe疑似是个远控木马。

    2518.png

    2-5-18 msinfo.dat内容

    2519.png

    2-5-19 msinfo.bat内容

    8. item.dat123.bat加入启动项中。
    2520.png

    2-5-20 item.dat加入启动项中

    2521.png

    2-5-21 123.bat加入启动项中

    9. 确定权限允许之后,删除SQL用户,并设置SQL SA(超级管理员)帐户及密码,同时添加多个SQL帐户。完成这步操作之后,黑客正式接管该计算机的SQL Server,管理员无法再通过之前的帐户登录SQL Server

    2522.png

    2-5-22 添加SQL SA

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

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

    2523.png

    2-5-23 第一段shellcode内容

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

    2524.png
    2-5-24 下载挖矿机和更新程序

            第二段shellcode使用js脚本执行恶意代码,脚本功能与第一段shellcode中的jscript代码相同。

    2525.png

    2-5-25 第二段shellcode内容

            第三段shellcode同样使用wmi脚本执行jscript代码,所执行的功能与创建的批处理文件123.bat的功能相同,猜测作者此举为了防止文件123.bat被杀毒软件清除而执行的备用方案。

    2526.png

    2-5-26 第三段shellcode内容

            第四段shellcode是第三段shellcodejs版本。不难发现,作者对于每段shellcode都准备了wmijs两种版本,以确保脚本执行的稳定性。

    2527.png

    2-5-27 第四段shellcode内容

            第五段shellcode通过恢复cmdshell,恢复SP_OACreate等方式保证能通过SQL Server执行shell,猜测作者通过Job定期执行这段shellcode以保证shell能长期存活。
    2528.png

    2-5-28 第五段shellcode内容

            第六段shellcode删除C:\\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5路径下的文件。由于下载文件时都会在该目录下留下对应的tmp文件,作者此举是为了防止用户通过该目录发现可疑文件,可见作者对痕迹的清理十分细心。
    2529.png

    2-5-29 第六段shellcode内容

            第七段shellcode使用js脚本访问http://www.cyg2016.xyz:8888/kill.html,该页面是个文件名列表。脚本搜寻系统中是否存在与该页面返回的文件名相同的文件,若存在则结束对应进程并将文件删除。这些文件大多数是一些其他入侵者释放的挖矿机。

    2530.png

    2-5-30 第七段shellcode内容

    透过这些文件名我们发现了一个有趣的现象,在被删除的文件中包含了一些和Bot程序释放的挖矿机文件名十分相似的文件,例如C:\\windows\debug\lsmosee.exeBot程序释放的挖矿机是c:\\windows\help\lsmosee.exe和C:\\windows\debug\lsmose.exe)。是作者通过这样的方式进行更新,淘汰旧的挖矿机,还是其他入侵者利用Bot程序定时执行C:\\windows\debug路径下程序的特性坐收渔翁之利就不得而知了。

    2531.png

    2-5-31 待删除文件列表

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

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

    2532.png

    2-5-32 第九段shellcode内容

            第十段shellcode主要是完成SQL提权的一系列操作。

    2533.png

    2-5-33 第十段shellcode内容

            第十一段shellcode是利用SQL Server CLR执行shellpayload,从payload中可以发现其访问http://www.cyg2016.xyz:8888/clr.txt并执行该页面中返回的内容。

    2534.png

    2-5-34 payload的部分内容

            该页面和http://www.cyg2016.xyz:8888/test.html一致,即下载更新程序和挖矿机到计算机中并运行。

            Cracker:mssql模块完成了Bot程序几乎所有要完成的功能,包括更新、挖矿、清除同类程序、定时任务以及SQL Server管理员账户的设置。由于作者目前的密码字典中将mssql作为唯一攻击目标,因此Cracker:mssql模块如此完善也是可以理解的。若之后作者开启了其他攻击方式,其他的Cracker模块也将变得更加完善。


    5.2 Cracker:Telnet

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

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

    2535.png

    2-5-35 从资源段读取payload

            payload中我们发现一些mirai相关的标识,通过对比发现Bot程序所使用的payload就是mirai僵尸网络的
    payloadgithubhttps://github.com/jgamblin/Mirai-Source-Code/tree/master/loader/bins),这些payload适用于不同的平台架构(armarm7m68kmipsmpslppcsh4spcx86)。

    2536.png

    2-5-36 payloadmirai的相关标识

            除了payloadmirai相同之外,Cracker:Telnet模块也基本修改自mirai源码,包含密码爆破功能和入侵功能。

    2537.png

    2-5-37 Cracker:Telnet模块中的mirai特征

    mirai在通过Telnet入侵之前会配置一个ip地址用于作为report服务器地址,用于返回扫描结果,在分析中我们也发现了一个疑似report服务器ip地址。如果Bot程序的启动参数中包含“-srv”,则ServerAgent模块会从密码字典中读取名为telnetip的子键的键值,该键值是个ip地址,之后被传入Cracker:Telnet模块中。如果启动参数中包含“-cli”,Bot程序会从当前目录下的wpdconfig.ini文件中读取ip地址。

    2538.png

    2-5-38 密码字典中的report服务器地址

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


    5.3 Cracker:RDP

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

    2539.png

    2-5-39 Cracker:RDP模块扫描端口
    5.4  Cracker:CCTV

    Cracker:CCTV模块是一个CCTV摄像头入侵模块。该模块会向http://Targetip:port/shell?...的内容猜测是用户名&密码)发送GET请求,一旦请求返回的状态值不为400401403404500,则认为该ip地址和端口号对应的CCTV摄像头可以被入侵。

    2540.png

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

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


    5.5 其他模块


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

    2-5-41 Cracker:MySQL模块

    2542.png

    2-5-41 Cracker:WMI模块

    2543.png

    2-5-41 Cracker:WMI模块

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


    4. cService模块分析

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

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

    2-6-1 创建Bot服务

            Bot程序的启动参数包含“-delete”时,cService模块删除“xWinWpdSrv”服务。

    262.png

    2-6-2 删除Bot服务

            Bot程序的启动参数包含“-start”时,cService模块启动“xWinWpdSrv”服务。

    263.png

    2-6-3 启动Bot服务

            Bot程序的启动参数包含“-stop”时,cService模块停止“xWinWpdSrv”服务。

    264.png

    2-6-4 停止Bot服务

            Bot程序模块众多,并且各模块之间关系紧密,相互配合。此外,Bot程序与其他组件相辅相成,以保证攻击者对计算机的持久控制以及僵尸网络的不断壮大。以下将用一个关系图描述Bot程序与其他组件之间的关联。

    265.png

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


    第三部分 防御总结

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

            1.对于未遭到入侵的服务器,注意msSQLRDPTelnet等服务的弱口令问题。如果这些服务设置了弱口令,需要尽快修改;
            2.对于无需使用的服务不要随意开放,开放的服务是黑客入侵的前提。对于必须使用的服务,注意相关服务的弱口令问题;
            3.特别注意445端口的开放情况。由于黑客曾经使用永恒之蓝漏洞入侵计算机,不排除黑客故技重施。及时打上补丁更新操作系统是非常有必要的。
            4.关注服务器运行状况,注意CPU占用率和进程列表和网络流量情况可以及时发现系统存在的异常。此外,注意系统账户情况,禁用不必要的账户。
            5.对于网络摄像头持有者,建议修改默认密码以防止黑客直接使用默认密码爆破。
            该僵尸网络现今主要依靠端口扫描和弱口令爆破进行传播,但其在“永恒之蓝”漏洞攻击武器出现之初就利用该武器入侵了一定数量的计算机,可见其对于最新曝光的漏洞利用以及攻击方法的掌握十分迅速,因此需时刻警惕其可能发起的重大攻击。


    附录
    1. 相关文件MD5
    MD5
    042ac6f93597e80112a1c42fdb79e3df
    42c0b80fe0a28401f2b64a522f1dea84
    d7378a709dc4deb1a034676c43de503a
    ad0496f544762a95af11f9314e434e94
    5707f1e71da33a1ab9fe2796dbe3fc74
    5af3bab901735575d5d0958921174b17
    6a936ad69c708f3ac70da2f76b8b619e
    fe04395c95cdd102aeabbf6b915c1a5e
    f068b7be8685c91bddbb186f6fad7962
    10ace2e06cc8b5656d38eb2e6ed4f079
    a38a1e11f7222f7c48aaf33e20c78f48
    6b13994f83dad0d45764911a88564a7b
    f249446c28ab983c395ca4e198db3528
    7b7b1c2a2201aebf22aaf8fe7901c0e9
    ca748d5eac754e0b0026474ae7a51f3f
    e81e96be9d90a1a1a0871196d0374c26
    75f6543447b4726c56d183951526b379
    98d615c222293ca937ab4b1b4a7c8118
    c3a5859a5d438ff3f62d81ec3894d9ca

    2. 相关ip地址和域名

    ip地址、域名
    67.229.144.218
    13.59.110.123
    209.58.186.145
    www.cyg2016.xyz
    js.mys2016.info
    down.mys2016.info
    ftp.oo000oo.me
    wmi.oo000oo.club
    down.oo000oo.club
    js.f4321y.com
    up.f4321y.com
    wmi.mykings.top
    js.mykings.pw
    xmr.5b6b7b.ru
    js.5b6b7b.ru
    64.myxmr.pw

    3. 密码字典
    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 [email]admin@huawei.com[/email]
    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











    我是坏蛋的小号
    学习学习。。。
    使用道具 举报 回复
    发表于 2017-9-4 16:09:02
    不得不服,真的是个人才啊
    使用道具 举报 回复
    348114971 i春秋-见习白帽 万丈红尘三杯酒,千秋大业
    地板
    发表于 2017-9-6 02:30:27
    所以说高级的黑都挖矿去了。
    万丈红尘三杯酒,千秋大业一壶茶
    使用道具 举报 回复
    发表于 2017-9-6 08:31:53
    服的五体投地,,没话说
    使用道具 举报 回复
    使用道具 举报 回复
    墙都不服就服你
    使用道具 举报 回复
    发表于 2017-9-11 21:37:15
    果然是专业的安全公司啊,搞出来的东西就是看不懂。。。
    使用道具 举报 回复
    发表于 2017-9-14 18:24:34
    继续学习中
    使用道具 举报 回复
    Bot程序  是啥 我咋么搜到
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册