
Analizza le richieste ARP per identificare host in comunicazione tra loro e configurazioni di indirizzi di rete obsolete (SNACs)
Uno strumento di ricognizione che analizza le richieste ARP per identificare gli host che probabilmente comunicano tra loro, utile in quelle temute situazioni in cui LLMNR/NBNS non sono in uso per la risoluzione dei nomi.
Presentato da:

Funziona solo su Kali o altre distribuzioni Linux basate su Debian
eavesarp richiede Python3.7 e Scapy. Dopo aver installato Python, esegui il seguente comando per installare Scapy: python3.7 -m pip install -r requirements.txt
Note:
eavesarp richiede privilegi di root per catturare il traffico dall'interfaccia e costruire pacchetti ARP.eavesarp.db per evitare di dover ricatturare le richieste ARP.La forma più basilare di esecuzione è:
sudo ./eavesarp.py capture -i eth1
Questo inizializza eavesarp in modo che le richieste ARP vengano catturate, analizzate e l'output rilevante venga presentato all'utente in una tabella. Usa --help per ulteriori informazioni sugli argomenti non standard. Nota che la colonna stale indica [UNCONFIRMED] quando una richiesta ARP proveniente da un target (come mittente) non è stata ancora osservata eseguendo in questa modalità. Abilita la risoluzione ARP tramite il flag -ar per determinare se un dato indirizzo target è diventato obsoleto.
___ ___ __ _____ ___ ___ ________
/ -_) _ `/ |/ / -_|_-</ _ `/ __/ _ \
\__/\_,_/|___/\__/___/\_,_/_/ / .__/
-----------------------------/ /---
[LISTEN CAREFULLY] /_/
Capture interface: eth1
ARP resolution: disabled
DNS resolution: disabled
Requests analyzed: 65
SNAC Sender Target ARP# Stale
------ ------------- -------------- ------ -------------
192.168.86.5 192.168.86.101 29 [UNCONFIRMED]
192.168.86.3 1
192.168.86.3 192.168.86.37 25 [UNCONFIRMED]
192.168.86.38 7 [UNCONFIRMED]
192.168.86.5 1
192.168.86.99 1
192.168.86.99 192.168.86.3 1
Abilita la risoluzione ARP e DNS includendo i flag -ar e -dr. Tieni presente che questo rende lo strumento non passivo, ma il vantaggio è che vengono restituiti i record DNS, gli indirizzi MAC e una conferma dello stato degli SNAC.
sudo ./eavesarp.py capture -i eth1 -ar -dr --blacklist 192.168.86.5
Dall'output qui sotto possiamo vedere chiaramente quali mittenti sono affetti da uno o più SNAC e gli indirizzi coinvolti. L'ultima colonna indica se esiste una potenziale opportunità MITM. eavesarp verifica se l'indirizzo FWD del PTR risolto per un dato mittente è diverso. Se lo è, potrebbe essere un indicatore che il target previsto si è spostato al nuovo indirizzo FWD. Applicare un alias all'interfaccia della nostra macchina attaccante potrebbe permetterci di inoltrare il traffico al target previsto e catturare le informazioni in transito.
___ ___ __ _____ ___ ___ ________
/ -_) _ `/ |/ / -_|_-</ _ `/ __/ _ \
\__/\_,_/|___/\__/___/\_,_/_/ / .__/
-----------------------------/ /---
[LISTEN CAREFULLY] /_/
Capture interface: eth1
ARP resolution: enabled
DNS resolution: enabled
Requests analyzed: 55
SNAC Sender Target ARP# Stale Sender PTR Target PTR MITM
------ ------------- -------------- ------ ------- -------------- ---------------- ---------------------------------------------
True 192.168.86.2 192.168.86.101 21 True iron.aa.local. syslog.aa.local. T-IP:192.168.86.101 != PTR-FWD:192.168.86.102
True 192.168.86.3 192.168.86.38 17 True crux.aa.local.
192.168.86.37 15 True
192.168.86.99 1 w10.aa.local.
192.168.86.99 192.168.86.3 1 w10.aa.local. crux.aa.local.
eavesarp)eavesarp può accettare database SQLite e file PCAP per l'analisi. L'output dei valori estratti verrà scritto in un nuovo file di database per ulteriori analisi. Consulta il flag --help per maggiori informazioni su questo processo, tuttavia di seguito viene mostrata l'esecuzione di base.
sudo ./eavesarp.py analyze -sfs eavesarp.db -cp disable --blacklist 192.168.86.5 --csv-output-file eavesarp_analysis.db
SNAC Sender Target ARP# Stale Sender PTR Target PTR MITM
------ ------------- -------------- ------ ------- -------------- ---------------- ---------------------------------------------
True 192.168.86.2 192.168.86.101 21 True iron.aa.local. syslog.aa.local. T-IP:192.168.86.101 != PTR-FWD:192.168.86.102
True 192.168.86.3 192.168.86.38 17 True crux.aa.local.
192.168.86.37 15 True
192.168.86.99 1 w10.aa.local.
192.168.86.99 192.168.86.3 1 w10.aa.local. crux.aa.local.
- Writing csv output to eavesarp_analysis.db
...e l'output CSV si presenta così...
arp_count,sender,sender_mac,target,target_mac,stale,sender_ptr,target_ptr,target_forward,mitm_op,snac
21,192.168.86.2,74:d4:35:1a:b5:fb,192.168.86.101,[STALE TARGET],True,iron.aa.local.,syslog.aa.local.,192.168.86.102,T-IP:192.168.86.101 != PTR-FWD:192.168.86.102,True
17,192.168.86.3,b8:27:eb:a9:5c:8f,192.168.86.38,[STALE TARGET],True,crux.aa.local.,,,False,True
15,192.168.86.3,b8:27:eb:a9:5c:8f,192.168.86.37,[STALE TARGET],True,crux.aa.local.,,,False,True
1,192.168.86.99,08:00:27:22:49:c5,192.168.86.3,b8:27:eb:a9:5c:8f,False,w10.aa.local.,crux.aa.local.,192.168.86.3,False,False
1,192.168.86.3,b8:27:eb:a9:5c:8f,192.168.86.99,08:00:27:22:49:c5,False,crux.aa.local.,w10.aa.local.,192.168.86.99,False,True