导语:本文介绍KingMiner恶意软件,是一款改进的CryptoJacker。
加密货币挖矿在2018年有了非常快速的增长。由于加密货币的价值,黑客有足够的动力来利用受害者机器的CPU算力进行加密货币挖矿活动。本文分析一种攻击Windows服务器的门罗币挖矿恶意软件。
KingMiner恶意软件最早是2018年6月出现的,并且迅速出现2个更新的版本。攻击者在恶意软件开发过程中使用了许多的绕过技术来绕过模拟和检测方法,导致许多的杀软引擎都没有发现。
攻击流
研究人员发现KingMiner恶意软件会攻击Microsoft服务器(大多是IIS\SQL)并尝试猜测其密码。然后会在受害者机器上下载Windows Scriptlet文件(.sct)并执行。
在执行过程中,有以下步骤:
· 检测机器的CPU架构;
· 如果有老版的攻击文件存在,并kill掉相关的exe文件进程,然后删除这些文件;
· 基于检测到的CPU架构,下载payload zip文件(zip\64p.zip)。这不是真实的zip文件,而是为了绕过模拟检测的XML文件。
图1: HTTP响应中的zip payload
· XML payload中包含base64 blob,编码后会出现在该ZIP文件中。
ZIP文件中含有5个文件:
· config.json – XMRig CPU挖矿机配置文件
· md5.txt – 只含有字符串zzz.的文本文件
· powered.exe (老版本中叫做fix.exe) –主可执行文件
· soundbox.dll/soundbox.dll – 含有powered.exe要导出的函数的DLL文件
· x.txt/y.png –二进制blob文件。这也不是一个真实的PNG文件
图 2: 攻击的第一阶段
图 3: config.json –含有钱包地址和私有池的XMRig配置文件
模拟可执行文件不会产生任何活动。
在所有的文件都提取出来后,md5.txt文件中的内容就会加到相关的DLL文件中(sandbox.dll\active_desktop_render_x64.dll)。
然后powered.exe/fix.exe会被调用和执行,然后创建一个XMRig挖矿机文件和许多值为Test.的新注册表。
图 4: 含有DLL文件的函数
可执行文件会从DLL文件中调用函数:
· ClearDesktopMonitorHook – 该函数会返回值1。
· King1 –创建一个线程并相关二进制blob文件(x.txt/y.png)中的内容。这会导致生成一个可执行文件,即XMRig CPU挖矿机的精简版。
DLL文件中含有4个函数,可能在之后用到:
· King2 – 该函数会返回值1。
· King3 – 该函数会返回值1。
· King4 – 该函数会返回值1。
· SetDesktopMonitorHook – 调用King1。
图 5: 函数king1,创建线程并将二进制blob y.png/x.txt作为参数
图 6: 攻击的第二阶段
XMRig CPU挖矿机会运行并使用受害者机器的所有CPU算力。
虽然配置为使用CPU算力的75%,但实际上使用的是100%。
图 7: 恶意powered.exe文件使用CPU 100%算力
KingMiner的进化
Check Point研究人员监控到KingMiner恶意软件在第一次出现后共出现两个变种。恶意软件还不断加入新的特征和绕过方法来避免被检测和分析。
除此之外,恶意软件在不断进化中还预留了许多占位符用于之后的更新,这也会使检测变得更难。
绕过技术
恶意软件使用绕过技术是其成功的关键。许多相关的简单价值可以使恶意软件绕过常见的模拟和检测方法:
· 混淆32p.zip/64p.zip文件。ZIP文件含有基本的XML格式数据。在从语法上进行描述或分析后,就可以看到ZIP文件了。
· 主可执行文件powered.exe和从DLL中导出的函数。只执行可执行文件确保了没有其他活动。
· 加入md5.txt内容到DLL文件中。
· 解码x.txt/y.png内容到可执行文件XMRig CPU挖矿机中。
这些绕过技术都降低了被检测到的概率:
威胁情报
KingMiner攻击者使用私有的挖矿池来避免其活动被监控。该挖矿池的API已经被关闭了,而且有问题的钱包地址没有在公共挖矿池中使用过。所以还不能确定使用的域名,因为这也是私有的。但可以看出攻击的范围非常广,包括墨西哥、印度、挪威等。
图 6: 攻击地理分布图
总结
KingMiner是一款不断发展中的加密货币挖矿恶意软件,可以绕过常见的检测和模拟系统。通过应用简单的绕过技术,攻击者可以增加攻击成功的可能性。研究人员预测这些绕过技术在2019年会不断进化,并成为加密货币挖矿攻击的主要组成。