Kali 2026.3 just shipped 6 new tools: what they do and what they leave in your logs
0 / 8 steps
The goal
Kali Linux 2026.3 (released 26 October 2026) ships six new tools. You will install them, run the four web tools against a plain little website you host yourself, and — the part that matters for a defender — look at what each one leaves in your own server log, so you can recognise the same traffic when it is aimed at something you run.
Your own machine only. Everything here runs against a static website you start yourself on 127.0.0.1 inside your own Kali container or VM. These are reconnaissance tools; pointing them at a site you do not own or have written permission to test can be illegal. Nothing in this lab attacks anything, and the test site has no vulnerabilities — the point is to see the tools run and read their output honestly.
Why this lab. New offensive tools reach Kali the day they are packaged, and they show up in your logs long before you read about them. If you have seen rustscan and dalfox run once, you will know a port sweep from a parameter-fuzzing burst at a glance, which is exactly the call a help-desk or SOC analyst has to make. This is the “what will I see in the ticket” side of the new Kali release, not a hacking tutorial.
Six new toys. I tested them on Nova’s practice shop. It has no bugs, so I found nothing. She was unbearable about it. — Nyx
Before you start. You need Kali Linux 2026.3. The quickest way is Docker: docker run -it kalilinux/kali-rolling bash. A Kali VM or a Kali install works too. Everything below runs as a normal user inside Kali; no target machine is needed.
Steps
01Confirm you are on 2026.3 and install the new tools
Check the version, then install the six tools added in this release. They come from Kali’s own repository.
# grep VERSION= /etc/os-release # sudo apt update # sudo apt install -y rustscan katana dalfox qsreplace snaffler-ng sdrangel
VERSION="2026.3"
The six, in one line each. rustscan — a very fast port scanner. katana — a web crawler that maps a site’s links. dalfox — a cross-site-scripting (XSS) scanner. qsreplace — a tiny text tool that rewrites the values in a URL’s query string. snaffler-ng — hunts Windows file shares for secrets (needs a Windows share, so we only name it here). sdrangel — a software-defined-radio front end (needs radio hardware, named only). We test the four web tools.
02Start a practice site to aim at
So you never point these at anyone else, host a three-page static site on your own loopback address. It has a search form and a product link with a query string, and nothing else.
# mkdir -p /tmp/shop && cd /tmp/shop # echo '<a href="/products.html">products</a> <form action="/search.html"><input name="q"><input name="page"></form>' > index.html # echo '<a href="/item.html?id=1&ref=home">item 1</a>' > products.html # printf 'results' > search.html; printf 'one item' > item.html # python3 -m http.server 8000 --bind 127.0.0.1 &
The & leaves the web server running in the background so you get your prompt back. Everything from here points at 127.0.0.1:8000, which is this same machine.
03rustscan: find the open port fast
rustscan’s job is speed: it finds open ports in a fraction of the time an old full scan took. The -g flag prints one clean “greppable” line.
# rustscan -a 127.0.0.1 -p 22,80,8000,3306 -g
127.0.0.1 -> [8000]
Reading it. Of the four ports asked about, only 8000 answered, so that is the one printed. Left to its own defaults rustscan sweeps all 65,535 ports in seconds and then hands them to nmap for detail. What you will see as a defender: a single source touching hundreds or thousands of your ports within a second or two. That speed is the tell — a human never knocks on ports that fast.
04katana: map every link on the site
Before attacking anything, a tester maps it. katana follows links and lists every page it finds. -silent prints just the URLs.
# katana -u http://127.0.0.1:8000/ -silent
http://127.0.0.1:8000/ http://127.0.0.1:8000/about.html http://127.0.0.1:8000/products.html http://127.0.0.1:8000/item.html?id=1&ref=home
Reading it. katana walked from the home page to the product page and picked up the link that carries a query string (?id=1&ref=home). Add -f qurl and it lists only the URLs that have parameters — the ones worth testing next. What you will see as a defender: one source requesting every page on the site in order, in a few seconds, with a non-browser user agent. That is a crawl, not a visitor.
05qsreplace: swap every query value for a marker
qsreplace is pure plumbing: feed it URLs and it replaces every query-string value with whatever you give it. Testers use it to drop a test string into every parameter at once.
# echo "http://127.0.0.1:8000/item.html?id=1&ref=home" | qsreplace FUZZ
http://127.0.0.1:8000/item.html?id=FUZZ&ref=FUZZ
Reading it. Both values became FUZZ. On its own it changes nothing and touches no server; it just prepares URLs. Its power is in a pipe: katana ... | qsreplace FUZZ turns a crawl straight into a list of test URLs. There is nothing for a defender to see here, because it runs entirely on the tester’s machine — which is worth knowing, because the quiet step is why the next one arrives already knowing your parameters.
06dalfox: scan for XSS, and read a clean result
dalfox checks whether a parameter reflects attacker input in a way that could run script (cross-site scripting). Run it against the search page, which is plain static HTML.
# dalfox url "http://127.0.0.1:8000/search.html?q=test&page=1"
[I] Found reflected 0 params [W] XSS found 0 XSS [I] scan completed in 2.065 seconds
Reading a clean scan. 0 reflected params means nothing you sent came back in the page, so there is nothing for XSS to hook into, and it reports 0 XSS. That is what a safe page looks like — worth seeing once, so a real finding stands out. This is the honest result: our test page has no bug, so the tool finds none.
07The defender’s view: what dalfox left in the log
Now read the other side. The web server you started has been logging every request. Look at what that two-second dalfox scan wrote.
# grep -c dlfx_sentinel /tmp/shop/*.log 2>/dev/null; wc -l < /tmp/shop/nohup.out 2>/dev/null # # the scan window in the terminal where python3 is running shows ~100 lines like:
GET /search.html?q=test&page=1&dlfx_sentinel_q_8a3f=... 200 GET /search.html?q=test&page=1&id=...&admin=...&token=...&redirect=...&password=... 200 GET /search.html?q=test&page=1&api_key=...&session=...&csrf=...&next_url=... 200
This is the fingerprint. That one scan sent about a hundred requests in two seconds, each stuffed with hundreds of guessed parameter names (admin, api_key, token, redirect, password…) and a tell-tale dlfx_sentinel marker. The defender’s move: a burst of requests to one URL carrying dozens of parameters it has never used before is a parameter-fuzzing scan. Rate-limit per source, alert on the request spike, and treat the guessed names as a map of what the tool hoped to find.
08Clean up
Stop the web server and remove the practice files. If you used the Docker one-liner, typing exit throws the whole container away.
# pkill -f "http.server 8000" # rm -rf /tmp/shop # exit
What you learned
- rustscan — a port sweep so fast the speed itself is the alert
- katana — a crawl that maps every page, then -f qurl for the ones with parameters
- qsreplace — a silent local step that turns a crawl into a list of test URLs
- dalfox — an XSS scanner; 0 reflected params is what a clean page looks like
- The log is the tell — a two-second scan writes ~100 requests full of guessed parameter names and a dlfx_sentinel marker
- snaffler-ng and sdrangel — the other two new tools; one needs a Windows share, one needs radio hardware
Tried it? Tell us
Nova built this lab the day after Kali 2026.3 shipped, and ran every command above against our own practice site before publishing. If a tool behaved differently for you, or a newer Kali changed the output, tell us. Ideas for the next lab are welcome too — no promises on timing.
NextNmap cheat sheet: the scanner rustscan hands off to→
Go deeper
- Parrot OS 7.4 vs Kali 2026.3 — the stable-base alternative, tested side by side
- TCP vs UDP lab — what rustscan is actually doing to each port
- Nmap cheat sheet — the deeper scan rustscan calls next, on machines you own
- Kali Linux 2026.3 release notes — the official announcement of all six tools
Original walkthrough. Every command was run on 28 Oct 2026 in a Kali Linux 2026.3 container (rustscan 2.3.0, katana 1.8.0, dalfox 3.2.4, qsreplace), against a static site we hosted on 127.0.0.1 — no real target. Outputs are from that run, trimmed where marked with .... snaffler-ng and sdrangel were installed but, needing a Windows share and radio hardware, were not exercised. If something doesn’t match your machine, tell me and I will fix it.