新年伊始,所在公司运气值飙升,受到了 WMI 挖矿***,占 cpu75%,而且传播速度很快,大有泛滥之势。看进程都是混淆过的代码。以前都靠的杀毒软件,这次都不好用了,趋势完全没反应,360在被***时才有提示,但提示的是cmd.exe,而且只有部分机器装了360。
杀软指不上了,看来只能自己手动了,不过没有类似经验,真有点不知何从下手。好在有点powershell和wmi的功底
第一步,先解析了下混淆的代码,得到了代码下载的 ip 地址,赶紧在防火墙上把该地址禁用了。
第二步,杀软查不到病毒文件,计划任务也没有,服务和注册表也没有异常,参考了下网上的文章,估计是WMI,正好手里有SysinternalsSuite,用里面的autorun查了下,果然筛出一个异常的wmi。
第三步,参考网上文章,确定被创建的wmi类,以及注册的wmi事件,进行删除。经过一个周末的观察,该挖矿进程没有再出现,基本可以确定问题已经解决。
总结:
一. 使用powershell进行了编码混淆,无法从进程中查看具体执行的***代码,需要进行编码解析才可以看到真正的***代码。
二. 使用WMI(Windows Management Instrumentation)来达到无文件持久化目的。
具体说来:
- 所有***代码添加至wmi类,***时从wmi类属性中获取***代码
- 使用WMI事件消费者(WMI Event Consumer)定时来执行***代码。
用到的WMI类:EventFilter,FilterToConsumerBinding,CommandLineEventConsumer。
***者创建的类:Win32_Services(代码存储用)
FilterToConsumerBinding类将 EventFilter实例与CommandLineEventConsumer实例联系在一起。将各个类彼此关联起来,构造完整的程序执行循环。 FilterToConsumerBinding类会检查哪些Windows事件将通过 EventFilter来执行,也会检查 CommandLineEventConsumer中相应的代码。
本次***特点:
无文件,不修改注册表,不修改服务,不修改计划任务,使用系统原生工具,杀软免疫,运行时任务管理器只显示宿主进程,只在***时杀软才有提醒,但也仅提示宿主进程。
解决方法
powershell wmi结合,删除被修改的wmi类和创建的wmi event consumer
通过这次应对挖矿***,把wmi和powershell又深入的学习了下,收获不小。再次感受到了powershell的强大威力。
删除方法
Get-WmiObject -Namespace root\Subscription -Class __EventFilter -filter "Name= 'DSM Event Log Filter'" | Remove-WmiObject -Verbose
Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='DSM Event Log Consumer'" | Remove-WmiObject -Verbose
Get-WmiObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%DSM Event Log Consumer%'" |Remove-WmiObject -Verbose
([WmiClass]'root\default:Win32_Services') | Remove-WmiObject -Verbose
Get-Process -Name "powershell" | Stop-Process
关键是要找到被创建的类名和事件,根据实际情况筛选,别删错了。然后再把运行中的powershell挖矿进程删掉就可以了。
参考:
www.anquanke.com/post/id/87976
www.anquanke.com/post/id/88851
www.anquanke.com/post/id/89362
www.360zhijia.com/360anquanke/292834.html
www.freebuf.com/column/149286.html
转载于:https://blog.51cto.com/640006/2071057