Что такое ARP?
ARP (Address Resolution Protocol) — протокол канального уровня, который переводит IP-адрес в MAC-адрес в пределах одной сети. Перед отправкой пакета узел спрашивает: «Кто имеет IP 192.168.1.1? Ответьте мне!» — и роутер отвечает своим MAC.
Ответы кэшируются в ARP-таблице (ARP cache). Проблема: протокол не проверяет подлинность ответов.
Как происходит атака — шаг за шагом
Атакующий находится в той же локальной сети, что и жертва.
Он рассылает поддельные ARP Reply жертве: «IP роутера — это мой MAC».
Жертва обновляет ARP-кэш: теперь трафик к роутеру идёт на машину атакующего.
Атакующий повторяет то же самое для роутера: «IP жертвы — это мой MAC».
Оба узла «отравлены». Атакующий стоит посередине (Man-in-the-Middle) и может читать, изменять или блокировать трафик.
Что может сделать атакующий?
Находясь в позиции MITM, атакующий получает доступ к:
HTTP — читает незашифрованные страницы и формы;
DNS — подменяет ответы, перенаправляет на фишинговые сайты;
Credentials — перехватывает логины/пароли в открытых протоколах;
SSL Strip — в связке с другими атаками снижает HTTPS до HTTP.
Методы защиты
arp -s 192.168.1.1 AA:BB:CC:DD:EE:FF. Поддельный Reply не перезапишет запись.Команды для диагностики
Проверить ARP-таблицу и обнаружить дублирующиеся MAC:
# Linux — показать ARP-таблицу
arp -n
ip neigh show
# Найти дублирующиеся MAC (признак отравления)
arp -n | awk '{print $3}' | sort | uniq -d
# Windows
arp -a
# Добавить статическую запись (Linux)
sudo arp -s 192.168.1.1 AA:BB:CC:DD:EE:FF