
evilginx3 + gophish

Объединение evilginx3 и GoPhish.
Это публичная, бесплатная версия репозитория, ЭТО НЕ ПОСЛЕДНЯЯ ВЕРСИЯ. Я намеренно держу эту публичную версию репозитория позади моей версии для людей, которые спонсируют меня через GitHub Sponsors. Это означает, что в этой версии могут отсутствовать исправления ошибок или функции, и не следует ожидать исправления ошибок, добавления функций или поддержки здесь. Станьте спонсором, чтобы получить доступ к последней версии.
Прежде чем начать, я хотел бы сказать, что я никоим образом не критикую Кубу Грецки и его работу. Я лично благодарю его за публичный выпуск evilginx3. Фактически, без его работы эта работа не существовала бы. Я также должен поблагодарить Джордана Райта за разработку/поддержку невероятного набора инструментов GoPhish. Форк GoPhish от Кубы также был использован как вдохновение для некоторых частей этого проекта после создания его собственной интеграции.
У вас должно быть фундаментальное понимание того, как использовать GoPhish и evilginx3.
Я не несу ответственности за любое неправомерное или незаконное использование этого программного обеспечения. Это программное обеспечение предназначено только для использования в авторизованных тестах на проникновение или в рамках red team-мероприятий, где оператор(ы) получил(и) явное письменное разрешение на проведение социальной инженерии.
Как специалист по тестированию на проникновение или red team, вы, возможно, слышали о evilginx3 как о прокси-фреймворке Man-in-the-Middle, способном обходить двухфакторную/многофакторную аутентификацию. Это заманчиво, по меньшей мере, но при попытке использовать его для социальной инженерии есть несколько болезненных моментов.
Отсутствие отслеживания — evilginx3 не предоставляет уникальную статистику отслеживания для каждой жертвы (например, открытое письмо, переход по ссылке и т.д.), что проблематично для клиентов, которые хотят/нуждаются/платят за такую статистику при подписании на социально-инженерное мероприятие.
Не полный набор инструментов для социальной инженерии — evilginx3 предоставляет только возможности прокси Man-in-the-Middle, он не предоставляет всю функциональность, необходимую для кампании социальной инженерии через email/SMS. Например, он не отправляет электронные письма целям и не предоставляет такой функциональности.
Отсутствие графического интерфейса — нужно ли это объяснять дальше? Мы все любим наши графические интерфейсы, и визуальное представление данных для кампании социальной инженерии бесценно. Операторы могут по-настоящему понять успешность своих кампаний социальной инженерии, имея возможность просматривать визуальное представление данных.
В этой настройке GoPhish используется для отправки писем и предоставления панели управления для статистики кампании evilginx3, но не используется для каких-либо страниц приземления. Ваши фишинговые ссылки, отправленные из GoPhish, будут указывать на путь приманки evilginx3, и evilginx3 будет использоваться для страниц приземления. Это обеспечивает возможность по-прежнему обходить 2FA/MFA с помощью evilginx3, не теряя при этом драгоценной статистики. Уведомления о событиях кампании в реальном времени предоставляются через локальный websocket/HTTP сервер, который я разработал, а полные используемые JSON строки, содержащие токены/cookie из evilginx3, отображаются непосредственно в GUI (и ленте) GoPhish:


evilginx3 будет слушать на внешне доступном адресе на порту 443 (или любом порту, который вы выберете в конфигурации evilginx3)GoPhish будет слушать локально на портах 8080 и 3333 (фишинговый сервер на порту 8080 не используется)Cloudflare Turnstile будет слушать локально на порту 80setup.sh предоставлен для автоматизации необходимых настроек. После запуска этого скрипта и ввода правильных значений вы должны быть готовы к началу работы. Ниже приведена справка по настройке:
Usage:
./setup <root domain> <subdomain(s)> <root domain bool> <feed bool> <rid replacement>
- root domain - the root domain to be used for the campaign
- subdomains - a space separated list of evilginx3 subdomains, can be one if only one
- root domain bool - true or false to proxy root domain to evilginx3
- feed bool - true or false if you plan to use the live feed
- rid replacement - replace the gophish default "rid" in phishing URLs with this value
Example:
./setup.sh example.com "accounts myaccount" false true user_id
Интеграция Cloudflare Turnstile заменила правила перенаправления и IP-чёрный список с Apache2. Подход на основе Apache2 полагался на предопределённый список правил перенаправления и IP-чёрный список. Мы можем пропустить определённые user-agent, хосты или IP-адреса, которые в итоге обнаружат нашу инфраструктуру. Обычно это делают боты и автоматизированные программы, сканирующие фишинговую инфраструктуру. Технология Cloudflare Turnstile является одной из лучших защит от ботов на момент написания и проверяет, что к вашему сайту обращается реальный пользователь.
Turnstile в панели управленияevilginx3/templates/forbidden.html и evilginx3/templates/turnstile.html в соответствии со своими изменениямиevilginx3 укажите публичный/приватный ключи с флагом turnstile, разделённые двоеточием :. Например:./evilginx3 -feed -g ../gophish/gophish.db -turnstile <PUBLIC_KEY>:<PRIVATE_KEY>
Запись в блоге здесь.
Если бы я включил статическую HTML-страницу для функциональности Cloudflare Turnstile, вся фишинговая инфраструктура имела бы одну и ту же страницу, что привело бы к обнаружению по статическому HTML-коду. Вот тут и появляются шаблоны Go HTML. Я включил начальный шаблон в evilginx3/templates/turnstile.html в качестве руководства. ВЫ ДОЛЖНЫ ИЗМЕНИТЬ ЭТО. Вот правила по настройке кода шаблона; невыполнение этих правил, скорее всего, приведёт к нарушению функциональности Cloudflare Turnstile:
{{.FormActionURL}}, {{.ErrorMessage}} и {{.TurnstilePublicKey}}Turnstile должен быть переменной шаблона {{.FormActionURL}}data-sitekey для класса div cf-turnstile должно быть переменной шаблона {{.TurnstilePublicKey}}evilginx3/templates/turnstile.htmlname, равный buttonЕсли вы уже один раз запустили setup.sh и заменили значение RId по умолчанию в проекте, был создан replace_rid.sh для повторной замены значения RId.
Usage:
./replace_rid <previous rid> <new rid>
- previous rid - the previous rid value that was replaced
- new rid - the new rid value to replace the previous
Example:
./replace_rid.sh user_id client_id
После запуска setup.sh следующие шаги:
GoPhish и настройте шаблон письма, профиль отправки писем и группыevilginx3 и настройте фишлет и приманку (обязательно укажите полный путь к базе данных sqlite3 GoPhish с флагом -g)GoPhish и сделайте целевой URL своим путём приманки для фишлета evilginx3Функция Генератор QR-кодов позволяет создавать QR-коды для проведения кампаний социальной инженерии с QR-кодами. Вот шаги по её использованию:
{{.QR}}:


Обратите внимание, что эта функция поддерживается только для email-кампаний и HTML-шаблонов писем на данный момент
Запись в блоге здесь.
Была выполнена полная переработка GoPhish для обеспечения поддержки SMS-кампаний с помощью Twilio. Ваша новая панель управления evilgophish будет выглядеть как ниже:

После запуска setup.sh следующие шаги:
SMS-сообщения. При создании шаблона SMS-сообщения используйте только Text и не включайте отслеживающую ссылку, так как она будет отображаться в SMS-сообщении. Оставьте поля Envelope Sender и Subject пустыми, как ниже:
SMS Sending Profile. Введите свой номер телефона от Twilio, Account SID и Auth Token:
CSV были сохранены для совместимости, поэтому сохраните имена столбцов CSV теми же и поместите номера телефонов целей в столбец Email. Обратите внимание, что Twilio принимает следующие форматы номеров телефонов, поэтому они должны быть в одном из этих трёх:
evilginx3 и настройте фишлет и приманку (обязательно укажите полный путь к базе данных sqlite3 GoPhish с флагом -g)GoPhish и сделайте целевой URL своим путём приманки для фишлета evilginx3Запись в блоге здесь.
Уведомления о событиях кампании в реальном времени обрабатываются локальным websocket/HTTP сервером и приложением ленты. Чтобы настроить:
Выберите true для feed bool при запуске setup.sh
Перейдите в каталог evilfeed и запустите приложение с помощью ./evilfeed
При запуске evilginx3 укажите флаг -feed, чтобы включить ленту. Например:
./evilginx3 -feed -g /opt/evilgophish/gophish/gophish.db
http://localhost:1337/. Панель ленты будет выглядеть как ниже:
ВАЖНЫЕ ЗАМЕЧАНИЯ
JavaScript, и вам НЕ НУЖНО обновлять страницу. Если вы обновите страницу, вы ПОТЕРЯЕТЕ все события, произошедшие до этого момента.Я буду добавлять фишлеты в этот репозиторий по своему усмотрению. Не следует ожидать, что я буду создавать фишлеты в рамках этого репозитория; вы должны создавать свои собственные. НЕ ОТКРЫВАЙТЕ ISSUES В ЭТОМ РЕПОЗИТОРИИ ПО ПОВОДУ ФИШЛЕТОВ
10 мая 2023 Куба Грецки обновил evilginx 2.4.0 до версии 3.0.0. Подробный пост в блоге об изменениях в инструменте можно найти здесь: evilginx3+mastery. Наиболее заметно, что изменения в формате файлов phishlet скорее всего сломают phishlet до версии 3.0.0, и их придётся переписывать. Хотя это может потребовать работы, новый формат файлов phishlet имеет дополнительные преимущества. Документацию по формату phishlet для версии 3.0.0 можно найти здесь: Формат Phishlet v3.0.0. Phishlet в старом формате по-прежнему будут храниться в этом репозитории в папке evilginx3/legacy_phishlets. , совместимые с версией , будут храниться в . Не все старые фишлеты ещё преобразованы в формат , я буду продолжать обновлять их по мере возможности!
Скрипт установки тестировался на Ubuntu Focal/Jammy и устанавливает последнюю версию Go из исходников. Бинарные файлы могут не собраться в зависимости от вашей среды Go и того, что у вас установлено, то есть если вы установили оригинальные версии, которые объединяет этот проект, а затем пытаетесь установить эту версию. Он также вносит изменения в DNS, чтобы evilginx3 мог его перехватить. Вы должны понимать последствия этого и проверить их. Рекомендуется использовать свежее окружение, другие операционные системы не тестировались.
Нередко тестируют отслеживание кампании до её запуска, и я призываю вас это делать, но я просто оставлю вас с предупреждением. evilginx3 создаст cookie и установит сессию для каждого нового браузера жертвы. Если вы продолжите тестировать несколько кампаний и несколько фишинговых ссылок в одном и том же браузере, вы запутаете процесс отслеживания, так как значение RId извлекается из запросов и устанавливается в начале новой сессии. Если вы делаете это, вы не моделируете жертву по-настоящему, так как жертва никогда не имела бы доступа к другой фишинговой ссылке, кроме своей собственной, и само собой разумеется, что этого никогда не произойдет во время реальной кампании. Это предупреждение, чтобы вы не открывали issue по этому поводу, так как вы используете инструмент не по назначению. Если вы хотите смоделировать новую жертву, вы можете протестировать процесс отслеживания, используя новый браузер/вкладку в режиме инкогнито.
GoPhish никогда не используется на ваших реальных фишинговых страницах, а заголовки писем были удалены, поэтому нет необходимости беспокоиться об IOCs внутри него.
rid по умолчанию в фишинговых URL-адресах выбирается оператором в setup.shSMS-кампанийCaptured Session для захваченных сессий/токенов evilginx3Смотрите файл CHANGELOG.md для изменений, внесённых с момента первого выпуска.
Не следует ожидать, что я буду отвечать на issues в этой публичной версии репозитория. Вы не спонсируете меня и не финансируете разработку проекта, поэтому не должно быть ожиданий поддержки. Спонсируйте меня для получения расширенной поддержки.
evilginx 3.x.xЯ хотел бы видеть, как этот проект улучшается и растёт со временем. Если у вас есть идеи по улучшению, новые правила перенаправления, новые IP-адреса/блоки для включения в чёрный список, фишлеты или предложения, пожалуйста, открывайте pull request.
Phishlet3.0.0evilginx3/phishlets3.x.x