新年伊始,所在公司运气值飙升,受到了powershell挖矿攻击,占cpu75%,而且传播速度很快,大有泛滥之势。看进程都是混淆过的代码。以前都靠的杀毒软件,这次都不好用了,趋势完全没反应,360在被攻击时才有提示,但提示的是cmd.exe,而且只有部分机器装了360。杀软指不上了,看来只能自己手动了,不过没有类似经验,真有点不知何从下手。好在有点powershell的功底,第一步,先解析了下混淆的代码,得到了代码下载的ip地址,赶紧在防火墙上把该地址禁用了。第二步,杀软查不到病毒文件,计划任务也没有,服务和注册表也没有异常,参考了下网上的文章,估计是WMI,正好手里有SysinternalsSuite,用里面的autorun查了下,果然筛出一个异常的wmi。第三步,参考网上文章,确定被创建的wmi类,以及注册的wmi事件,进行删除。经过一个周末的观察,该挖矿进程没有再出现,基本可以确定问题已经解决。

总结:
一.使用powershell进行了编码混淆,无法从进程中查看具体执行的攻击代码,需要进行编码解析才可以看到真正的攻击代码。
二.使用WMI(Windows Management Instrumentation)来达到无文件持久化目的。
具体说来:
1.所有攻击代码添加至wmi类,攻击时从wmi类属性中获取攻击代码
2.使用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的强大威力。

参考:
https://www.anquanke.com/post/id/87976
https://www.anquanke.com/post/id/88851
https://www.anquanke.com/post/id/89362
http://www.360zhijia.com/360anquanke/292834.html
http://www.freebuf.com/column/149286.html