本文旨在对SMB挖矿病毒传播机制做分析。
网络中的计算机出现由SMB漏洞传播的挖矿病毒,基于目前黑客技术上流行的非PE攻击模式。攻击性质较为隐蔽,完全依赖Windows本身的系统组件。攻击目的较为单一,即通过消耗系统资源集中算力挖矿牟利。
本次着重分析的基于Windows PowerShell 的挖矿模式,是基于网页挖矿的一种分支。较早的时候还是基于JS。从攻击者的角度分析,JS过度依赖浏览器,相比PowerShell更消耗资源;且需要后台常驻浏览器进程,是一种对算力的浪费。PowerShell 是一种类似CMD的启动器,在图形界面中拥有丰富的脚本功能。故成为攻击者使用的参考对象。
1.传播
在信息安全领域,想必大家都知道 “永恒之蓝” ,这是一种基于PGP技术的文件加密病毒。其使用了SMB漏洞进行传播,(MS-17-010)[对应补丁 KB4012598 KB4013429 KB4012606] <影响版本 6000-14393>
挖矿类病毒作为其相似变种使用了相同的漏洞技术,但渗透方式有所改变。模拟渗透的满足条件如下:
1.确定目标的port 445 开启;
2.目标OS的ReleaseDate在2017年3月12日之前;
3.目标OS的Windows Firewall 关闭;
可以看到在一个常态企业网络下,这些条件较容易满足。特别是对于缺少USB管控(PE攻击)或网络行为管理(非PE攻击)的局域网中,autorun类型病毒(永恒之蓝主要使用的方式)和JS类型病毒(其变种和其他挖矿病毒)较易成为SMB渗透的源头。
autorun的传播路径: [1.移动设备的PE二进制文件通过autorun漏洞被执行]→[2.释放到宿主机器潜伏]→[3.修改系统设置满足渗透条件(API)]→[4.SMB渗透远端代码]→[5.在远端重复步骤2]
JS病毒的传播路径:[1.访问了恶意JS脚本通过浏览器漏洞被执行]→[2.修改系统设置满足渗透条件(Component)]→[3.SMB渗透远端代码]→[4.在远端重复步骤2]
混合传播时,二进制文件和JS脚本可以并发执行提高成功率。
2.发作
PE攻击发起时,在宿主机器上存在攻击实体。tasklist中会显示独立的攻击进程,虽可能有伪装,但对IT从业人员来说辨识较为容易。但其变种往往是非PE攻击,tasklist中显示的是正常的系统进程,但运行的是恶意代码,相对较难发现。且非PE攻击并不对目标计算机上的功能做破坏。如挖矿病毒会造成宿主计算机的卡顿现象,对用户来说,也就是认为电脑变慢了,仍能勉强使用。本次发现的挖矿病毒,发作症状如下:
1.电脑出现明显卡顿,系统资源占用显著提高;(CPU和RAM占用长期处于临界值)
2.网络上的初级宿主不断尝试扫描并外发445端口尝试感染更多的机器;
3.由于SMB漏洞导致的SYSTEM权限级的系统进程增加,实际操作为远程挖矿;
一旦满足了渗透条件,目标计算机就可以被宿主计算机远程执行任意命令。在本例中,宿主计算机直接远程运行了目标计算机的Powershell使目标计算机与外部挖矿脚本通信,通过固定频率与服务器通信回传挖矿的算力。并且没有其他危害行为,故目标计算机上的安全软件通常不会动作,提高了隐蔽性。方法较为巧妙,如宿主计算机配置较高,甚至难以察觉。
3.治理
除了Powershell这种启动器,CMD,wmic等也较易成为攻击对象。在早期的autorun病毒中,甚至有利用explorer作为攻击对象的例子。防治的面非常广泛,既要注意传统二进制恶意代码的简单攻击,也要注意恶意行为带来的系统安全隐患。实际上由于非PE类型的攻击大多依赖系统组件,在治理时就可以改变固定思路。由于SMB漏洞的修补在局域网中无法即刻生效,在本例中就使用了applocker禁用了powershell.exe,策略下发后远程命令执行失败,挖矿脚本就无法运行。也算是快速阻止了病毒的发作。然后就可以腾出时间做善后工作。随着操作系统功能的完善,相关子系统增多也容易导致这类攻击方式的增加。如早期的vbs,bat环境的文本类攻击到现在的xml和ps1类型的富文本类,让我们在关注exe,com等二进制PE时,也要注意vbs,hta等危险的文本格式。此外,由于安全软件的良莠不齐和攻击方式的变化,依靠安全软件的被动防护显然不能满足当下的需求,在防护时需考虑组合式的安全措施。
参考链接
MS17-010: Security update for Windows SMB Server: March 14, 2017
https://support.microsoft.com/en-us/help/4013389/title
网友评论