В данной статье я расскажу о том, как осуществить MiTM любого устройства компании Apple в проводной или беспроводной сети. Прежде чем читать эту статью настоятельно рекомендую ознакомиться с первой, второй и третьей частями.
Ограничение всего одно: у нас должна быть возможность прослушивать широковещательный трафик в сети для того, чтобы перехватывать широковещательные DHCP-запросы.
Если это беспроводная сеть, то мы должны быть к ней подключены.
Я уже не раз говорил о выявлении конфликта IPv4 адресов в локальной сети. Для этого используется протокол ARP и происходит это сразу после того, как хост получил IP-адрес.
Чтобы выявить конфликт IP-адресов хост отправляет несколько широковещательных ARP-запроса сразу после того, как получил IP-адрес:
1. Хост с MAC-адресом 98:01:a7:e2:9a:a9 получает IP-адрес 192.168.0.4 по протоколу DHCP:
2. Хост отправляет широковещательные ARP-запросы чтобы выявить конфликт IP-адресов, при этом в Sender MAC address выставляет свой MAC-адрес: 98:01:a7:e2:9a:a9, в поле Target IP address — полученный IP-адрес 192.168.0.4:
Если в сети нет хостов с IP-адресом 192.168.0.4 то ответ не придет, но если есть — придет такой ответ:
Как вы видите после этого ответа хост отправляет широковещательное сообщение отказа DHCP — DHCPDECLINE, после чего процедура получения IP-адреса повторяется с самого начала.
Большинство операционных систем не реагируют на такие ARP-ответы после того, как уже получили IP-адрес, но не MacOS и iOS!
Поэтому, для того чтобы инициировать получение IP-адреса на операционных системах MacOS и iOS достаточно отправить пару таких ARP-ответов. А во время получения IP-адреса мы можем вмешаться в этот процесс и заменить IP-адреса шлюза и DNS-сервера на свой IP!
Видео проведения атаки на примере MacOS: