Обход двухфакторной аутентификации с помощью Muraena & Necrobrowser

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

Для начала, вспомним, как работает двухфакторная аутентификация:

Двухфакторная аутентификация считается «решением» для предотвращения фишинговых атак.

В действительности, только универсальный двухфакторный (U2F)* полезен после развертывания аппаратных ключей, в то время как остальные решения 2FA с треском проваливаются, включая SMS, Push, SoftwareAuthenticators, OTP и другие.

U2F (англ. Universal 2nd Factor) — открытый, бездрайверный протокол для двухфакторной аутентификации, основанный на вызов-ответной аутентификации, позволяющий интернет-пользователям использовать U2F устройство как второй фактор для аутентификации на большом количестве онлайн-сервисов.

Если нет проверки происхождения HTTP трафика и ключ 2FA отправляется через Интернет, фишинг может выполняться почти прозрачно посредством MiTM с использованием обратного прокси-сервера.

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

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

  • Создание учетной записи GitHub путем добавления ключа SSH
  • Поиск учетных данных по веб-почте OWA
  • Анализ ошибок в WordPress и автоматизации RCE.

Целью этой статьи будет автоматизация обхода 2FA с помощью Muraena и Necrobrowser.

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

Muraena

Muraena - это прозрачный обратный прокси-сервер, предназначенный для автоматизации фишинговой и постфишинговой деятельности.

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

Написанный на Go, Muraena не использует медленные регулярные выражения для выполнения магии подмены и встраивает сканер (Colly), который помогает заранее определить, какой ресурс следует проксировать.

Muraena делает минимум для поиска/замены источников в запросах/ответах.

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

В папке config есть несколько примеров шаблонов, для сложных ресурсов, таких как GSuite, Dropbox, GitHub и других.

Установка

Для начала необходимо, по традиции, установить Go, т.к. в Kali Linux он отсутствует:

wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
tar -C /usr/local/ -xvf go1.13.5.linux-amd64.tar.gz

Добавляем переменную окружения и проверяем версию Go:

export PATH=$PATH:/usr/local/go/bin go version

Muraena компилируется из исходников, получаем их:

go get github.com/muraenateam/muraena cd $GOPATH/src/github.com/muraenateam/muraena

И компилируем инструмент:

make build

В случае успешной компиляции, появляется скрипт запуска muraena, в директории конфиг вы сможете найти шаблоны ресурсов для фишинга:

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

Следующим шагом на пути к успеху, будет получение бесплатных SSL сертификатов от Let’s Encrypt и настройка DNS.

apt install certbot

Запрашиваем сертификат для своего домена и следуем дальнейшим инструкциям:

certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'maligncorp.com’

В процессе, будет необходимо прописать TXT запись в панели управления доменом, чтобы подтвердить, что вы им владеете:

Добавляем запись:

Если всё проделано правильно, то сертификат сохранится по указанному пути:

DNS Config

Ваш DNS должен быть настроен с CNAME и A записью, указывающей на местоположение вашего прокси-сервера Muraena. Для меня это выглядит так:

Вам нужно будет изменить конфигурационный файл для Muraena, редактируем его, как показано ниже. В этом примере мы будем использовать предварительно настроенный файл: config/google.com.json.

Так же, добавим в директиву SSL полные пути к файлам сертификата:

Пробуем запустить Muraena, используя в качестве аргумента наш модифицированный файл:

./muraena --config config/google.com.json

Как видим, инструмент успешно запустился, и даже начал проксировать какие-то пакеты.

Muraena - работает на 443 порту, как отдельный сетевой сервис.

В следующей статье, настройка и работа с Necrobrowser.


Источник: protey.net

Комментарии: