一次應對PowerShell+WMI挖礦***的記錄

新年伊始,所在公司運氣值飆升,受到了 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 -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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章