Импорт 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', но в окнах я должен использовать значение 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}'