Что нового

Статья [0] Muraena - Bypass 2FA

Vander

Vander

Команда форума
10.11.2019
152
363
Приветствую уважаемых участников и гостей форума Protey!​

В этом цикле публикаций мы поговорим о способе обхода двухфакторной аутентификации с помощью Muraena & Necrobrowser.

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

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

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

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

3.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
В случае успешной компиляции, появляется скрипт запуска muraena, в директории конфиг вы сможете найти шаблоны ресурсов для фишинга:

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

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

16.jpg
Код:
apt install certbot
q1.png
Запрашиваем сертификат для своего домена и следуем дальнейшим инструкциям:

Код:
certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'maligncorp.com’
w1.png
В процессе, будет необходимо прописать TXT запись в панели управления доменом, чтобы подтвердить, что вы им владеете:

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

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

12d.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.

Спасибо за внимание, материал подготовлен специально для форума protey.net
 
D

deleet

Newbie
03.12.2019
6
4
А в чем отличие от Evilginx?
 
Vander

Vander

Команда форума
10.11.2019
152
363
А в чем отличие от Evilginx?
Из тех отличий, что сразу бросаются в глаза:
  • На Go реализован, нет возможности конфигурировать сам reverse proxy сервер.
  • Все упирается в файлы настроек шаблонов json.
Сейчас немного застрял с сертификатами, есть ошибки по сравнению с другими инструментами, тот же evilginx, как разберусь, допишу следующую статью.
 
Верх