服务器被黑掉后,现象是:
- java进程被杀掉了
- 出现两个 powershell 进程,CPU使用高达 接近 100%
处理过程:
- 修改 powershell 策略,禁止 powershell 运行任何脚本(Get-ExecutionPolicy:获取当前的执行策略;set-ExecutionPolicy Restricted: 执行策略不允许任何脚本运行)
- 查了关于 powershell 的资料,在下面这个页面(https://social.technet.microsoft.com/Forums/zh-CN/8b80a46c-fce6-4804-9ea0-c8266ff638b1/powershell-cpu100?forum=WinServerPreviewZHCN)中发现一个工具 Process Monitor(下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) 可以用于监控进程的详细信息;
- 下载了Process Monitor,解压运行后,点击过滤器,添加过滤规则:1、process name,2、 contains,3、powershell;运行过滤后,仅列出powershell的进程,然后查看详细信息,就可以看到进程的命令信息了:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoP -NonI -W Hidden "$mon = ([WmiClass] 'root\default:systemcore_Updater').Properties['mon'].Value;$funs = ([WmiClass] 'root\default:systemcore_Updater').Properties['funs'].Value ;iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($funs)));Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($mon, $mon, 'Void', 0, '', '')"
- 又查到这个页面:禁用了PowerShell又如何?看我如何用PowerShell绕过应用白名单、环境限制、以及杀毒软件,里面告诉了如何使用命令 wmic 来查看进程的 详细信息:
wmic process list full > Desktop\save.txt
根据文章的介绍,通过 父进程,也许能找到是谁调用了powershell,从而也许能找到黑客是从那里进行攻击的
- 有热心网友建议读这篇文章: Powershell最佳安全实践