近一段时间,千里目安全实验室EDR安全团队持续收到大量企业用户反馈,其内网很多服务器存在卡顿和外联异常IP等现象。经过我们深入挖掘,发现这是利用WMI+Powershell方式实现的无文件攻击行为,其目的是长驻内存挖矿。由于此攻击没有本地落地文件,难以察觉,企业利益默默受到侵害。

此流行病毒,除了具备无文件攻击等高级攻击特性,还内置两种横向传染机制,分别为Mimikatz+WMIExec自动化爆破和MS17-010“永恒之蓝”漏洞攻击,堪称火力全开,极易在局域网内迅猛扩散。

0x01 攻击场景

此次攻击,具备无文件攻击特性,所有模块功能均加载到内存中执行,没有本地落地文件。为了迅速在内网传播,采用了SMB弱口令爆破攻击和“永恒之蓝”漏洞攻击,二者只要有一种能成功,就可以横向感染到其它主机。

如上图,原始病毒体为info*.ps1(64位系统对应info6.ps1,32位系统对应info3.ps1),其为Powershell脚本,被加载后内存存在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秒可自动触发一次。

0x02下载更新

此PowershellMiner,做了一个操作系统适配和Minikatz数据更新机制。如下图,感染主机病原体为info*.ps1(可能为info6.ps1,也可能为info3.ps1)。

如果为info6.ps1,则运行起来后会判断操作系统是否为64位的,若不是,则下载info3.ps1并替换执行。

同理,如果为info3.ps1,则运行起来后会判断操作系统是否为32位的,若不是,则下载info6.ps1。
此外,为最大程度的完成SMB爆破效果,Minikatz模块也会主动去下载最新的数据载荷(应是配置和密码字典之类的数据)。

0x03 横向感染

感染主机除了自身会挖矿,同时会横向感染内网其它主机。如下图(病毒源代码),使用Minikatz获取目的主机$NTLM,执行WMIExec攻击($NTLM作为输入)。
如果WMIExec执行失败,则尝试使用MS17-010“永恒之蓝”攻击(双保险)。

此次攻击,WMIExec攻击体和MS17-010攻击体均为Powershell脚本,Minikatz为二进制程序。

0x04 无文件挖矿

首先,此Powershell挖矿不是独立的进程,也没有对应的文件。直观上看,一是主机性能卡,二是存在Powershell宿主进程。
如下图(来源于企业真实环境),主机存在Powershell进程,CPU占有率持续高达87.33%。

我们从内存截取的数据,证明此病毒会尝试连入世界各大矿池地址,主要为欧美及亚太地区。另外,这次挖矿币种为门罗币,也有黑客钱包地址。

我们分析病原体,其挖矿是通过Powershell脚本调用WMI二进制载荷实现的。

另外,为了利益最大化,此病毒还会尝试干掉其它挖矿进程(同行竞争压力大啊,稍有不慎就被干掉了!)。

截止发稿,此钱包账号已入账3.27968666个币。

0x05 解决方案

1、隔离感染主机:已中毒计算机尽快隔离,关闭所有网络连接,禁用网卡。
2、切断传播途径:关闭潜在终端的SMB 445等网络共享端口,关闭异常的外联访问。
3、查找攻击源:借助安全感知类产品定位攻击源。
4、查杀病毒:查杀比较简单,使用Autoruns工具(微软官网可下),选择WMI,如下图,将该WMI启动项删除(该项底部详细栏有“SELECT * FROM __InstanceModificationEvent WITHIN 5600”)。

然后,打开“任务管理器”,将Powershell宿主进程杀掉即可。

5、修补漏洞:打上“永恒之蓝”漏洞补丁,请到微软官网,下载对应的漏洞补丁(https://technet.microsoft.com/zh-cn/library/security/ms17-010.aspx)。
6、修改密码:如果主机账号密码比较弱,建议重置高强度的密码。

源链接

Hacking more

...