Dolos Cloak
Dolos Cloak — это скрипт на Python, предназначенный для помощи специалистам по тестированию на проникновение и red team в обходе решений 802.1x с использованием продвинутой атаки «человек посередине». Инструмент способен подключаться к проводному соединению устройства жертвы, которое уже имеет доступ к целевой сети, не отключая устройство жертвы от сети. Он был разработан для работы на Odroid C2 под управлением Kali ARM и требует двух внешних USB-адаптеров Ethernet. Теоретически инструмент может работать и на другом оборудовании и дистрибутивах, но на данный момент он протестирован только на Odroid C2.
автор: Forrest Kasler (fkasler)(ph3eds)

Как это работает
Dolos Cloak использует правила NAT в iptables, arptables и ebtables для подмены MAC- и IP-адресов доверенного сетевого устройства и слияния с обычным сетевым трафиком. При загрузке скрипт запрещает любой исходящий сетевой трафик с Odroid, чтобы скрыть MAC-адреса его сетевых интерфейсов.
Затем скрипт создаёт интерфейс моста и добавляет в него два внешних USB-адаптера Ethernet. Весь трафик, включая любые шаги аутентификации 802.1x, передаётся через мост между этими двумя интерфейсами. В таком состоянии устройство действует как перехватчик трафика. Как только Odroid подключается между доверенным устройством (настольным ПК, IP-телефоном, принтером и т.д.) и сетью, скрипт прослушивает пакеты на интерфейсе моста, чтобы определить MAC-адрес и IP устройства жертвы.
Когда скрипт определяет MAC-адрес и IP устройства жертвы, он настраивает правила NAT, чтобы весь трафик на цепочках OUTPUT и POSTROUTING выглядел так, будто он исходит от устройства жертвы. На этом этапе устройство может взаимодействовать с сетью, не будучи обнаруженным.
После того как Odroid начинает подменять MAC-адрес и IP устройства жертвы, скрипт отправляет DHCP-запрос, чтобы определить шлюз по умолчанию, домен поиска и серверы имён. Он использует ответ для настройки своих сетевых параметров, чтобы устройство могло взаимодействовать с остальной частью сети.
На этом этапе Odroid действует как скрытная опорная точка в сети. Операторы могут подключаться к Odroid через встроенный сетевой интерфейс eth0 для получения доступа к сети. Устройство также можно настроить на отправку обратной оболочки (reverse shell), чтобы операторы могли использовать его как транзитный узел и удалённо выполнять команды в сети. Например, скрипт можно настроить на запуск стейджера Empire (Python) после выполнения атаки «человек посередине». Затем можно использовать C2-соединение Empire для повышения до TCP-обратной оболочки или VPN-туннеля.
Установка и использование
- Выполните стандартную установку Kali ARM на Odroid C2. Ознакомьтесь с руководством от Blackhills здесь.
- Обязательно сохраните этот проект в /root/tools/dolos_cloak.
- Подключите один внешний USB-сетевой адаптер к Odroid и выполните dhclient для получения доступа в интернет, чтобы установить зависимости:
- Запустите скрипт установки для получения всех зависимостей и настройки Odroid на выполнение MitM при загрузке по умолчанию. Имейте в виду, что это внесёт кардинальные изменения в сетевые настройки устройства и отключит Network Manager. Возможно, вы захотите загрузить дополнительные инструменты до этого шага:
- Возможно, вы захотите установить другие инструменты, например 'host', которые не входят в стандартную поставку Kali ARM. Empire, enum4linux и responder также являются полезными дополнениями.
- Убедитесь, что вы можете подключиться по SSH к Odroid через встроенный сетевой интерфейс eth0. Добавьте свой открытый ключ в /root/.ssh/authorized_keys для быстрого доступа.
- Измените config.yaml в соответствии с вашими потребностями. Убедитесь, что интерфейсы соответствуют именам, которые ваш Odroid присваивает USB-адаптерам по умолчанию. Порядок здесь не важен. Оставьте client_ip, client_mac, gateway_ip и gateway_mac пустыми, если вы не использовали LAN tap для их сбора. Скрипт должен справиться с этим самостоятельно. Устанавливайте эти параметры только в том случае, если вы точно знаете их значения. Параметры management_int, domain_name и dns_server пока являются заполнителями, но скоро станут полезными. Для оболочек вы можете настроить пользовательскую команду autorun в config.yaml, которая будет выполняться после автонастройки атаки «человек посередине». Также можно настроить cron-задачу для отправки обратных оболочек.
- Подключите два USB-адаптера Ethernet и перезагрузите устройство (нужны два, так как встроенный Ethernet не поддерживает режим promiscuous).
- Загрузите устройство и подождите несколько секунд, пока autosniff.py заблокирует исходящие цепочки Ethernet и IP. Затем подключите Odroid между доверенным устройством и сетью.
- Взламывайте нубов, получайте $$$, веселитесь, хакните планету.
Советы
- Измените и выполните ./scripts/upgrade_to_vpn.sh, чтобы превратить скрытный агент Empire в полноценный VPN-туннель.
- Измените и выполните ./scripts/reverse_listener_setup.sh, чтобы настроить порт для прослушивателя обратного соединения на устройстве.
- Выполните ./scripts/responder_setup.sh, чтобы настроить управление протоколами, которые мы перехватываем для responder. Запускать responder следует на интерфейсе моста:
- Будьте осторожны, так как некоторые NAC-решения используют порты 445, 443 и 80 для периодической проверки хостов. Разрабатывается решение этой проблемы...
- Журналы помогают, когда autosniff.py работает некорректно. Файл rc.local настроен на сохранение журналов текущей сессии в ./logs/session.log и журналов в ./logs/history.log, чтобы мы могли перезагрузиться и при необходимости проверить журнал последней сессии. В журналах содержится полезная информация: сведения о сети, сообщения об ошибках и все bash-команды для настройки магии NAT.
Скрытность
Используйте параметр radio_silence, чтобы предотвратить любой вывод, исходящий от нас. Это предназначено для режима только прослушивания.
Лицензия
Этот проект является серьёзной переработкой инструмента, созданного @jkadijk, и использует структуру классов оригинального проекта. По его просьбе:
«Просто упомяните меня, если будете использовать это, и сохраните его открытым :)» — @jkadijk