最近在学习Powershell的取证,涉及到了WMI(Window Management Instrumentation)服务的监控。这个服务通常情况下是和一些其他的服务一块儿宿主到svchost的netsvcs进程中。查看该服务的可执行文件路径可以看到:
C:\Windows\system32\svchost.exe -k netsvcs
这样就无法将它与别的一些网络服务从进程上区分开来,例如:IP Helper,Computer Browser。他们都会和WMI宿主到同一进程。但有些时候,确实需要把这个进程独立出来,例如:做监控,做调试。
有三种方法:
方法一:修改配置
net stop winmgmt
winmgmt /standalonehost
net start winmgmt
执行后,WMI服务的可执行文件路径变成了:
C:\Windows\system32\svchost.exe -k winmgmt
任务管理器中,可以看到其对应的独立进程。
方法二:在注册表和服务数据库中修改服务项
net stop winmgmt
sc config winmgmt type= own
net start winmgmt
注意,own之前要带空格。
方法三:
net stop winmgmt
rundll32 %WINDIR%\system32\wbem\WMISvc.dll, MoveToAlone 4
net start winmgmt
同时,standalonehost也将WMI的端口固定了下来,即24158端口。有了独立的进程,固定的端口,监控和调试就有了可能。
因篇幅问题不能全部显示,请点此查看更多更全内容