Атака IPv6 SLAAC. MitM атака в локальной сети с использованием IPv6

Сегодня мы поговорим о реализации атаки Man-in-the-Middle IPv6 SLAAC.

Смысл атаки в том, что мы становимся единственным IPv6 маршрутизатором в сети и раздаем адреса из своей IPv6 подсети, клиенты автоматически генерируют себе IP адреса (SLAAC), или получают от нашего DHCPv6 сервера. Естественно они получают все адреса с нашими настройками, что позволяет стать точкой прохождения траффика между клиентами и всеми остальными (из-за того, что IPv6 в большинстве систем имеет более высокий приоритет чем IPv4). А фильтровать Router Advertisement (анонс себя в качестве маршрутизатора) умеют далеко не все коммутаторы (в том числе и современные).
Остается только поднять NAT64 и с помощью него преобразовывать и транслировать IPv6 в IPv4.

Начнем с установки все нужных нам сервисов: DNS64 (bind9), NAT64 (tayga), DHCP (dnsmasq)

у нас будет две сети. Одна сеть для раздачи адресов клиентам с маской 64, а вторая (с маской 96) для зеркалирования всего диапазона ipv4.

Первым делом сконфигурируем сетевой адаптер для его работы в IPv6 сети.
для этого открываем /etc/network/interfaces и добавляем нужные нам параметры адреса и маски (не забываем перезапустить сеть)

или, если не требуется сохранение при перезагрузке, можно задать адрес командой:

включим пересылку (форвардинг) пакетов.
Для этого откроем /etc/sysctl.conf и изменим в нем строки:

Обновим настройки sysctl (либо можно перезагрузить систему):

Следующим шагом сконфигурируем dnsmasq. на нем выключим ответчик DNS и включим раздачу DHCP для IPv6.
Открываем /etc/dnsmasq.conf и исправляем (или добавляем) следующие параметры:

dhcp-range повторяется два раза чтобы устройство точно получило IPv6 адрес. Один раз Router Advertisement передается с установленными флагами M и O, а второй со сброшенными. Это происходит из-за того, что у некоторых устройств другой алгоритм получения IPv6 адреса.

Теперь настроим трансляцию адресов IPv6 в IPv4 (NAT64).
Для этого изменим файл конфигурации Tayga, находящийся по адресу /etc/tayga.conf

tun-device — имя создаваемого виртуального устройства для трансляции адресов
ipv4-addr — внутренний адрес из сети IPv4 (сеть существует только для сервиса Tayga)
ipv6-addr — внутренний адрес из сети IPv6 (сеть используется для трансляции адресов)
prefix — добавляемый префикс для адресов IPv4 при трансляции в IPv6
dynamic-pool — сеть IPv4 для внутренних нужд сервиса (так же виртуальная)
data-dir — путь для хранения данных сервисом

и наконец настроим bind9 для трансляции адресов (DNS64)
настраивать зону будем в файле /etc/bind/named.conf.options

Приведу полную версию конфига с комментариями:

Теперь остается только перезапустить все три сервиса и все компьютеры в сети начнут получать адреса IPv6 с адресами DNS и шлюза, а т.к. в большинстве систем IPv6 приоритетнее IPv4 то трафик пойдет через наш маршрутизатор. Остается только включить сниффер.

Далее идут скриншоты с пользовательской системы после успешно проведенной атаки.

Полученные адреса

ipv6_slaac_1.JPG

Ping и Nslookup

ipv6_slaac_2.JPG

Защититься от данной атаки можно отключением IPv6 в локальной сети (особенно если IPv6 в ней не используется). Либо настраивать фильтрацию на коммутаторах фильтрацию Router Advertisement с недоверенных портов.

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.