mitm6 – это инструмент для пентеста, который использует стандартную конфигурацию Windows для захвата DNS-сервера по умолчанию.
Он делает это, отвечая на сообщения DHCPv6, предоставляя жертвам локальный IPv6-адрес и устанавливая хост злоумышленников как DNS-сервер по умолчанию.
В качестве DNS-сервера mitm6 будет выборочно отвечать на DNS-запросы злоумышленников, которые выбирают и перенаправляют трафик жертв на атакующую машину, а не на законный сервер.
Mitm6 предназначен для совместной работы с ntlmrelayx от impacket для подделки WPAD и ретрансляции учетных данных.
Зависимости и установка
mitm6 совместим как с Python 2.7, так и с 3.x.
Вы можете установить требования для своей версии с помощью pip install -r requirements.txt.
В обоих случаях mitm6 использует следующие пакеты:
- Scapy
- Twisted
- netifaces
Для python 2.7 он использует модуль backport для ipaddress.
Вы можете установить последнюю версию из PyPI с помощью pip install mitm6 или последней версии из источника с установкой python setup.py после клонирования этого репозитория git.
Применение
После установки mitm6 будет доступен в виде программы командной строки с именем mitm6.
Поскольку он использует необработанный пакетный захват с помощью Scapy, его следует запускать от пользователя root.
mitm6 должен определить ваши сетевые настройки по умолчанию и использовать ваш основной интерфейс для его спуфинга.
Единственный вариант, который вам, вероятно, нужно будет указать, – это домен AD, который вы будете спуффить.
Для расширенной настройки доступны следующие опции:
# mitm6 [-h] [-d DOMAIN] [-i INTERFACE] [-4 ADDRESS] [-6 ADDRESS] [-m ADDRESS] [-a] [-v] [--debug] mitm6 - pwning IPv4 via IPv6 optional arguments: -h, --help show this help message and exit -d DOMAIN, --domain DOMAIN Interal domain name to filter DNS queries on (Whitelist principle, multiple can be specified. Note that the first will be used as DNS search domain) -i INTERFACE, --interface INTERFACE Interface to use (default: autodetect) -4 ADDRESS, --ipv4 ADDRESS IPv4 address to send packets from (default: autodetect) -6 ADDRESS, --ipv6 ADDRESS IPv6 link-local address to send packets from (default: autodetect) -m ADDRESS, --mac ADDRESS Custom mac address - probably breaks stuff (default: mac of selected interface) -a, --no-ra Do not advertise ourselves (useful for networks which detect rogue Router Advertisements) -v, --verbose Show verbose information --debug Show debug information
Вы можете вручную переопределить большинство параметров автоопределения (хотя переопределение MAC-адреса приведет к поломке).
Если в сети есть какое-то оборудование, которое блокирует или обнаруживает сообщения извещений Ruger Router, вы можете добавить флаг -no-ra, чтобы не транслировать их.
Маршрутизация извещений не нужны для работы mitm6, так как в основном это зависит от сообщений DHCPv6.
О влиянии сети и восстановлении сети
mitm6 разработан как инструмент для тестирования на проникновение и должен, таким образом, воздействовать на сеть как можно меньше.
Это основная причина, по которой mitm6 в настоящее время не реализует полную атаку «человек-по-середине», как, например, мы наблюдаем атаку SLAAC.
Для дальнейшего минимизации воздействия назначенные IP-адреса имеют низкие значения времени жизни (TTL).
Срок аренды истечет в течение 5 минут, когда mitm6 будет остановлен, что приведет к удалению DNS-сервера из конфигурации жертв.
Чтобы предотвратить кеширование ответов DNS, все ответы отправляются с TTL 100 секунд, что гарантирует, что кеш очищается в течение нескольких минут после выхода из инструмента.
Использование с ntlmrelayx
mitm6 предназначен для использования с ntlmrelayx.
Вы должны запускать инструменты рядом друг с другом, в этом случае mitm6 подменяет DNS, заставляя жертвы подключаться к ntlmrelayx по HTTP и SMB-соединений.
Для этого вам нужно запустить ntlmrelayx с опцией -6, которая заставит его прослушивать как IPv4, так и IPv6.
Чтобы получить учетные данные для WPAD, укажите имя хоста WPAD для подмены имени -wh HOSTNAME (любое несуществующее имя хоста в локальном домене будет работать, поскольку mitm6 является DNS-сервером).
При желании вы также можете использовать параметр -wa N с несколькими попытками запросить аутентификацию самого файла WPAD, если вы подозреваете, что жертвы не применяют патч MS16-077.
Обнаружение
Команда Fox-IT Security Research Team выпустила подписи Snort и Suricata для обнаружения мошеннического трафика DHCPv6 и ответов WPAD по IPv6.
Подписи доступны здесь: https://gist.github.com/fox-srt/98f29051fe56a1695de8e914c4a2373f