IPv6 SLAAC Attack

Тема в разделе "Новости информационной безопасности", создана пользователем akok, 19 дек 2014.

  1. akok
    Оффлайн

    akok Команда форума Администратор

    Сообщения:
    12.455
    Симпатии:
    13.954
    IPv6 SLAAC Attack


    [​IMG]

    Прочитал недавно статью «IPv6 под прицелом» и решил написать более подробно об атаке SLAAC (SLAAC Attack), т.к. эту атаку я уже давно в голове держу, развернутого материала на русском не нашел, да и самому интересно ее было повторить.

    Суть атаки

    В чем суть атаки? Во-первых, она очень простая и надежная, т.к. использует стандартные технологии и инструменты ОС. По сути, вы просто становитесь единственным IPv6-маршрутизатором в сети и раздаете клиентам IPv6-подсеть, из которой клиенты берут себе адреса либо автоматически генерируя их (SLAAC), либо спрашивая у вашего же DHCPv6-сервера. Напомню, что IPv6 включен по умолчанию во всех современных десктопных, мобильных и серверных ОС, имеет приоритет над IPv4 (кроме некоторых случаев), адрес IPv6, в отличие от IPv4, может быть получен в любой момент, а не только в момент совершения подключения, и крупные веб-сайты уже давно доступны через IPv6. Атака работает как в проводных сетях, так и в беспроводных. Не все свитчи, даже современные, поддерживают фильтрацию Router Advertisement, и, как я полагаю, не все включают эту функцию, даже если она поддерживается свитчем, полагая, что раз в сети нет IPv6, то и фильтровать ничего не нужно. К слову, на данный момент, фильтр Router Advertisement можно обойти на всех свитчах, использовав недостатки реализации.

    Я смог придумать две реализации атаки:
    TAYGA (userspace) и Ecdysis (kernelspace), Jool (kernelspace), а поддержка DNS64 есть в Bind9, Unbound и специальном демоне totd, который заброшен, но все еще компилируется и работает.
    Первым делом, мы должны выбрать какие-то 2 подсети, которые будем раздавать нашим клиентам. Первая подсеть нужна для отображения адресов, а вторая для маршрутизации. Я решил использовать2001:db8:1:ffff::/96 (из диапазона «для документации») в качестве первой подсети, а в качестве второй —fde4:8dba:82e1:ffff::/64 (IPv6 ULA, аналог внутрисетевых диапазонов в IPv4).

    Перенастраиваем dnsmasq:
    Код (Text):
    dhcp-range=fde4:8dba:82e1:ffff::1, fde4:8dba:82e1:ffff::ff, slaac
    Указываем наши настройки в TAYGA:
    Код (Text):
    prefix 2001:db8:1:ffff::/96
    И в totd:
    Код (Text):
    forwarder 74.82.42.42 port 53
    prefix 2001:db8:1:ffff::
    port 53
    И запускаем все демоны. В итоге, получается как-то так:
    Код (Text):
    % dig aaaa habrahabr.ru

    ; <<>> DiG 9.9.2-P2 <<>> aaaa habrahabr.ru
    ;; ANSWER SECTION:
    habrahabr.ru.    2363    IN    AAAA    2001:db8:1:ffff::d418:2c8d
    habrahabr.ru.    2363    IN    AAAA    2001:db8:1:ffff::d418:2c85
    Весь трафик, отправленный на диапазон 2001:db8:1:ffff::/96, фактически пойдет через IPv4.

    К сожалению, DNS устанавливается только при подключении, т.к. Router Advertisement принимает ядро, а для получения DNS нужен DHCPv6, чем ядро уже не занимается. Аналогичное поведение наблюдается в Windows 7 (другие версии не пробовал).

    Заключение

    Мне очень нравится эта атака. Она очень простая, надежная и работает там, где есть защиты от ARP Spoofing и IPv4 ACL. Существует и другая, но очень похожая по сути атака — Rogue RA, которая позволит выполнить MITM даже при наличии существующей IPv6-инфраструктуры, но о ней как-нибудь в другой раз.


    Источник
     
    Последнее редактирование модератором: 19 дек 2014
    -SEM-, Alex1983, Dragokas и 3 другим нравится это.

Поделиться этой страницей