【问题标题】:GUID number of windows interface giving error: ValueError: Unknown network interface '{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}'给出错误的 Windows 界面的 GUID 号:ValueError:未知网络接口“{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}”
【发布时间】:2019-07-31 04:41:11
【问题描述】:

导入 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】:

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

    首先,看看在 Scapy shell 中使用 IFACES.show() 可以得到什么。

    然后要获取接口,您可以使用:

    • iface = IFACES.dev_from_name("...")(或dev_from_pcapnamedev_from_id...查看帮助(IFACES)以了解可用的内容)
    • iface = "上面打印的全名"

    然后通过sniff(iface=iface)使用它。

    您可以提供 pcap_name,但不能提供 GUID:例如,它将类似于 \\Device\\NPF_{...} 而不仅仅是 {...}

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

    【讨论】:

      【解决方案2】:

      我通过安装npcap解决了windows上的scapy错误ValueError: Unknown network interface

      【讨论】:

      • 是的,您需要 WinPcap 或 Npcap 才能在 Windows 上运行基于 libpcap 的软件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多