Реверс-прокси для фишинга — проксирует реальные сайты в реальном времени и перехватывает учётные данные и сессионные куки. Поддерживает TLS, кастомные домены и автоматическое внедрение payload-а. Альтернатива Evilginx без написания phishlets.
# Требуется Go 1.14+: git clone https://github.com/drk1wi/Modlishka cd Modlishka go build # Запуск: ./modlishka -proxyDomain attacker.com -target targetsite.com \ -listeningPort 443 -tls true
Modlishka — это инструмент для тестирования на проникновение с открытым исходным кодом, который действует как прокси типа «человек посередине». Он внедряет новый технический подход к обработке потока HTTP-трафика на основе браузера, что позволяет прозрачно проксировать трафик с назначением в нескольких доменах (как TLS, так и non-TLS) через один домен, без необходимости установки какого-либо дополнительного сертификата на клиенте.
В 2019 году Modlishka стала первым публично выпущенным исследовательским инструментом, продемонстрировавшим новую технику атаки «атакующий посередине» (Adversary-in-the-Middle, AitM), способную обходить многие распространенные реализации двухфакторной аутентификации (2FA) — с целью повышения осведомленности и улучшения реальных средств защиты.
Примечание: Этот проект предназначен исключительно для авторизованного исследования и профессионального тестирования безопасности.
Тестирование безопасности: - Этичные фишинговые тесты на проникновение с прозрачным, автоматизированным обратным прокси и универсальной поддержкой обхода 2FA - Выявление слабостей в схемах 2FA для стимулирования разработки более безопасных отраслевых решений
Общее: - Обертывание устаревших веб-сайтов с TLS - Путание сканеров пауков и автоматических сканеров - Универсальный прозрачный обратный прокси для других проектов
Общие: - Настраиваемое по точкам управления обратное проксирование HTTP и HTTPS для произвольных доменов - Полный контроль потока кросс-доменного TLS-трафика без установки клиентского сертификата - Простая конфигурация через параметры командной строки и файлы конфигурации JSON - Инъекция JavaScript-полезной нагрузки на основе шаблонов - Обертывание с TLS, аутентификация и заголовки безопасности для устаревших веб-сайтов - Бесплатный от состояния дизайн для удобного масштабирования через DNS-балансировщик - Расширяемость через модульные плагины - Плагин автоматической генерации TLS-сертификатов (требует самоподписанный CA) - Кроссплатформенность: Windows, macOS, Linux, BSD
Безопасность: - Поддержка большинства схем двухфакторной аутентификации «из коробки» - Реализация атаки «Перехват клиентского домена» (Client Domain Hooking) с диагностическим плагином - Сбор учетных данных пользователей с контекстом, основанным на параметрах URL - Плагин веб-панели для управления учетными данными и подмены сессий (бета-версия) - Не требуются шаблоны веб-сайтов — автоматическая обработка в большинстве случаев
Modlishka в действии против примера схемы 2FA (обход на основе SMS):
Последний исходный код: zip | tar
Используя go install:
go install github.com/drk1wi/Modlishka@latest
Ручная сборка:
git clone https://github.com/drk1wi/Modlishka.git
cd Modlishka
make
./dist/proxy -h
Usage of ./dist/proxy:
-cert string
base64 encoded TLS certificate
-certKey string
base64 encoded TLS certificate key
-certPool string
base64 encoded Certification Authority certificate
-config string
JSON configuration file. Convenient instead of using command line switches.
-controlCreds string
Username and password to protect the credentials page. user:pass format
-controlURL string
URL to view captured credentials and settings. (default "SayHello2Modlishka")
-credParams string
Credential regexp with matching groups. e.g.: base64(username_regex),base64(password_regex)
-debug
Print debug information
-disableSecurity
Disable proxy security features like anti-SSRF. Disable at your own risk.
-disableDynamicSubdomains
Translate URL domain names to be the proxy domain
-dynamicMode
Enable dynamic mode for 'Client Domain Hooking'
-forceHTTP
Strip all TLS from the traffic and proxy through HTTP only
-forceHTTPS
Strip all clear-text from the traffic and proxy through HTTPS only
-allowSecureCookies
Allow secure cookies to be set. Useful when using HTTPS and cookies have SameSite=None
-ignoreTranslateDomains string
Comma separated list of domains to never translate and proxy
-jsRules string
Comma separated list of URL patterns and JS base64 encoded payloads that will be injected
e.g.: target.tld:base64(alert(1))
-listeningAddress string
Listening address (default "127.0.0.1")
-listeningPortHTTP int
Listening port for HTTP requests (default 80)
-listeningPortHTTPS int
Listening port for HTTPS requests (default 443)
-log string
Local file to which fetched requests will be written (appended)
-pathHostRules string
Comma separated list of URL path patterns and target domains
e.g.: /path/:example.com,/path2:www.example.com
-plugins string
Comma separated list of enabled plugin names (default "all")
-postOnly
Log only HTTP POST requests
-proxyAddress string
Proxy that should be used (socks/https/http) e.g.: http://127.0.0.1:8080
-proxyDomain string
Proxy domain name that will be used e.g.: proxy.tld
-rules string
Comma separated list of string patterns and their replacements
e.g.: base64(old):base64(new),base64(older):base64(newer)
-staticLocations string
Comma separated list of FQDNs in location headers that should be preserved
-target string
Target domain name e.g.: target.tld
-targetRes string
Comma separated list of domains that were not translated automatically
e.g.: static.target.tld
-terminateTriggers string
Comma separated list of URLs from target's origin which will trigger session termination
-terminateUrl string
URL to which a client will be redirected after session termination
-trackingCookie string
Name of the HTTP cookie used to track the client (default "id")
-trackingParam string
Name of the HTTP parameter used to track the client (default "id")
Modlishka распространяется под этой лицензией.
Для коммерческих приложений, пожалуйста, свяжитесь с автором для согласования условий лицензирования.
Автор: Modlishka разработана и реализована Пиотром Дужинским (@drk1wi). Все права защищены.
Ознакомьтесь со списком участников, которые приняли участие в этом проекте.
Этот инструмент предназначен только для образовательных целей и может использоваться только в легитимных тестах на проникновение или исследованиях. Автор не несет никакой ответственности за какие-либо действия, предпринятые его пользователями.