博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次应对PowerShell+WMI挖矿***的记录
阅读量:5974 次
发布时间:2019-06-19

本文共 1939 字,大约阅读时间需要 6 分钟。

新年伊始,所在公司运气值飙升,受到了 WMI 挖矿***,占 cpu75%,而且传播速度很快,大有泛滥之势。看进程都是混淆过的代码。以前都靠的杀毒软件,这次都不好用了,趋势完全没反应,360在被***时才有提示,但提示的是cmd.exe,而且只有部分机器装了360。

杀软指不上了,看来只能自己手动了,不过没有类似经验,真有点不知何从下手。好在有点powershell和wmi的功底

第一步,先解析了下混淆的代码,得到了代码下载的 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的强大威力。

删除方法

Get-WmiObject -Namespace root\Subscription -Class __EventFilter -filter "Name= 'DSM Event Log Filter'" | Remove-WmiObject -VerboseGet-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='DSM Event Log Consumer'" | Remove-WmiObject -VerboseGet-WmiObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%DSM Event Log Consumer%'" |Remove-WmiObject -Verbose([WmiClass]'root\default:Win32_Services') | Remove-WmiObject -VerboseGet-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

你可能感兴趣的文章
PostgreSQL cheatSheet
查看>>
ASP.NET Core 2 学习笔记(三)中间件
查看>>
转:Mosquitto用户认证配置
查看>>
SpringBoot上传文件到本服务器 目录与jar包同级
查看>>
python开发_difflib字符串比较
查看>>
被解放的姜戈01 初试天涯
查看>>
三极管工作区在Spectre中的表示
查看>>
HT for Web的HTML5树组件延迟加载技术实现
查看>>
ASP.NET MVC 3 Razor Nested foreach with if statements
查看>>
【Mysql】命令行
查看>>
Asterisk 安装与配置
查看>>
利用日志记录所有LINQ的增,删,改解决方案
查看>>
实例讲解PostSharp(一)
查看>>
graylog 客户端的安装配置
查看>>
CentOS6.4_X86_64 安装Drupal-7.31必须成功版!
查看>>
驱动学习之驱动和应用的接口
查看>>
hbase region split源码分析
查看>>
MySQL备份之分库分表备份脚本
查看>>
Java 与 Netty 实现高性能高并发
查看>>
SurfControl人工智能新突破 领跑反垃圾邮件
查看>>