"Kali in your browser" can mean three completely different things, and the difference decides whether you get real vulnerability data or a demo. Some products run a Linux userland compiled to WebAssembly inside the tab. Some spin up a virtual machine per session and give you a terminal into it. Others keep the tools on a server and stream the results into a browser console. Only the last two execute at full speed; only the third gives you a working session with no boot time. Here is how each behaves and how to tell which one you are using.
The three architectures
1. WebAssembly in the tab
A handful of tools have been compiled to run client-side: hash crackers, wordlist generators, some parsers. They are genuinely useful and completely offline. But a browser sandbox has no raw sockets, so anything that needs a SYN scan, a packet capture or a privileged bind simply cannot work. When a site claims "full Kali in the browser" and runs only in-page JavaScript, the network tooling is either proxied through their server anyway or not real.
2. A virtual machine per session
Full fidelity, real root, real kernel. The costs are boot time (tens of seconds), a private IP per session, and needing something like VNC or a web terminal to drive it. This is the right answer for training labs and CTFs where you want a disposable desktop. It is a poor answer for a test window measured in minutes, because you spend a slice of every session waiting for an operating system.
3. Hosted execution, browser as terminal
The tool runs as a normal process on a server. The browser sends the parameters, receives a live stream of stdout/stderr, and can pause or stop the process. Nothing is emulated, so flags, version strings, timing and error messages all match what you would get on your own machine. The trade-offs are network latency relative to the target, and the fact that anything requiring local hardware is out of reach.
What genuinely works server-side
- Nmap. TCP connect scans (
-sT) work unprivileged; SYN scans need root, which a hosted platform may or may not grant. Service/version detection (-sV), script scanning (-sC) and timing templates behave exactly as they do locally. - Nuclei, Nikto, JoomScan. Pure HTTP; no privilege needed. Results stream line by line, which makes them ideal for a browser console.
- Gobuster, ffuf, wfuzz, dirb. Content and DNS brute forcing. The only real constraint is wordlist size and the platform's rate limits.
- SQLMap, commix, jSQL. HTTP request/response work; a hosted run is indistinguishable from a local one apart from latency.
- DNSRecon, Sublist3r, Amass, DNSEnum, theHarvester. Passive and active DNS plus OSINT. Note that some public sources rate-limit datacentre IPs, so a hosted run can find fewer subdomains than a residential connection — a real limitation, not a bug.
- John, Hashcat-class cracking, crunch. CPU-bound; hosted runs mean you are not melting your own laptop, but you are also sharing a box unless the plan is dedicated.
- The Sleuth Kit / Autopsy-class forensics. Disk image work is I/O-bound and fine server-side, provided the platform enforces a write-blocker policy on raw devices.
What still needs a local machine
- Monitor mode and packet injection. Wi-Fi attacks require a radio attached to the machine doing the attack. No server can borrow your adapter.
- Layer-2 attacks. ARP spoofing, VLAN hopping and switch attacks need to be on the same broadcast domain.
- Physical and USB work. Anything involving plugging into a device.
- Source-IP-sensitive tests. If a target allowlists a specific network, your scan has to originate there.
- Out-of-band callbacks. Blind SSRF, XXE and some injection classes need a listener the target can reach. Hosted platforms can offer one, but ask whether the callback host is public before designing a test around it.
Round-trip time from the scanning host changes what you conclude about a target. A service that answers in 400 ms from a nearby VM may look dead from a datacentre on another continent. Record where the scan ran; it belongs in the report.
How to verify a platform is really executing
These checks are cheap, and a platform that fails any of them is generating text rather than running tools.
-
Ask for a version. Every wrapped tool has a
--versionor--help. A real platform shows the actual installed version, which will differ from the one on your laptop. A wrapper tends to return a rounded marketing number. - Print the built command. Change one flag and watch it appear in the command preview. If the preview never changes, the flags are decorative.
- Break it deliberately. Use two mutually exclusive flags. The real tool exits with a usage error; an imitator happily reports findings.
- Target something that does not exist. A real engine gives you a socket or resolver error within seconds.
- Stop it mid-run. If the process dies and stays dead, execution is real. If the "scan" keeps producing output after you stop it, it was never running.
- Compare a known target. Run the same scan against a host you control locally and on the platform. Ports, banners and timings should agree.
Practical notes on flags
Hosted execution does not change tool semantics, so the usual rules still apply — and most of them are about avoiding false negatives rather than saving time:
nmap -sV -T4 --openis a reasonable first pass; dropping-T4to-T2is sometimes the only way to get a response from a rate-limited appliance.- Gobuster will abort if the server returns the same status for every path. Check the wildcard behaviour before assuming a scan found nothing.
- Wordlist choice dominates results. A directory scan with a generic list misses
application-specific paths; a DNS scan with an alphabetised directory list looks broken
because
wwwsits near the end. - Nuclei's template categories live under paths like
http/cves, notcves. If a preset returns nothing on a vulnerable box, check the resolved template paths before blaming the target.
The legal line
Running scans from someone else's server does not change who is responsible for them. You need written authorisation and a defined scope, and you need to keep the timestamps that prove the test stayed inside it. A hosted platform makes that easier — every run is logged — but the authorisation is still yours to hold.
Want to try the real thing?
The free sandbox runs a genuine DNS reconnaissance scan on our servers and streams the records back — no account, no install. Signing up unlocks the full Kali Armory and the autonomous agent.