Отказ от ответственности!
Отказ от ответственности
Сайт не несёт ответственности за содержание материалов. Все материалы сайта найдены в сети интернет. Если вы являетесь правообладателям и хотите убрать свой материал с нашего сайта, то напишите администрации. Напомним, что ваша собственность находилась в публичном доступе и только поэтому была опубликована на нашем сайте. Сайт некоммерческий, и мы не можем проверить все публикации пользователей. Используете материалы сайта на свой страх и риск, администрация за возможные последствия ответственности не несет.
Сайт не распространяет никаких программных продуктов, а содержит только ссылки на ПО, доступное в сети интернет.
Последние сообщения с форума
Джокер2 - Безумие на двоих (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Сб 14:32 | kishnin81 | |
Дэдпул и Росомаха (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Вт 15:59 | kishnin81 | |
Бесплатные VPS/VPDS Автор темы: kishnin81, Раздел: Прочие статьи | 7 Ответов Пн 10:11 | safonovs3f | |
Как узнать имя пользователя на удаленном компьютере Автор темы: kishnin81, Раздел: Прочие статьи | 1 Ответов Пн 10:10 | safonovs3f | |
ВТБ халявные акции за обучение Автор темы: kishnin81, Раздел: Прочие статьи | 3 Ответов Пн 10:10 | safonovs3f |
Внимание! Если Вы видите рекламму на нашем ресурсе, установите для вашего браузера расширение Adblock Plus | AdBlocker Ultimate | Блокировщик рекламы |
Мы ВКонтакте
Главная страница сайта
- Загрузка... News Portal
- Загрузка... Soft Portal
- ⬦ Бесплатно прочее полезно
- ⬦ Комп для чайника
- ⬦ Халява
- Новости сайта
- Программы для ПК
- Программирование
- Статьи, заработок, Wi-Fi, прочее
- Игры для ПК, android, прочее
- Флэш игры, программы, прочее
- Книги java, txt, fb2, аудио, другое
- Всё для Photoshop и After Effects
- Веб мастеру
- Продвижение ВКонтакте
- Продвижение в других соц.сетях
- Различный софт
- F.A.Q / ЧАВО?
Статистика
Комментарии
Поиск по сайту
Поиск по тегам
Как Evilginx 2 используют для кражи аккаунтов
..all ingenious is simple.
Подноготная обманных маневров
Для защиты аккаунтов крупные онлайн-сервисы используют двухфакторную аутентификацию (2FA). Обычно ее реализация сводится к тому, что помимо логина и пароля нужно ввести одноразовый код, присылаемый в SMS или push-уведомлении на номер мобильного, указанный при регистрации. До недавних пор 2FA считалась сравнительно надежной противоугонной системой, однако сейчас уже есть готовые инструменты, позволяющие легко преодолевать ее.
Один из них — 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. Она не требует установки и не оставляет следов в реестре.
Редактировать файл .yml можно из «Блокнота».
Вижу, как у тебя зачесались руки, давай перейдем от слов к делу. Только заниматься этим будем все же в Linux.
Готовим боевой стенд
Задача следующая: поднять в интернете сервер с Evilginx 2 и перехватить несколько экземпляров учетных данных от популярной социальной сети.
Начнем с того, что нам нужна VDS с минимальными системными требованиями. У меня были одно ядро с гигабайтом оперативной памяти и 30 Гб жесткого диска плюс белый IP-адрес. На борту — Ubuntu 16.04. Конечно же, нужно зарегать домен, привязанный к этому IP. Вот только сделать это бесплатно в излюбленном месте халявщиков — freedom — не получится. Необходимо иметь не одно доменное имя, а доменную зону, которую тебе делегируют. Ее можно купить у провайдера, например REG.RU. При покупке домена в комплекте идет управление DNS, где ты и можешь записью DNS А прикрепить доменное имя к IP-адресу или наделать поддоменов, которые могут пригодиться для развития атаки.
Идем на новоиспеченный сервер и первым делом ставим среду разработки для языка Go, так как второй Evilginx написан на нем.
sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
Проверяем, все ли взлетело:
go env
Должен быть явно указан путь GOPATH
.
Теперь ставим сам Evilginx 2
apt-get install git make go get -u github.com/kgretzky/evilginx2 cd $GOPATH/src/github.com/kgretzky/evilginx2 make make install
Перед запуском надо проверить, не заняты ли у нас порты 80 и 443. Они нужны для проксирования трафика. Я подумал, что в чистой ОС они должны быть свободны, и ошибся. 80 порт занял предустановленный Apache, из-за чего не смог автоматом сгенерироваться сертификат.
netstat –antp
После того, как необходимые порты освобождены, можно запустить сам сервер, просто написав его имя в консоли
— evilginx
.
Если после запуска сразу перейти на фишинговый сайт по его доменному имени, то программа просто перенаправит посетителя на видеохостинг Youtube. Это действие задано по умолчанию, а нужное тебе ты можешь выставить в настройках. Чтобы увидеть настройки, набираем config
.
В конфиге поле domain
должно соответствовать нашему фишинговому домену, IP
— его IP-адресу. Параметр redirect_url
— это домен, на который будет переброшена жертва, которая перейдет по чистой ссылке. Задать настройки можно следующими командами:
config domain yourDomain.com config ip yourIP
Теперь немного об устройстве всей этой станции. Опираться придется на две сущности.
Phishlets — это конфигурационные файлы, задающие правила основной работы Evilginx. В них указывается, по каким параметрам определять авторизацию, как выглядят cookie-сессии и все остальные данные для удачного фишинга. Находятся они в одноименном каталоге рядом с программой и имеют расширение .yaml
. Всего их уже написано 13 штук для разных популярных сайтов, а скоро наверняка появятся еще. Главное, что можно написать свои. Есть две версии формата написания: для релиза 2.2.0 и для версии 2.3.0, принимаются пока обе. Они слегка отличаются синтаксисом и возможностями. Для каждой из них имеется очень подробное описание.
Помимо фишлетов, в Evilginx есть набор ловушек (lures). Это программные функции, которые генерируют ссылки, разруливая подмену трафика и его движение внутри самой хост-машины в зависимости от того, куда мы хотим направить жертву.
Перед тем как перейти к работе, стоит уточнить еще один момент: в домашнем каталоге должна появиться скрытая директория с названием инструмента. В ней находится основной конфиг (параметры, которые мы указывали), база данных (там будут пойманные креды и сессии) плюс сертификат с ключом. Если залезть в потроха сертификата, то станет видно, что он корневой, выдан сроком на 10 лет и подписан как Evilginx Super-Evil Root CA
. Чтобы вывести информацию о нем, необходимо воспользоваться командой
openssl x509 -in ca.crt -text
Cовет: если ты будешь использовать VDS и захочешь после отключения от SSH-сессии вернуться к запущенному Evilginx, используй оконный менеджер с поддержкой терминальных сеансов Screen.
Переходим к основной работе. Первым делом нам необходимо настроить фишлеты. Я буду использовать фишлет для Instagram. Чтобы увидеть все конфиги, просто вводим команду phishlets
. Пока они пустые. Добавляем наш домен к выбранному конфигу:
phishlets hostname instagram yourDomain
Теперь создаем ловушку для пользователей «Инсты»:
lures create instagram
В итоге все должно выглядеть как на скриншоте ниже.
Запускаем один или несколько фишлетов:
phishlets enable Instagram
Что происходит?
Во-первых, генерируется сертификат (это как раз тот момент, когда все может рассыпаться как карточный дом, если будут заняты 80 или 443 порты). Генерируется он при помощи встроенной программы Let's Encrypt, так что получается, что на фишинговый домен тебе выдан валидный (спаси нас всех великий Админ) сертификат! Это решает проблему с HTTPS-соединением и правдоподобностью всего происходящего.
Во-вторых, происходит запуск самого прокси-сервера, изначально построенного на популярном веб-сервере Nginx. Сейчас он переписан на Go, однако символическое название осталось. Начинается прослушка трафика и фильтрация содержимого по заданным конфигурациям фишлетов.
Чтобы увидеть все ловушки, надо набрать: lures
. Обрати внимание на таблицу и столбец id. Для получения готовой фишинговой ссылки вводим lures get-url id
, где id
— это цифра из таблицы.
Тестируем сервер
Перед тем как заманивать жертву по ссылке, надо протестировать наш сервер и уточнить некоторые детали. Заходим сами по фишинговой ссылке и видим перед собой страницу с предложением авторизоваться в Instagram. Все выглядит убедительно. Вводим логин, пароль и код из SMS. Отлично, роль жертвы исполнена!
В это же время на сервере происходит вот что: в терминале будет хорошо видно, что кто-то посещал твою страницу. При перехвате аутентификационных данных они сразу отобразятся. Как только креды перехвачены, они записываются в базу данных. Увидеть их можно, введя команду sessions
.
Но как же быть с 2FA? В тот момент, когда жертва вводит пароль из SMS-сообщения, Evilginx 2 перехватывает еще и сессию авторизации, или cookie. Если в терминале Evilginx появилась строка: «all authorization tokens intercepted!», это как раз говорит об успешном захвате сессии. Увидеть статус перехвата можно, набрав команду session id
.
Чтобы импортировать сессию в браузер, можно воспользоваться плагином EditThisCookie. Все, теперь мы авторизованы в Instagram от имени жертвы, а логин и пароль нам вообще не нужны!
Первые жертвы
Остается последний этап — проверка боем. Я разослал двадцати знакомым из своего списка контактов сообщение с фишинговой ссылкой и фразой «Прикольно придумали!».
Эти люди меня знали, а большинство автоматически доверяют знакомым. К тому же есть элемент интриги. Интересно же узнать, что там такого придумано? Тем более в WhatsApp автоматически добавилось превью веб-страницы с логотипом Instagram.
Эти два аспекта я брал как опорные точки атаки. В итоге из 20 человек 16 перешли по ссылке и трое решились ввести логин и пароль. Скорее всего, остальные поленились их вспомнить, так как пользуются «Инстаграмом» через приложение и не авторизуются в нем каждый раз. Никаких вопросов мне не задавали и сомнений в безопасности процедуры не выражали.
Когда три человека слили свои креды и ничего необычного по ссылке не обнаружили, они спросили: «Что же там такого?». Я просто ответил: «Уже ничего. Наверное, это была тестовая штуковина». На этом все сомнения развеялись. Во все три аккаунта я мог войти без пароля, используя сессии. Так что 2FA больше не защищала их.
Важный момент: поскольку большинство пользователей смотрят Instagram через приложение, после фишинговой атаки у меня остается длительный доступ. Сессия авторизации живет до того момента, пока пользователь заново не зайдет по фишинговой ссылке или не выйдет из аккаунта. Обе ситуации маловероятны. Учитывая эти практические аспекты, держать виртуальную свечку у жертвы над головой можно очень и очень долго.
Защита
У меня был тестовый стенд, поднятый с целью демонстрации возможностей Evilginx 2. Поэтому я не стал заморачиваться с обфускацией атаки и накладывать дополнительные слои для запутывания — все было поднято на раз и на голом скелете. Как показала практика, даже в таком виде атака успешно работает.
Какие-либо технические меры для защиты от подобных атак придумать сложно. Тем более что авторизация через соцсети может быть встроена на любой сайт. Поэтому главным «антивирусом» будет обычный принцип разумного сомнения. Если ты переходишь по присланной ссылке, а в итоге открывается приглашение ввести данные своей учетки в Instagram (или другом сервисе), в голове должен раздаваться тревожный звонок.
Информация: Посетители, находящиеся в группе Гости, не могут скачивать файлы с данного сайта. |
Пароль к архивам: ComInet