
Analisar requisições ARP para identificar hosts em comunicação e configurações de endereço de rede obsoletas (SNACs)
Uma ferramenta de reconhecimento que analisa requisições ARP para identificar hosts que provavelmente estão se comunicando entre si, útil naquelas situações temidas onde LLMNR/NBNS não estão sendo usados para resolução de nomes.
Trazido a você por:

Isso só vai funcionar no Kali ou outras distribuições Linux baseadas no Debian
O eavesarp requer Python3.7 e o Scapy. Após instalar o Python, execute o seguinte comando para instalar o Scapy: python3.7 -m pip install -r requirements.txt
Notas:
eavesarp requer privilégios de root para capturar pacotes da interface e forjar pacotes ARP.eavesarp.dbA forma mais básica de execução é:
sudo ./eavesarp.py capture -i eth1
Isso inicializará o eavesarp de modo que as requisições ARP serão capturadas, analisadas e a saída relevante será apresentada ao usuário em uma tabela. Use --help para informações adicionais sobre argumentos não padrão. Note que a coluna stale indica [UNCONFIRMED] quando uma requisição ARP originada de um alvo (como remetente) ainda não foi observada ao executar neste modo. Habilite a resolução ARP através da flag -ar para determinar se um determinado endereço alvo se tornou 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
Habilite a resolução ARP e DNS incluindo as flags -ar e -dr. Tenha em mente que isso torna a ferramenta não passiva, mas a vantagem é que registros DNS, endereços MAC e uma confirmação do status dos SNACs são retornados.
sudo ./eavesarp.py capture -i eth1 -ar -dr --blacklist 192.168.86.5
Podemos ver claramente na saída abaixo quais remetentes são afetados por um ou mais SNACs e os endereços afetados. A coluna final indica se existe uma oportunidade de MITM em potencial. eavesarp verifica se o endereço FWD do PTR resolvido para um determinado remetente é diferente. Se sim, pode ser um indicador de que o alvo pretendido mudou para o novo endereço FWD. Aplicar um alias na interface do nosso host atacante pode nos permitir encaminhar o tráfego para o alvo pretendido e capturar informações em trânsito.
___ ___ __ _____ ___ ___ ________
/ -_) _ `/ |/ / -_|_-</ _ `/ __/ _ \
\__/\_,_/|___/\__/___/\_,_/_/ / .__/
-----------------------------/ /---
[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)O eavesarp pode aceitar bancos de dados SQLite e arquivos PCAP para análise. Ele irá gerar os valores extraídos em um novo arquivo de banco de dados para análise posterior. Veja a flag --help para mais informações sobre esse processo, porém a execução básica é demonstrada abaixo.
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 a saída CSV fica assim...
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