GUID数量的Windows界面给出错误:ValueError:未知的网络接口'{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}'

问题描述 投票:0回答:1

导入scapy版本2.4.0。我只为我的项目使用2.4.0版

import scapy.all as scapy
import sys

通过使用IP地址,此函数返回目标的相关MAC地址

 def get_mac(ip):
   arp_request = scapy.ARP(pdst=ip)
   broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
   arp_request_broadcast = broadcast/arp_request
   answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
   return answered_list[0][1].hwsrc

 def sniff(interface):
   scapy.sniff(iface=interface, store=False, prn=process_sniffed_packet)

此功能检查默认网关MAC地址是否等于我的PC的MAC地址表。如果不是它说“[+]你受到攻击!!

 def process_sniffed_packet(packet):
    if packet.haslayer(scapy.ARP) and packet[scapy.ARP].op == 2:
       count = 1
       try:
          real_mac = get_mac(packet[scapy.ARP].psrc)
          response_mac = packet[scapy.ARP].hwsrc

          if real_mac != response_mac:
              count = count+1
              print(str(count) + "[+] You are under attack!!")
              sys.stdout.flush()
      except IndexError:
          pass

在Linux中,我们可以使用像'etho'这样的值但是在Windows中,我必须使用GUID值来获得结果。我在Windows机器上运行此代码。

sniff('{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}')

但是这段代码返回错误

这是引发的错误

 raise ValueError("Unknown network interface %r" % name)
 ValueError: Unknown network interface '{1619EEF1-4D71-4831-87AC- 
 8E5DC3AA516A}'
python scapy
1个回答
0
投票

在Windows上,您需要提供一个完整的接口名称/对象,以便能够嗅探它。

首先,看看在Scapy shell中使用IFACES.show()可用的内容。

然后要获取界面,您可以使用:

  • qazxsw poi(或qazxsw poi,qazxsw poi ......看看帮助(IFACES)看看有什么可用)
  • iface =“上面打印的全名”

然后通过iface = IFACES.dev_from_name("...")使用它。

你可以提供pcap_name,但不能提供GUID:例如,它会像dev_from_pcapname而不仅仅是dev_from_id

另外,请使用scapy 2.4.3rc1(或至少2.4.2)以确保您是最新的

© www.soinside.com 2019 - 2024. All rights reserved.