Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术,用户可以使用 WMI 管理本地和远程计算机。参见这里了解更多WMI知识:http://www.cnblogs.com/haiq/archive/2011/01/14/1935377.html
通常乐意使用WMI的有两种人:IT管理员和黑客。作为入侵检测产品有必要检测网络中WMI的应用,作为审计信息以备管理员查阅,发现网络异常行为。
WMI底层使用的是DCOM组件(Distribute COM),在网络上使用的是RPC远程调用。那么在网络中检测WMI应用其实就是检测特定的RPC调用。关于WMI调用过程中网络事件描述参考这里。IWbemLevel1Login,IWbemServices是WMI建立远程连接,使用远程服务必须调用的接口,它们就是要检测的目标。
首先在这里copy一份查看远程计算机进程的代码,更改一下IP地址和用户名密码,保存成vbs文件。
strComputer = "10.200.96.277" Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objSWbemServices = objSWbemLocator.ConnectServer _ (strComputer, "root\cimv2", _ "fabrikam\administrator", "password") Set colProcessList = objSWbemServices.ExecQuery( _ "Select * From Win32_Process") For Each objProcess in colProcessList Wscript.Echo "Process Name: " & objProcess.Name Next
UUID能唯一标示一个接口。只要在RPC数据流中检测2个特定的UUID: F309AD18-D86A-11d0-A075-00C04FB68820 和9556dc99-828c-11cf-a37e-00aa003240c7就可以确定网络中发生了WMI应用。