近日,阿里云安全团队基于威胁情报挖掘网络攻击日志的过程中,发现了使用showDoc漏洞传播僵尸网络和挖矿软件的攻击事件,使用该手法传播僵尸网络暂未被公开报告过。
ShowDoc是一个在线文档分享工具,面向开发者提供针对API接口的文档编写与团队协作功能。早在2020年8月披露过一个任意文件上传漏洞,漏洞编号CNVD-2020-49480。该漏洞的具体产生原因是,调用文件上传接口时,校验文件的后缀名逻辑错误,并且上传接口缺乏权限认证,导致攻击者可以绕过认证和后缀名检测直接上传webshell,并在此基础上进一步植入DDoS和挖矿代码等恶意程序,执行任意文件。
图1 漏洞修复补丁
ShowDoc在实现文件上传接口时,参考了旧版本的代码实现逻辑,附件后缀白名单数组采用了Think PHP 3.1 中的$upload->allowExts 参数进行限制,实际上在Think PHP 3.2以后该逻辑修改为基于$upload->exts实现,导致未对后缀名实现白名单限制,绕过了php文件上传检查,能够直接上传 webshell 文件。该漏洞利用原理比较简单,PoC 攻击代码也早已公布在网络上,攻击者可以很方便地整合入攻击库中。
虽然ShowDoc去年8月份就已经发布该漏洞的补丁,但是目前仍能从公网上发现少量的showDoc服务没有升级到最新版。这些旧版网站容易被攻击者扫描识别后入侵,持续攻击植入恶意程序,导致云安全中心持续产生恶意行为拦截告警。
图2 攻击流程
这一波攻击最早从4月24号被监测到,通过攻击日志,猜测攻击者开发了扫描工具识别 ShowDoc 资产,利用 Python 自动化地利用漏洞上传 Webshell,并记录 Webshell 路径,在Webshell的基础上进一步安装 DDoS 程序和挖矿程序等恶意代码,主要的植入恶意软件为 DDoS 木马和门罗币挖矿软件,涉及Srv-Hello、Mirai、BillGates等家族,相关恶意文件家族已经被多次报告分析过,本文不再进一步重复分析。
图3 威胁情报查询结果
通过查询阿里云威胁情报,可以进一步获取历史的攻击信息和关联数据,例如查询 IP 地址 194[.]145.227.21,发现该 IP 地址除了提供恶意攻击载荷下载以外,也主动扫描了多种常见 Web 系统和服务、利用多种漏洞发起对外攻击传播恶意代码,处于持续活跃中。
ShowDoc 并不是一款常见的Web程序,但仍然被攻击者注意到作为攻击目标,由此可见攻击者在利益驱动下积极整合各类漏洞,只要程序存在漏洞,就会被快速的整合进入武器库,并用于自动化传播恶意代码,而这也对安全从业者提出了新的挑战,需要持续监控发现新的攻击手法。而通过结合威胁情报,能够发现这些潜在的新攻击手段,更加高效地应对攻击。
解决方案:
- 检查showDoc的上传目录Public/Uploads/2021-XX-XX/目录下是否存在php文件,并删除该webshell。
- 及时升级到最新版的 showDoc,或者按照修复补丁进行修改代码。如果是容器部署的ShowDoc,则要升级到最新版本容器。
- 阿里云的用户请及时处理云安全中心出现的告警。
IoC 信息
钱包地址:
47tZYnxtpUmNk9d548NX756zFPZbMsQ7wcKkxzz9kdWn6tmeteN5aMy22qNn4cMjLsahnVkLV1DrL61kRyqtxDFKFHxdGEC
434THCMTb45dXej46oBCDfYYKriK6qzCiaG5koJmCeTeiXDZ3rSTuZCacNNuuVvYrkL4VX6dXKCzB7W2ARTwg2w6R3r3WFf
url:
hxxp://1.117.4.172:999/BOT/1
hxxp://104.244.73.78:85/Content/Upload/Activity/20210725043923.jpg
hxxp://107.172.214.23:1234/xmss
hxxp://107.189.7.37:802/25000
hxxp://107.189.7.37:802/LinuxTF
hxxp://107.189.7.37:802/Manager
hxxp://107.189.7.37:802/linuxdoor
hxxp://107.189.7.37:802/manager
hxxp://117.24.13.169:881/25
hxxp://117.24.13.169:881/BOT
hxxp://117.24.13.169:881/L26
hxxp://117.24.13.169:991/25000
hxxp://119.45.253.226:8001/hackable/uploads/13.sh
hxxp://119.45.253.226:8001/hackable/uploads/unixt
hxxp://168.206.255.6:9876/ddos32-64
hxxp://180.215.192.107:8080/Q
hxxp://180.215.192.107:8080/c
hxxp://180.215.192.107:8080/door
hxxp://180.215.192.123:8080/12.4
hxxp://180.215.192.123:8080/13
hxxp://180.215.192.123:8080/Manager
hxxp://180.215.192.123:8080/linuxdoor
hxxp://180.215.192.123:8080/vv
hxxp://180.215.192.123:8080/ww
hxxp://180.215.194.46:8080/32u
hxxp://180.215.194.46:8080/dos32
hxxp://194.145.227.21/ldr.sh?b54287f2
hxxp://194.145.227.21/ldr.sh?localssh
hxxp://194.145.227.21/sys.x86_64
hxxp://194.56.226.37/s.cmd
hxxp://1w.kacdn.cn:81/Linux-syn10000
hxxp://209.141.34.100/1
hxxp://209.141.34.100/132
hxxp://209.141.34.100/udp
hxxp://216.83.33.79:8080/syn
域名:
1[.]117.4.172
104[.[244.73.78
107[.]172.214.23
107[.]189.7.37
117[.]24.13.169
119[.]45.253.226
168[.]206.255.6
180[.]215.192.107
180[.]215.192.123
180[.]215.194.46
180[.]215.194.46
194[.]145.227.21
194[.]56.226.37
1w.kacdn.cn
209[.]141.34.100
216[.]83.33.79
Md5:
e196d8c69ea072edd4313a0a9265b386
f6ba14ab7e8f5513cc81035e13615dec
57c5af8338ff8bd9abfe878ba9e8e661
346fe44a4d58863a098b72e1584e95e8
d51ba1fee712aac5a3a17129782115af
d4989e13b700431c8760013a990edf0d
da63a2f797b27f31745cfb8f94479bf4
d51ba1fee712aac5a3a17129782115af
c67607c0927154a4d2efd79ad502cc7d
46c7302fe138e6a877755a3b5203303a
346fe44a4d58863a098b72e1584e95e8
da63a2f797b27f31745cfb8f94479bf4
a419dfe06954bc6bfbe7115d0ae95102
c9ab5b3125119fd83ffb0b27b392d613
7c50cd6c767052e28a23c4d89c90983a
a158814f8a22c68987be16e79c8bff0f
e611eafc4b5e422a2665bf5644b818e3
1d228318d5f2fefe4b04f82449777e40
122e36483aa697f8d6df252b76c1c8bf
06f25d5598cb026c0b97484ad80a3b43
542b52ae8f4d6dde9eb2fdc003eedc42
e5c3720e14a5ea7f678e0a9835d28283
229e3933010d9c32dff880658dc4119e
3997fb6cd3b603aad1cd40360be6c205
a0d22042fe2c365d7b07a04b2b1e1da0
0f649adcf96f6cac038ec7999d5aeffe
58d23f22bae9043697d8550ea0bc9b66
ed27862f885c906e30227d203b0084e2
0abd9797cd648a1d489fef86f0370387
afba98469d91f7fda00027870bfad553
16d4b49cd81775097ea2e997a90a2f4e