QNAP NAS在野漏洞攻击事件2
背景介绍
2021年3月2号,360网络安全研究院未知威胁检测系统监测到攻击者正在使用台湾QNAP Systems, Inc.公司的网络存储设备诊断程序(Helpdesk)的未授权远程命令执行漏洞(CVE-2020-2506 & CVE-2020-2507),获取到系统root权限并进行恶意挖矿攻击。
我们将此次挖矿程序命名为UnityMiner,值得注意的是攻击者专门针对QNAP NAS设备特性,隐藏了挖矿进程,隐藏了真实的CPU内存资源占用信息,使用户无法在Web管理界面看到系统异常行为。
2020年10月7号,QNAP Systems, Inc.公司发布安全公告QSA-20-08[1],并指出已在Helpdesk 3.0.3和更高版本中解决了这些问题。
目前,互联网上还没有公布CVE-2020-2506和CVE-2020-2507的漏洞详细信息,由于该漏洞威胁程度极高,为保护尚未修复漏洞的QNAP NAS用户,我们不公开该漏洞技术细节。我们推测仍有数十万个在线的QNAP NAS设备存在该漏洞。
此前我们曾披露了另一起QNAP NAS在野漏洞攻击事件[2]。
注意:该攻击事件仍在进行中,攻击者具备优质的1-day漏洞资源,并根据QNAP设备特性定制化开发。
漏洞影响范围
360 FirmwareTotal系统通过对QNAP NAS固件分析和漏洞验证,发现2020年8月以前的固件均受该漏洞影响,以下是已知固件列表。
TVS-X73
TVS-X71U
TVS-X71
TVS-X63
TS-XA82
TS-XA73
TS-XA28A
TS-X89U
TS-X88
TS-X85U
TS-X85
TS-X83XU
TS-X82U
TS-X82S
TS-X82
TS-X80U
TS-X80
TS-X77U
TS-X77
TS-X73U
TS-X72U
TS-X72
TS-X63U
TS-X53U
TS-X53S
TS-X53D
TS-X53BU
TS-X53B
TS-X53A
TS-X53
TS-X51U
TS-X51DU
TS-X51B
TS-X51A
TS-X51
TS-X35A
TS-X28A
TS-KVM
TS-879U
TS-879
TS-870U
TS-870
TS-869U
TS-869
TS-859U
TS-859
TS-809U
TS-809
TS-670
TS-669
TS-659
TS-639
TS-569
TS-559
TS-509
TS-470
TS-469U
TS-469
TS-459U
TS-459
TS-439U
TS-439PROII
TS-439
TS-421U
TS-421
TS-420U
TS-420
TS-419U
TS-419P
TS-412U
TS-412
TS-410
TS-269
TS-259
TS-239PROII
TS-239H
TS-239
TS-221
TS-220
TS-219
TS-212
TS-210
TS-1679U
TS-1279U
TS-1270U
TS-1269U
TS-121
TS-120
TS-119
TS-112
TS-110
TS-1079
SS-839
SS-439
SS-2479U
SS-1879U
SS-1279U
QGD-1600
Mustang-200
IS-400
HS-251
HS-210
360 Quake网络空间测绘系统通过对全网资产测绘,发现QNAP NAS共4297426条数据记录,其中有951486个独立IP, 设备具体分布如下图所示。
挖矿套件简析
1. 概况
挖矿套件由 unity_install.sh 和 Quick.tar.gz 组成,unity_install.sh 用来下载&设置&启动挖矿程序,并劫持原设备中的 manaRequest.cgi
程序;Quick.tar.gz 中则打包了矿机程序、矿机配置文件、矿机启动脚本和伪造的manaRequest.cgi
:
Quick
├── config.json
├── manaRequest.cgi
├── start.sh
└── unity
其中 unity
为 XMRig 矿机程序,因此暂时将此挖矿套件命名为 UnityMiner。
2. unity_install.sh
核心功能:
- 检查是否存在旧的
unity
进程,存在则 Kill 掉unity
进程 - 检查设备 CPU 架构,下载相应的挖矿套件,支持 ARM64 和 AMD64 两种 CPU 架构
- 根据 CPU 核数设置 config.json 中的挖矿参数(用半数的 CPU 核来挖矿)
- 解压矿机套件,设置 cron 并执行挖矿脚本
start.sh
(每分钟执行一次,时间间隔设置为* * * * *
)
3. start.sh
核心功能:
- 检查
unity
进程,不存在则启动本地unity
挖矿程序; - 把系统文件
/home/httpd/cgi-bin/management/manaRequest.cgi
重命名为manaRequests.cgi
(该文件负责设备系统信息的查看和修改,参考 通过API 取得和修改nas 的信息demo程序 ) - 把 Quick.tar.gz 中的
manaRequest.cgi
文件复制到/home/httpd/cgi-bin/management/
目录中,替换系统自身的同名文件。
4. config.json
该团伙用自己搭建的 Pool(Proxy),所以无法看到真实的 XMR Wallet。挖矿配置共 3 组,user
都是 "xmr2"
,pass
都是 "x"
,Pool(Proxy) 分别如下:
aquamangts.tk:12933
a.aquamangts.tk:12933
b.aquamangts.tk:12933
5. manaRequest.cgi
核心功能:
- 劫持系统的原同名文件,收到 HTTP 请求后,先检测系统中是否存在
unity
挖矿进程,如果不存在,则直接把 HTTP 请求转给系统原同名文件(已被重命名为manaRequests.cgi
)处理,之后结束执行:
count=`ps -fe | grep unity | grep -v "grep"`
if [ "" == "$count" ];then
/home/httpd/cgi-bin/management/manaRequests.cgi
exit 0
fi
- 如果系统中存在
unity
挖矿进程,则在把 HTTP 请求转给系统原同名文件执行后,把执行的结果记录下来(存放到.log.log
文件中),然后篡改执行结果:- 把 CPU 状态数据(usage 和 tempc) 都减去 50
- 删除执行结果中
unity
进程信息
之后,伪造的 manaRequest.cgi
会把真实的 manaRequest.cgi
执行后篡改的数据,以 cat .log.log
的方式返回给请求方,这样系统管理界面就不会从设备信息中发现异常,从而达到隐藏挖矿进程的目的。
处置建议
我们建议QNAP NAS用户及时检查并更新固件系统,同时检查是否存在异常进程和网络连接。
我们建议读者对相关IP和URL进行监控和封锁。
联系我们
感兴趣的读者,可以在 twitter 或者通过邮件netlab[at]360.cn联系我们。
IoC
IP:
210.201.136.170 Taiwan ASN9311 HITRON TECHNOLOGY INC.
Miner Proxy:
aquamangts.tk:12933
a.aquamangts.tk:12933
b.aquamangts.tk:12933
URL:
http://c.aquamangts.tk:8080/QFS/install/unity_install.sh
http://c.aquamangts.tk:8080/QFS/arm64/Quick.tar.gz
http://c.aquamangts.tk:8080/QFS/amd64/Quick.tar.gz
MD5:
0f40086c9e96c9c11232a9175b26c644
1eb01a23a122d077540f83b005abdbfc
97015323b4fd840a40a9d40d2ad4e7af
招聘信息
360网络安全研究院在杭州新成立了一个产品团队,把我们的安全数据和技术产品化,探索网络安全行业未知威胁检测难题,为360安全大脑添砖加瓦。
从一次平凡的网络扫描,到漏洞、样本、安全事件分析,再到0-day漏洞检测、未知恶意软件检测、高级威胁追踪,我们致力于通过数据驱动安全,构建网络安全看得见的能力。
招聘岗位:
前端开发工程师、后端开发工程师、产品经理、安全工程师、算法工程师