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

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

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

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

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

Категории

Все категории
Loading categories
cuddlephish — Вооруженный Browser-in-the-Middle (BitM) для пентестеров | Kitploit
Инструменты/GitHubGitHub/fkasler/cuddlephish
Инструменты фишингаЭксплуатация веб-приложенийФишингТестирование на ПроникновениеСоциальная инженерияRed Teaming
GitHubfkasler/cuddlephish

cuddlephish

Вооруженный Browser-in-the-Middle (BitM) для пентестеров

Репозиторий
67380811 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

CuddlePhish

phishy

Вооружённый многопользовательский «браузер-в-середине» (BitM) для пентестеров. Эта атака может быть использована для обхода многофакторной аутентификации во многих критически важных веб-приложениях. Она работает даже для приложений, которые не используют сессионные токены и, следовательно, не могут быть атакованы традиционным перехватом токенов. Это инструмент социальной инженерии, который не использует каких-либо технических уязвимостей в целевом сервисе.

Быстрый старт

Этот инструмент представляет собой специализированный веб-сервер. Он предназначен для работы на сервере Debian 11 (Bullseye) и полагается на информацию о публичном IP-адресе для защиты административной функциональности. Не рассчитывайте на локальное тестирование без серьёзных усилий.

Предупреждение: Chromium не поддерживается на ARM. Хотя технически возможно заставить использовать ARM-бинарник Chromium, вы потеряете все дополнительные возможности/защиты puppeteer-extra.

Этот пример настройки использует Caddy для обработки TLS, SNI и добавления пары пользовательских заголовков, таких как 'X-Real-IP', к каждому запросу. Вам не обязательно использовать Caddy с Cuddlephish; такой же обратный прокси можно настроить с помощью Nginx, Apache и т.д. Мне просто нравится Caddy, потому что его легко установить с помощью Docker, и у него есть плагины для управления сертификатами Letsencrypt для большинства регистраторов доменов. Пример Caddyfile показывает, как настроить его для Gandi. Проверьте документацию для вашего регистратора.

Установите Docker, Node, XVFB и другие зависимости:

git clone https://github.com/fkasler/cuddlephish
cd cuddlephish
sudo bash install_deps.sh

Затем вы можете использовать Docker для сборки Caddy с плагином для подстановочного сертификата вашего регистратора. Пример для Gandi. Смотрите документацию здесь и список модулей DNS-провайдеров здесь. Вы можете изменить Dockerfile под своего регистратора перед сборкой:

sudo docker build -t caddy .

Теперь измените Caddyfile, заменив ваш домен и API-ключ Gandi (или другого регистратора), и запустите Caddy. Рекомендую запускать его в screen или tmux, чтобы вы могли запустить Node-сервер в другом окне через мгновение:

sudo docker run -p 80:80 -p 443:443 -p 2019:2019 -v $PWD/Caddyfile:/etc/caddy/Caddyfile --network=host caddy:latest

Теперь, когда Caddy принимает трафик на портах 80 и 443, мы наконец можем запустить инструмент!

Установите зависимости Node:

npm install

Несколько настроек конфигурации: КРИТИЧЕСКИЙ ШАГ: Обязательно измените пример config.json, добавив ваш одобренный публичный IP-адрес(а) для административного доступа. Этот белый список IP-адресов определяет доступ к веб-интерфейсу "/admin". Также измените ключ сокета по умолчанию на более безопасный.

Инструмент не настроен на целевые страницы входа по умолчанию, поэтому вам нужно добавить их. Есть скрипт 'add_target.js', чтобы сделать этот шаг простым. Просто запустите скрипт и вставьте URL портала входа, который вы хотите атаковать, когда будет запрошено:

node add_target.js

Это извлечёт имя сервиса, заголовок вкладки и значок для вас и добавит запись в 'targets.json'. Вы можете запустить этот скрипт несколько раз, и он добавит новые цели. Скрипт будет называть каждый сервис на основе домена, без верхнего уровня. Так, для 'https://www.example.com/login.php' сервис будет просто 'example' при указании вашей цели, когда вы...

Запускайте!

node index.js example

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

Если вы правильно настроили свои административные IP-адреса в config.json, вы сможете увидеть специальный веб-интерфейс '/admin' для отслеживания пользователей, просмотра логов клавиатуры, перехвата управления над вошедшими в систему экземплярами браузеров, кражи куки и удаления нежелательных экземпляров браузеров.

Примечание: Вы не увидите ничего на странице администрирования, пока у вас не появятся жертвы. Как только у вас появится жертва, её экземпляр браузера должен появиться в интерфейсе администратора.

Устранение неполадок («Я вижу только пустую страницу»)

Несколько человек уже создавали тикеты о «Белой пустой странице», что скорее симптом многих возможных проблем, а не сама проблема. Пожалуйста, не открывайте тикеты с неконкретными названиями симптомов. Вместо этого, если у вас пустая страница со стороны пользователя, сначала попробуйте следующее:

  • Убедитесь, что заголовок вкладки целевого сервиса не содержит специальных символов. Мы используем "--auto-select-desktop-capture-source", чтобы указать нашему автоматизированному браузеру, какую вкладку транслировать. Эта опция не работает с заголовками, содержащими специальные символы. Однако вам не нужно полное совпадение заголовка вкладки, достаточно подстроки для уникального совпадения.
  • В том же направлении: если ваш целевой сервис отправляет перенаправление 302 или подобное вашему автоматизированному браузеру, и заголовок вкладки меняется до того, как мы начнём вещание WebRTC жертве, тогда "--auto-select-desktop-capture-source" выйдет из строя. Вы можете посмотреть, как add_target.js получает эту информацию, и воспроизвести это в index.js вместе с console.log(), чтобы увидеть, изменился ли заголовок до согласования WebRTC.
  • Убедитесь, что cuddlephish HTML загружается и что нет очевидных ошибок JavaScript в консоли разработчика на фронтенде. Пример конфигурации Caddy имеет базовые блоки по строкам user agent, например curl. Как минимум, вы должны увидеть, что заголовок вкладки и значок подменяются.
  • Убедитесь, что вы можете взаимодействовать с примером STUN-сервера и портом (stun.l.google.com:19302) с вашего сервера.
  • Убедитесь, что сеть, в которой вы работаете, вообще поддерживает STUN. STUN работает только с «полным конусным NAT» (full-cone NAT), «NAT с ограничением адреса» (Address-restricted-cone NAT) и «NAT с ограничением порта» (Port-restricted cone NAT). Он НЕ работает с «симметричным NAT» (Symmetric NAT).
  • Убедитесь, что вы можете взаимодействовать с примером STUN-сервера и портом (stun.l.google.com:19302) из браузера тестовой жертвы. Попробуйте использовать https://icetest.info/.
  • Если ваша сеть не может достичь примера STUN-сервера, измените его на тот, к которому у вас есть доступ. Если ваша сеть не поддерживает STUN, то в страницах cuddlephish и broadcast HTML есть пример конфигурации для TURN-сервера. Вам придётся настроить или оплатить собственный TURN-сервер. ПРИМЕЧАНИЕ: TURN-сервер имеет наибольшие шансы связать жертв фишинга с вашими экземплярами браузеров.

На высоком уровне, если вы видите только пустую страницу на фронтенде, это означает, что произошёл какой-то сбой в цепочке передачи данных от «Запуск WebRTC» > «Выбор вкладки для трансляции» > «Согласование ICE с браузером жертвы» > «Потоковое видео». Приведённые выше шаги по устранению неполадок предназначены для того, чтобы помочь вам проследить данные через этот процесс. При правильной работе вы должны увидеть поток логов на сервере, похожий на следующий:

troubleshoot

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

Функции администратора

Скачать инструмент