Комбайн для фишинга. Как Evilginx 2 используют для кражи аккаунтов

В этой статье мы изучим, как работает реверс-прокси Evilginx 2, и на примере Instagram посмотрим, как с его помощью уводят аккаунты в обход двухфакторной аутентификации. Поднимем боевой стенд, настроим все необходимые параметры и закинем удочку с наживкой посочнее. Уже клюет! Подсекай!
 

Подноготная обманных маневров

Для защиты аккаунтов крупные онлайн-сервисы используют двухфакторную аутентификацию (2FA). Обычно ее реализация сводится к тому, что помимо логина и пароля нужно ввести одноразовый код, присылаемый в SMS или push-уведомлении на номер мобильного, указанный при регистрации. До недавних пор 2FA считалась сравнительно надежной противоугонной системой, однако сейчас уже есть готовые инструменты, позволяющие легко преодолевать ее.

После выхода статьи о Modlishka наш почетный читатель и временами автор Bo0oM оставил комментарий: «Но есть же evilginx?». Это подтолкнуло меня к исследованию данного инструмента и написанию статьи.

Один из них — Evilginx 2, о котором мы и поговорим. Это обратный прокси-сервер и готовый фреймворк для выполнения MITM-атаки с целью обхода двухфакторной аутентификации. В нем автоматизировано все, что только можно. Как же он работает?

В общем случае для удачной атаки фишеру необходимо вклиниться между жертвой и запрашиваемым ей сайтом, перехватить учетные данные, а заодно распознать и сохранить cookies сессии. Сделать это при обычной авторизации по HTTP было сравнительно просто, но с переходом сайтов на HTTPS и 2FA потребовало концептуально других методов.

У Evilginx 2 есть суперспособность создавать подписанный сертификат для фейкового сайта при помощи клиента бесплатного и полностью автоматизированного удостоверяющего центра Let’s Encrypt. Это помогает атакующей стороне использовать HTTPS и украсить фишинговый сайт зеленым замочком в адресной строке. В итоге подделка получается визуально неотличимой от оригинала (по крайней мере, на первый взгляд). Плюс к этому Evilginx 2 самостоятельно определяет и перехватывает валидные «печеньки», а это — главная составляющая успешного взлома.

Дальше уже вопрос смекалки фишера. Например, получив доступ к одному аккаунту, ты создаешь от его имени группу или рассылку с просьбой проголосовать в каком-нибудь конкурсе. Друзья переходят по твоей ссылке, а ты собираешь учетки голосующих — и площадь атаки растет в геометрической прогрессии.

 

Как создавался злой прокси

Автор описываемого инструмента — польский этичный хакер Куба Грецки kgretzky. Первое упоминание об Evilginx (на тот момент еще первой версии) в его блоге датировано 6 апреля 2017 года.

Первоначально за основу он взял два модуля популярного веб-сервера Nginx: sub_filter и proxy_pass. В Evilginx первый модуль блокирует доступ жертвы к реальному ресурсу, а второй передает перехваченные запросы на требуемый сервер и обратно. Уже на тот момент программа представлялась как инструмент, который способен пробить защиту 2FA.

Разработчика пригласили для выступления на конференцию WarCon 2018, где его заметил Кевин Митник. Он написал про Evilginx, что послужило отличной рекламой. Evilginx начал быстро набирать популярность. К июню того же года было выпущено два релиза Evilginx — 1.0 и 1.1.

На все том же WarCon 2018 Куба Грецки познакомился с ведущим специалистом по информационной безопасности итальянской фирмы Zimperium — «белым хакером» Симоне Маргарителли, публикующим свои исследования под псевдонимом evilsocket. Маргарителли показал ему все прелести языка Go и вдохновил переписать Evilginx. Год спустя вышел полностью переработанный Evilginx 2. Проект эволюционировал от идеи MITM through Nginx до «Evilginx 2 w/o Nginx. Pure Go, and pure evil». Это был первый переломный момент.

Второй наступил, когда свет увидел опенсорсный проект Modlishka. На тот момент сложность использования Evilginx 2 заключалась в проксировании трафика. Необходимо было писать множество фильтров, которые динамически заменяли ссылки на фишинговые. Делалось это методом проб и ошибок, что сильно усложняло код.

Затем Куба Грецки увидел, как реализована подмена URL в Modlishka. Оказалось, что не обязательно писать тонны своих фильтров — достаточно один раз добавить домен сайта и прописать общие правила подмены трафика. Это было рождение компонентов phishlets — готовых скриптов для имитации структуры популярных сайтов. На данный момент мы можем воспользоваться Evilginx версии уже 2.3.1.

 

Evilginx 2 vs Modlishka

В моей предыдущей статье был разобран другой инструмент для обхода двухфакторной аутентификации — Modlishka. На тот момент в нем не было автоматизированного решения проблемы с HTTPS и сертификатом, так что закручивать эту гайку приходилось самому. Да и запустить на нем можно было лишь один фишинговый сайт, что снижает практический эффект атаки.

Evilginx 2 лишен этих недостатков. На таком «комбайне для фишинга» можно запустить перехват учетных данных с нескольких сервисов одновременно (подробнее об этом ниже). К тому же готовое решение с сертификатом сильно развязывает руки. На мой взгляд, Evilginx 2 опережает Modlishka на несколько шагов из-за грамотного подхода и максимального удобства использования.

На данный момент проект претерпел несколько релизов и продолжает развиваться. Например, в последних обновлениях были добавлены JS-инъекции. Они позволяют внедрять в трафик свои скрипты на JS, которые выполнятся на машине жертвы.

Я привык, что все хакерские утилиты пишут для Linux, однако Evilginx 2 доступен и в Windows, и в виде контейнера Docker. К моему удивлению, в «окнах» он работает ничуть не хуже, а его установка оказалась даже проще, чем на Linux. Просто скачиваем архив, распаковываем его в любой каталог и запускаем экзешник. Да, это портейбл-утилита, которую можно записать хоть на флешку и запускать в Windows, начиная с версии 7. Она не требует установки и не оставляет следов в реестре.

Evilginx 2 в Windows

Редактировать файл .yml можно из «Блокнота».

Вижу, как у тебя зачесались руки, давай перейдем от слов к делу. Только заниматься этим будем все же в Linux.

Источник: xakep.ru

Ответить

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