Muraena - Bypass 2FA

glassmaster

Новорег
Регистрация
13.06.2020
Сообщения
6
Реакции
3
Баллы
3
В этом цикле публикаций мы поговорим о способе обхода двухфакторной аутентификации с помощью Muraena & Necrobrowser.

Всего я планирую три статьи:
  • Muraena – установка и настройка, DNS, SSL;
  • Necrobrowser – установка и настройка;
  • 2FA Bypass, Phishing Attack - практическое применение.


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

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

2.jpg

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

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

3 (1).png


  • 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

12.png

Код:
tar -C /usr/local/ -xvf go1.13.5.linux-amd64.tar.gz

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

Код:
export PATH=$PATH:/usr/local/go/bin
go version

123.png
Muraena компилируется из исходников, получаем их:
Код:
go get github.com/muraenateam/muraena
cd $GOPATH/src/github.com/muraenateam/muraena

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

Код:
make build

22.png

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

15.png

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

16.jpg

Код:
apt install certbot

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

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

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

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

1d.png

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

DNS Config

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

1f.png

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

12da.png

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

1fs.png

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

Код:
./muraena --config config/google.com.json

4f.png

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

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

g5.png

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