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文件中)，然后篡改执行结果：
   
   1. 把 CPU 状态数据(usage 和 tempc) 都减去 50
   2. 删除执行结果中 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漏洞检测、未知恶意软件检测、高级威胁追踪，我们致力于通过数据驱动安全，构建网络安全看得见的能力。


招聘岗位：

前端开发工程师、后端开发工程师、产品经理、安全工程师、算法工程师


详情链接：https://blog.netlab.360.com/work-in-hangzhou/