- PVSM.RU - https://www.pvsm.ru -

Атакуем DHCP часть 3. DHCP + Apple = MiTM

LOGO

В данной статье я расскажу о том как осуществить MiTM любого устройства компании Apple в WiFi сети. Прежде чем читать эту статью настоятельно рекомендую ознакомиться с первой [1] и второй [2] частью.

Ограничения все те же:

  1. Мы должны быть подключены к атакуемой точке доступа.
  2. У нас должна быть возможность прослушивать широковещательный трафик в сети.

Как оказалось, macOS и iOS переплюнули всех в плане получения сетевых настроек по протоколу DHCP. Когда эти операционные системы отправляют DHCPREQUEST, DHCP-сервер отвечает им DHCPACK, и они выставляют сетевые настройки из ответа сервера. Вроде пока все как у всех:
MacOS legal DHCPACK

Но проблема в том, что DHCPREQUEST широковещательный и злоумышленник, как правило, без особых проблем может его перехватить извлечь из него поля xid и chaddr, что бы сформировать правильный DHCPACK. Но злоумышленник отправит DHCPACK, конечно, позднее легитимного DHCP-сервера, то есть его ответ придет вторым. Все остальные DHCP-клиенты на других ОС просто проигнорируют второй DHCPACK, но не macOS и iOS.

Как вы думаете, какие сетевые настройки выставляют данные операционные системы? Ответ: те настройки, которые будут содержаться во втором DHCPACK (в DHCPACK злоумышленника).
MacOS attacker DHCPACK

Видео демонстрации бага в DHCP-клиенте на macOS:

Как Вы думаете баг это или фича? Я подумал баг и на всякий случай завел заявку на Apple Bug Reporter этой заявке уже больше месяца, но ни одного комментария от специалистов Apple я так и не получил.
Apple bug reporter

На заявке в Apple Bug Reporter я не остановился и написал письмо в product-security@apple.com
Apple email

Специалисты Apple совсем не быстро, но все же ответили и сказали, что их DHCP-клиент работает в соответствии с RFC 2131. То есть это вовсе не баг, это фича. У меня все.
Thats all folks

Послесловие

Для самых ленивых я подготовил скрипт apple_wifi_mitmer.py [3], который в автоматическом режиме находит все устройства компании Apple в Wi-Fi-сети, деаутентифицирует их и производит MiTM.

В аргументах скрипта всего-то нужно указать имя беспроводного интерфейса, который уже подключен к исследуемой Wi-Fi-сети, и еще один беспроводной интерфейс для отправки deauth-пакетов.

Видео демонстрации работы скрипта apple_wifi_mitmer.py [3]:

Работает ли это на новой iOS 11? Ответ: Да, работает.

Автор: vladimir-ivanov

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/wifi/264634

Ссылки в тексте:

[1] первой: https://habrahabr.ru/company/dsec/blog/333978/

[2] второй: https://habrahabr.ru/post/338860/

[3] apple_wifi_mitmer.py: https://github.com/Vladimir-Ivanov-Git/raw-packet/blob/master/apple_wifi_mitmer.py

[4] Источник: https://habrahabr.ru/post/338864/