序文
最近,一种通过PowerShell脚本作为载体进行传播的挖矿病毒在企业网络中频繁爆发,该病毒其利用了WMI+Powershell方式进行无文件攻击,并长驻内存进行挖矿。还具有两种横向传染机制,分别为WMIExec自动化爆破和MS17-010“永恒之蓝”漏洞攻击,极易在企业网的局域网内迅速传播。某一天,当你检查服务器,发现很多服务器的CPU使用率特别高,且使用进程为Powershell.exe时,那么基本可以判定,您的服务器中了Powershell挖矿病毒了。
病毒组成
通过wbemtest打开WMI测试器,连接到:root\Default时会发现Powershell挖矿病毒已经帮您新建了一个攻击类之前的名称叫:Win32_Services,后面有一些变种病毒创建的攻击类更改了名称为:System_Anti_Virus_Core。双击攻击类后会发现,经过Base 64加密的攻击代码Base 64解码器(http://www.heminjie.com/tool/base64.php))
病毒被加载后内存存在4个模块,分别为挖矿模块、Minikatz模块、WMIExec模块、MS17-010攻击模块。
1.首先,挖矿模块启动,持续进行挖矿。
2.其次,Minikatz模块对目的主机进行SMB爆破,获取NTLMv2数据。
3.然后,WMIExec使用NTLMv2绕过哈希认证,进行远程执行操作,攻击成功则执行shellcode使病原体再复制一份到目的主机并使之运行起来,流程结束。
4.最后,如WMIExec攻击失败,则尝试使用MS17-010“永恒之蓝”漏洞攻击,攻击成功则执行shellcode使病原体再复制一份到目的主机并使之运行起来(每感染一台,重复1、2、3、4)。此病毒采用的是WMI+Powershell的内存驻留方式,模块以服务形式存在,每5600秒可自动触发一次。
此次攻击,WMIExec攻击体和MS17-010攻击体均为Powershell脚本,Minikatz为二进制程序。
此病毒会尝试连入世界各大矿池地址,主要为欧美及亚太地区。另外,这次挖矿币种为门罗币,也有黑客钱包地址。
过Powershell脚本调用WMI二进制载荷实现挖矿
为了利益最大化,此病毒还会尝试干掉其它挖矿进程
此PowershellMiner,做了一个操作系统适配和Minikatz数据更新机制。如果为info6.ps1,则运行起来后会判断操作系统是否为64位的,若不是,则下载info3.ps1并替换执行。
同理,如果为info3.ps1,则运行起来后会判断操作系统是否为32位的,若不是,则下载info6.ps1。为最大程度的完成SMB爆破效果,Minikatz模块也会主动去下载最新的数据载荷(应用配置和密码字典之类的数据)。
处理Powershell挖矿病毒
首先应对:
1、隔离感染主机:已中毒计算机尽快隔离,关闭所有网络连接,禁用网卡。
2、切断传播途径:关闭潜在终端的SMB 445等网络共享端口,关闭异常的外联访问。
3、查找攻击源:借助安全感知类产品定位攻击源。
查杀病毒:
查杀比较简单,使用Autoruns工具(微软官网可下),选择WMI,如下图,将该WMI启动项删除(该项底部详细栏有“SELECT * FROM __InstanceModificationEvent WITHIN 5600”)。
手动删除:
第一步:通过taskkill命令结束Powershell.exe进程:
taskkill /IM powershell.exe /F /S 10.1.13.30
taskkill /IM powershell.exe /F /S 10.1.13.51
第二步:删除攻击类:运行-wbemtest 打开WMI检查器:
连接到默认的命名空间,点击枚举类
名字类似 Win32_Services,System_Anti_Virus_Core类的都删除。
第三步:删除“控制面板-系统和安全-管理工具-本地安全策略(运行:SECPOL.MSC)-IP安全策略在本地计算机”(默认是空)下的项目
修改主机账号密码,修补漏洞:
打上“永恒之蓝”漏洞补丁,请到微软官网,下载对应的漏洞补丁(https://technet.microsoft.com/zh-cn/library/security/ms17-010.aspx)。