
Новый подход к Browser In The Browser (BITB) без использования iframe, позволяющий обходить традиционные framebusters, реализованные на страницах входа, таких как Microsoft, и использовать с Evilginx.
Новый подход к концепции Browser In The Browser (BITB) без использования iframe, позволяющий обходить традиционные framebusters, реализованные на страницах входа, таких как Microsoft.
Этот POC-код создан для использования нового BITB с Evilginx и фишлетом Microsoft Enterprise.

Прежде чем углубляться, рекомендую сначала ознакомиться с моим выступлением на BSides 2023, где я впервые представил эту концепцию вместе с важными деталями о том, как создать «идеальную» фишинговую атаку. ▶ Смотреть видео
Этот инструмент предназначен только для образовательных и исследовательских целей. Он демонстрирует метод Browser In The Browser (BITB) без использования iframe. Автор не несет ответственности за любое неправомерное использование. Используйте этот инструмент только законно и этично, в контролируемых средах для тестирования защиты кибербезопасности. Используя этот инструмент, вы соглашаетесь делать это ответственно и на свой страх и риск.
За последний год я экспериментировал с различными трюками, чтобы создать «идеальную» фишинговую атаку. Типичные «красные флаги», на которые людей учат обращать внимание, — это срочность, угрозы, авторитет, плохая грамматика и т.д. Следующее, что люди сейчас проверяют, — это ссылка/URL веб-сайта, с которым они взаимодействуют, и они становятся очень осознанными в тот момент, когда их просят ввести конфиденциальные учетные данные, такие как электронная почта и пароли.
Вот тут и вступает в игру Browser In The Browser (BITB). Первоначально представленный @mrd0x, BITB — это концепция создания видимости правдоподобного окна браузера, внутри которого злоумышленник контролирует содержимое (путем отображения вредоносного сайта внутри iframe). При этом поддельная адресная строка поддельного окна браузера установлена на легитимный сайт, который ожидает пользователь. В сочетании с таким инструментом, как Evilginx, это становится идеальным рецептом для правдоподобной фишинговой атаки.
Проблема в том, что за последние месяцы/годы крупные сайты, такие как Microsoft, внедрили различные маленькие трюки под названием «framebusters/framekillers», которые в основном пытаются сломать iframe, которые могут использоваться для отображения прокси-сайта, как в случае с Evilginx.
Короче говоря, Evilginx + BITB для таких сайтов, как Microsoft, больше не работает. По крайней мере, не с BITB, основанным на iframe.
Browser In The Browser (BITB) без каких-либо iframe! Вот так просто.
Это означает, что теперь мы можем использовать BITB с Evilginx на таких сайтах, как Microsoft.
Evilginx здесь — это лишь яркий пример, но та же концепция может быть использована и для других сценариев.
Framebusters нацелены именно на iframe, поэтому идея состоит в том, чтобы создать эффект BITB без использования iframe и без нарушения исходной структуры/содержимого прокси-страницы. Этого можно достичь путем внедрения скриптов и HTML рядом с исходным содержимым с помощью поиска и замены (также известной как substitutions), а затем полагаясь исключительно на трюки HTML/CSS/JS для создания визуального эффекта. Мы также используем дополнительный трюк под названием «Shadow DOM» в HTML, чтобы разместить содержимое целевой страницы (фон) таким образом, чтобы оно не мешало прокси-контенту, что позволяет нам гибко использовать любую целевую страницу с небольшими дополнительными JS-скриптами.
Создайте локальную Linux ВМ. (Я лично использую Ubuntu 22 на VMWare Player или Parallels Desktop)
Обновите и обновите системные пакеты:
sudo apt update && sudo apt upgrade -y
Создайте нового пользователя evilginx и добавьте его в группу sudo:
sudo su
adduser evilginx
usermod -aG sudo evilginx
Проверьте, что пользователь evilginx находится в группе sudo:
su - evilginx
sudo ls -la /root
Перейдите в домашнюю директорию пользователя:
cd /home/evilginx
(Вы также можете все делать как sudo пользователь, так как мы все запускаем локально)
Скачайте и соберите Evilginx: Официальная документация
Скопируйте файлы Evilginx в /home/evilginx
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
nano ~/.profile
ДОБАВЬТЕ: export PATH=$PATH:/usr/local/go/bin
source ~/.profile
Проверьте:
go version
Установите make:
sudo apt install make
Соберите Evilginx:
cd /home/evilginx/evilginx2
make
Создайте новую директорию для нашей сборки evilginx вместе с фишлетами и редиректорами:
mkdir /home/evilginx/evilginx
Скопируйте сборку, фишлеты и редиректоры:
cp /home/evilginx/evilginx2/build/evilginx /home/evilginx/evilginx/evilginx
cp -r /home/evilginx/evilginx2/redirectors /home/evilginx/evilginx/redirectors
cp -r /home/evilginx/evilginx2/phishlets /home/evilginx/evilginx/phishlets
Быстрое исправление брандмауэра Ubuntu (спасибо @kgretzky)
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx
В Ubuntu, если вы получаете ошибку Failed to start nameserver on: :53, попробуйте изменить этот файл
sudo nano /etc/systemd/resolved.conf
отредактируйте/добавьте DNSStubListener в no > DNSStubListener=no
затем
sudo systemctl restart systemd-resolved
Поскольку мы будем использовать Apache2 перед Evilginx, нам нужно заставить Evilginx слушать другой порт, отличный от 443.
nano ~/.evilginx/config.json
ИЗМЕНИТЕ https_port с 443 на 8443
Установите Apache2:
sudo apt install apache2 -y
Включите модули Apache2, которые будут использоваться: (Мы также отключаем модуль access_compat, так как он иногда вызывает проблемы)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod env
sudo a2enmod include
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod cache
sudo a2enmod substitute
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2dismod access_compat
Запустите и включите Apache:
sudo systemctl start apache2
sudo systemctl enable apache2
Проверьте, работает ли Apache и сетевое взаимодействие ВМ, перейдя по IP-адресу ВМ из браузера на хост-машине.
Установите git, если он еще не установлен:
sudo apt -y install git
Клонируйте этот репозиторий:
git clone https://github.com/waelmas/frameless-bitb
cd frameless-bitb
Создайте каталоги для страниц, которые мы будем обслуживать:
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary
Скопируйте каталоги для каждой страницы:
sudo cp -r ./pages/home/ /var/www/
sudo cp -r ./pages/primary/ /var/www/
sudo cp -r ./pages/secondary/ /var/www/
Опционально: Удалите страницу Apache по умолчанию (не используется):
sudo rm -r /var/www/html/
Скопируйте фишлет O365 в каталог phishlets:
sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml