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

    LOGO


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


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


    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, который в автоматическом режиме находит все устройства компании Apple в Wi-Fi-сети, деаутентифицирует их и производит MiTM.


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


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



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

    • +21
    • 9,4k
    • 6
    Поделиться публикацией
    Комментарии 6
      0
      Аплодисменты стоя — если работает! Ушел проверять твои слова…
        +1
        Отпишись, если не сработает :)
        0
        хм… а ответ от эйпл будет? или «а слона то я и не заметил»
          0
          Думаю ответ будет не скоро.
          0
          Интересно, а если клиенту выслать сразу после «второго» DHCPACK еще один — третий? Он послушается и применит «последний-третий»?
            0
            Пробуйте, ссылку на свой гит я оставил. Тайм-аут ответа около 2 секунд.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое