Cel slajdu: Slajd uczy przechwytywania ruchu ARP programem tcpdump oraz filtrowania zapytań i odpowiedzi na podstawie pola kodu operacji.
Przechwytywanie i analiza pakietów ARP w czasie rzeczywistym
- Podstawowe polecenia diagnostyczne:
- Przechwytywanie z nagłówkami L2:
sudo tcpdump -i eth0 -e -nn arp
- Szczegółowy podgląd pól ARP:
sudo tcpdump -i eth0 -v -nn arp
- Filtrowanie wyłącznie zapytań (Opcode=1):
sudo tcpdump -i eth0 -nn 'arp[6:2] = 1'
- Filtrowanie wyłącznie odpowiedzi (Opcode=2):
sudo tcpdump -i eth0 -nn 'arp[6:2] = 2'
$ sudo tcpdump -i eth0 -e -nn arp
12:34:56.789012 08:00:27:8f:22:60 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42:
Request who-has 192.168.1.10 tell 192.168.1.1, length 28
12:34:56.789456 74:d4:35:e0:b4:7e > 08:00:27:8f:22:60, ethertype ARP (0x0806), length 42:
Reply 192.168.1.10 is-at 74:d4:35:e0:b4:7e, length 28
Wyjaśnienie: Opcja -e nakazuje wyświetlenie adresów MAC nagłówka Ethernet, a -nn wyłącza rozwiązywanie nazw domenowych i portów, co zapobiega opóźnieniom diagnostycznym.
Filtr BPF dla ARP (ang. BPF filter for ARP): Filtr BPF (Berkeley Packet Filter) to wyrażenie kompilowane do kodu jądra, odrzucające niepasujące pakiety już na poziomie sterownika karty. Dla ARP kluczowe jest pole kodu operacji na przesunięciu 6 bajtów od początku nagłówka (arp[6:2]), gdzie wartość 1 oznacza zapytanie, a 2 oznacza odpowiedź, natomiast opcje -e i -nn kontrolują pokazywanie adresów MAC oraz wyłączają wolne rozwiązywanie nazw.