ARP request spoofing

2

Sto lavorando su una rete di accesso / backhaul basata su SDN. Per alcuni esperimenti ho bisogno di generare una richiesta ARP da uno dei nodi nella mia rete, fingendo di essere un altro. Essenzialmente questa richiesta ARP verrà iniettata nella rete dal controller, ma per il momento devo testare se questa soluzione funziona generando il pacchetto ARP localmente.

Supponiamo che un client (sul quale non ho il controllo) connesso alla mia rete abbia MAC AA:AA:AA:AA:AA:AA . Da un'interfaccia di un nodo con un MAC diverso, voglio generare una richiesta ARP (messaggio broadcast) che ha come sorgente MAC AA:AA:AA:AA:AA:AA (quella del client).

Avrei bisogno di uno strumento CLI in grado di inviare la richiesta ARP creata (una sorta di arping in cui posso specificare il MAC src). Ho provato con pachETH ma ha bisogno del file pcap per funzionare tramite CLI, mentre ETTERCAP sembra generare la risposta ARP ma non la richiesta. Qualche suggerimento?

    
posta Math 31.01.2018 - 10:29
fonte

3 risposte

1

Puoi usare scapy per questo. Un approccio è quello di registrare uno o più pacchetti ARP prima:

pk = sniff(count=1, filter="arp")
pk.summary()

E più tardi usalo per costruire la tua richiesta ARP:

arppk = eval(pk[0].command())

Ora puoi impostare i tuoi valori in arppk :

arppk[ARP].hwsrc = 'AA:AA:AA:AA:AA:AA'

La funzione ls(ARP) ti mostra più opzioni disponibili.

    
risposta data 31.01.2018 - 14:01
fonte
0

Penso che l'opzione migliore per te sia quella di utilizzare scapy

Hai anche molti esempi su internet per generare pacchetti. Sono sicuro che ci siano altri strumenti, ma lo scapy è quello che uso per quel tipo di lavoro.

    
risposta data 31.01.2018 - 10:40
fonte
0

Consiglierei di creare un semplice script Python usando il modulo scapy per creare pacchetti.

Ecco un'idea del tipo di sintassi che ti serve:

from scapy.all import *

mode = "who-has"
destinationMac = "FF:FF:FF:FF:FF:FF"
sourceMac = "AA:AA:AA:AA:AA:AA"
destinationIP = "192.168.x.x"
sourceIP = "192.168.x.x"

sendp(Ether(dst=destinationMac, src=sourceMac)/ARP(hwsrc=sourceMac, pdst=destinationIP, psrc=sourceIP, op=mode), verbose=0)
    
risposta data 31.01.2018 - 14:06
fonte

Leggi altre domande sui tag