Идентификатор GUID номера интерфейса Windows с ошибкой: ValueError: Неизвестный сетевой интерфейс '{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}'

Импорт 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-адрес шлюза по умолчанию таблице 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 Machine.

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

Но этот код возвращает ошибку

Это ошибка, которая возникла

 raise ValueError("Unknown network interface %r" % name)
 ValueError: Unknown network interface '{1619EEF1-4D71-4831-87AC- 
 8E5DC3AA516A}'

1 ответ

В Windows вам необходимо предоставить полное имя интерфейса / объекта, чтобы иметь возможность его прослушивать.

Во-первых, посмотрите на то, что доступно с помощью IFACES.show() в оболочке Scapy.

Затем, чтобы получить интерфейс, вы можете использовать:

  • iface = IFACES.dev_from_name("...") (или же dev_from_pcapname, dev_from_id... посмотрите на справку (IFACES), чтобы увидеть, что доступно)
  • iface = "полное имя как напечатано выше"

Тогда используйте это через sniff(iface=iface),

Вы можете указать pcap_name, но не GUID: например, это будет что-то вроде \\Device\\NPF_{...} а не просто {...},

Также, пожалуйста, используйте scapy 2.4.3rc1 (или, по крайней мере, 2.4.2), чтобы быть в курсе последних новостей.

Я решил scapy ошибка ValueError: Unknown network interface на windowsустановив npcap

Другие вопросы по тегам