导语:2017年9月,360互联网安全中心首家发现了利用msSQL进行大规模入侵并释放挖矿木马的僵尸网络。木马先期通过永恒之蓝漏洞进行传播,后期转为对msSQL进行弱口令攻击传播,入侵成功后释放挖矿木马,获利达数百万之多。
背景
2017年9月,360互联网安全中心首家发现了利用msSQL进行大规模入侵并释放挖矿木马的僵尸网络。木马先期通过永恒之蓝漏洞进行传播,后期转为对msSQL进行弱口令攻击传播,入侵成功后释放挖矿木马,获利达数百万之多。相关分析详见我们在2017年发布的报告:《悄然崛起的挖矿机僵尸网络:打服务器挖价值百万门罗币》。
近日,360互联网安全中心又发现了一批使用msSQL进行传播的挖矿木马的新型变种。此次木马攻击主要利用“白利用”这一通常出现在远控或盗号木马上的隐藏手段,说明此类木马已经具有了与安全软件对抗的意识。并且利用自身在扩散形式上的优势快速传播,出现仅6天,单日攻击次数就突破了10万次。另外,该木马早期曾出现过一个仅攻击一次就自我退出的版本,但该版本在大量传播之后便消失,我们怀疑这是一个作者早期用于验证程序功能的测试版:
图1
样本分析
样本通过被入侵后的msSQL进行更新投递,包括一组exe和dll文件,通过白利用方式启动,其中exe文件为某公司带签名程序,名称被命名为help.exe如下
图2
DLL模块被命名为active_desktop_render.dll,其导出表如下
图3
执行逻辑
exe启动后会加载active_desktop_render模块,调用其导出函数SetDesktopMonitorHook,实际样本中直接调用了king1函数。
king1函数首先判断当前模块名称,不同的文件名称则执行的流程也会不同,例如当
前名称为assist.exe时,则下载l.txt并内存加载执行,其他如下图所示
图4
之后根据系统版本调整当前工作目录(用于后续文件落地时使用),其中不高于xp版本的位于根目录下/Docume~1/AllUse~1/Applic~1/,否则为/Users/Public/,同时间隔10分钟尝试下载a-n.txt名称的文件,其中大部分文件以插件形式内存加载执行。
图5
插件模块及域名生成算法
通过上文可以知道,该dll的行为实则类似于插件管理器,其大多数情况下通过远程下载模块并自行加载
,下图是样本模块加载流程示意图。
图6
插件模块的加载
down_memLoader函数通过死循环等待文件下载成功,
图7
实际下载后的文件内容如下,通过fscanf完成ascii到bin的转换,之后对文件内容在进行解密,然后加载执行导出函数a
图8
域名生成算法(DGA)
样本下拉插件模块的服务器域名并不固定,而是通过前缀后缀方式拼接而成,其中前缀生成算法如下
图9
后缀从如下列表中获取
图10
通过简化之后其域名生成算法如下:
知道域名后,再拼接插件名称得到下载地址,但访问时服务器会检测当前请求的UA部分,样本内嵌的UA名称为onlyme。
d与l模块
d模块延迟十分钟后结束如下进程,其中 manager.exe和diagnosis.exe分别为m和n模块(未获取到),a.exe是提权用到的程序。
图11
l模块负责结束上述进程并重新启动help.exe,间隔时间为10小时。
p模块
p模块在启动后,首先判断当前进程是否拥有管理员权限,若有则创建(已有则打开)名称为helpsys的服务,其二进制文件路径指向自身help.exe程序,如果权限不够,则远程拉取远端tqdll.txt和tq.txt文件,通过名称可以猜测其主要功能为提权,若成功,则在下次运行时即可创建服务,保证自身持久化驻留服务器。
图12
b模块
b模块是x64环境下使用到的,其部署64位环境下exe(repair.txt)和dll模块(64zhu.txt),所有exe和dll功能与本文分析基本一致,只不过在x64下运行。
同时下拉config.json与x.png,x.png 为xmr矿机(被64zhu.txt内存加载运行),矿机配置文件config内容如下
图13
k模块
该模块用于权限提升,首先尝试BypassUAC,样本使用如下2种方式
1..Net环境变量劫持
图14
其中ti.dll是拉取服务器的ti32.txt或ti64.txt重命名得到,主要功能是提权成功后再启动help.exe
2.mscfile的shellopen键值劫持
图15
若权限提升成功,则会创建好名称为helpsys的服务。
提权失败,则利用CVE漏洞进行本地权限提升,其远程拉取20170263.txt和up.txt模块
图16
其中up.txt是被利用的某公司签名文件,
图17
20170263.txt实则为CVE-2017-0213,该漏洞为.Net下类型混淆漏洞,可被用来本地权限提升,由Google Project zero发现。
图18
当漏洞成功触发后,其后续启动c:\users\public\help.exe,实际测试如下图
图19
相关域名:
aqwxrfghh.com
js.mys2018.xyz
矿池地址:
140.82.7.235:8756
钱包地址:
48mQvBiWBwzTMXhnfHFJEhLgUqoSr9CdB1UDGzwgsHUVM2Bh5g5Z78qQ5Jg9edqewWajtZX7ddjdGfudDhkaUtJS3owE8um
总结
相较于上一波挖矿僵尸的攻击,此次事件的传播量并没有那么夸张(由于其使用的是私有矿池,故此次无法估算其收益)。但比前次事件更令我们不安的,是此次通过僵尸网络传播的挖矿木马已不再有如上次一样冗长的缓慢传播期,而是直入主题——简单验证功能正常后,便直接放出正式版大量传播。
由此可见,此类攻击手段被黑客使用的越来越得心应手。也预示着今后此类时间也会越来越多的出现在我们的视野中。但反观我们的服务器管理人员却依然没有对此类问题提起足够的重视——依然是弱口令入侵,依然是本地漏洞提权,熟悉的配方熟悉的味道却总能屡屡得手。
在此我们只能再次重申几点注意事项:
1.重视SQL、RDP、Telnet等服务的弱口令问题,加强口令强度,避免被暴力破解。
2.非服务器系统尽量不要暴露在公网上,服务器系统要检查所有开放的服务端口,关闭不必要的端口。
3.配备必要的安全软/硬件产品,保障系统安全。
4.即时更新系统和软件,即时安装安全补丁,避免漏洞被利用来攻击系统。
5.对系统状态建立实时监控机制,关注系统异常,及时处理。