网络中检测远程WMI应用

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

运行它,将得到远程计算机上的所有进程。运行是打开Wireshark抓取网络数据包:

网络中检测远程WMI应用_第1张图片

UUID能唯一标示一个接口。只要在RPC数据流中检测2个特定的UUID: F309AD18-D86A-11d0-A075-00C04FB68820 和9556dc99-828c-11cf-a37e-00aa003240c7就可以确定网络中发生了WMI应用。


你可能感兴趣的:(网络中检测远程WMI应用)