View all services
Talk to QA Advisor
/Blog/Penetration Testing Tools: A Practical Guide for QA Teams
Compliance Testing8 min read

Penetration Testing Tools: A Practical Guide for QA Teams

The penetration testing tools that earn their place in a real engagement, matched to the five stages, with the misuses that make a test look complete when it is not.

Published September 16, 2026Last updated September 16, 2026
On this page

Most penetration testing tool lists are inventories. They name forty tools, describe each in a sentence, and leave you no better placed to run a test. This guide covers the ones that earn their place in a working engagement, what each is actually for, and where teams misuse them.

If you are still deciding whether you need a test at all, start with how penetration testing works. If you are budgeting for one, our penetration testing cost guide covers the ranges.

The short version
Four tools cover most ground: Nmap for enumeration, Burp Suite or ZAP for the web layer, sqlmap to confirm injection, Metasploit to prove exploitation. Burp Professional is $499 per user per year, ZAP is free and automates more easily. Tool count is a poor proxy for engagement quality: scanners cannot find broken access control or business logic abuse.

The five stages, and which tool belongs where

Tools only make sense against the stage they serve. A scanner used in the wrong phase produces noise that costs a tester hours.

StagePurposePrimary tools
ReconnaissanceMap what exists before touching itAmass, theHarvester, Spiderfoot
ScanningEnumerate hosts, ports, services, versionsNmap, Masscan
Web application testingIntercept, manipulate, replay trafficBurp Suite, ZAP
ExploitationProve a finding is realMetasploit, sqlmap
ReportingTurn findings into fixesDradis, Faraday

The stage most teams skip is the first. Reconnaissance decides scope, and a test scoped from an outdated asset list will thoroughly examine the wrong estate.

Reconnaissance: know the estate before you scan it

Reconnaissance answers one question: what is actually exposed? Not what the architecture diagram says, what DNS and certificate transparency logs say.

Amass performs subdomain enumeration by combining passive sources with active resolution. It is the tool that finds staging-api.example.com that nobody remembered leaving public.

theHarvester collects email addresses, subdomains and hostnames from public sources. Useful for establishing the social engineering surface without sending anything.

Spiderfoot automates OSINT collection across dozens of sources and correlates results. Heavier than the other two, and worth it on a large estate.

Everything in this stage is passive or near-passive. That matters legally: passive reconnaissance touches public records, active scanning touches the target. Know which one you are authorised to do before you run it.

Scanning: Nmap is still the answer

Nmap remains the standard for host discovery and service enumeration, and the reason is the Nmap Scripting Engine rather than the port scan itself.

bash
# Service and version detection with default scripts, timing tuned for a lab
nmap -sV -sC -T4 -oA scan-results 10.0.0.0/24

# Full TCP port range, which the default scan does NOT cover
nmap -p- -sV --open -oA full-tcp 10.0.0.5

# UDP, slow and usually skipped, which is exactly why services hide there
nmap -sU --top-ports 100 -oA udp-top100 10.0.0.5

The default Nmap scan covers the 1,000 most common TCP ports. That is the single most common cause of a missed finding: a service on port 8443 or 9200 that the default scan never looked at. Use -p- when the engagement window allows it.

Masscan exists for scale. It can sweep a large address range far faster than Nmap, at the cost of accuracy. The usual pattern is Masscan to find open ports across a wide range, then Nmap against just those ports for version detection.

Web application testing: Burp Suite and ZAP

Both are intercepting proxies. You route browser traffic through them, then inspect, modify and replay requests.

Burp Suite Professional versus ZAP
Burp Suite ProfessionalZAP
Cost$499 per user per yearFree, open source
LicenceCommercial, per seatApache 2.0
Active scannerIncludedIncluded
Manual explorationRepeater and Intruder, unthrottledManual request editor
CI automationEnterprise edition needed for full CIAutomation Framework, Docker scans, GitHub Actions
Extension ecosystemBApp StoreZAP Marketplace
Best used forManual exploration during an engagementAutomation you own and run continuously
Source: portswigger.net/burp/pro/pricing and zaproxy.org, both accessed September 2026

Burp Suite Professional costs $499 per user per year, per PortSwigger's published pricing. The Community edition is free but throttles Intruder and omits the active scanner, which is most of what you would pay for.

ZAP is free and open source, maintained under the Software Security Project. Its automation framework, Docker packaged scans and GitHub Actions integration make it the easier of the two to put into a pipeline.

The honest comparison: Burp is better for manual exploration, ZAP is better for automation you own. Most teams that can afford Burp use Burp for the engagement and ZAP in CI.

The mistake that wastes the licence

Teams buy Burp Professional, run the active scanner, and treat the output as the test. The scanner finds what scanners find: reflected XSS, missing headers, known-pattern injection. It does not find broken access control between two tenants, because it does not know your business rules.

Manual testing through Repeater and Intruder is what the licence is for. If your engagement is scanner output with a logo on it, you bought a vulnerability scan at penetration testing prices.

Exploitation: proving the finding is real

A finding nobody can reproduce gets deprioritised. Exploitation tools exist to turn "this looks vulnerable" into "here is the data I extracted".

Metasploit provides a framework of exploit modules, payloads and post-exploitation tooling. Its value in a professional engagement is less the exploits and more the consistency: a repeatable module, a documented payload, a session you can demonstrate.

sqlmap automates SQL injection detection and exploitation. It is aggressive by default and will happily dump a production database, so scope and rate-limit it deliberately.

bash
# Test a single parameter, no data extraction, low risk level
sqlmap -u "https://target/api/user?id=1" --level=2 --risk=1 --batch

# Enumerate databases only after the injection is confirmed
sqlmap -u "https://target/api/user?id=1" --dbs --batch

Use exploitation tools only within written authorisation. The technical capability and the legal permission are separate things, and only one of them is in the tool.

Kali Linux: a distribution, not a tool

Kali is a Debian-based distribution that ships the above pre-installed and configured. Its tool catalogue is organised by stage: reconnaissance, web scanning, exploitation, forensics.

Running Kali does not make an engagement a penetration test, any more than owning a compiler makes you a developer. It removes setup friction. That is genuinely valuable and it is the whole of the value.

🔬 From our work
Across our security engagements the findings that change a release decision are almost never the ones a scanner reports first. They are broken object-level authorisation and multi-tenant isolation gaps, found by a person who understood the business rules. We have not published a quantified breakdown of findings by category, so treat that as an observation from delivery rather than a measured statistic. We hold ISO 27001:2022 and CMMI Dev ML3, and run security testing for BFSI clients including HDFC Bank and Kotak Mahindra, where compliance scope dictates the methodology.

Where automation stops

Every tool above automates discovery. None of them automates judgement, and the findings that matter most in our experience are judgement findings:

  1. Broken object-level authorisation. User A retrieves user B's record by changing an id. A scanner cannot know that the record should not be visible.
  2. Business logic abuse. A discount applied twice, a refund exceeding the payment, a workflow step skipped. These are only visible to someone who understands the intended flow.
  3. Multi-tenant isolation failure. Tenant separation enforced at the application layer but not the database. Automated tools test one tenant at a time.
  4. Chained low-severity findings. Three informational issues that together produce account takeover. Scanners score findings individually.

This is the argument for manual testing, and it is also why tool-count is a poor proxy for engagement quality. A tester with Nmap, Burp and patience will out-find a pipeline running six scanners.

Common mistakes, and what they cost

These are the failures we see most often when reviewing someone else's engagement or tooling setup. Each one produces a test that looks complete and is not.

MistakeWhat happensFix
Default Nmap port rangeServices on 8443, 9200 or 5601 never scannedUse `-p-` when the window allows, or justify the range in the report
Scanner output treated as the testAccess control and logic flaws missed entirelyBudget manual hours explicitly, not as a residual
sqlmap run at default aggressionProduction data dumped, or the target taken downStart `--level=1 --risk=1`, raise deliberately
Proxy configured without CA trustHTTPS traffic invisible, tester assumes no trafficInstall the proxy CA in the browser or device profile first
Reconnaissance skippedTest scoped from a stale asset listRun Amass before agreeing scope, not after
No authenticated sessionEverything behind login untestedSupply credentials for every role, not just one
Automation run only pre-releaseFindings arrive after the build is frozenPut ZAP baseline scans in the pipeline

The second row is the expensive one. An engagement priced as a penetration test that delivers scanner output has cost the full price and returned a fraction of the value.

Getting a proxy to see mobile traffic

Mobile applications are where the CA trust mistake bites hardest. An app using certificate pinning will refuse the proxy certificate entirely, and the tester sees an empty traffic log rather than an error.

The options are to test a build with pinning disabled, use a patched build, or accept that the network layer is out of scope and say so in the report. What matters is that the limitation appears in the report rather than being quietly omitted.

Putting tools in the pipeline

Engagement tooling and continuous tooling are different jobs. An engagement is a human with Burp for two weeks. A pipeline is a scan that runs on every merge and fails loudly.

ZAP is the usual choice for the pipeline because it automates without a per-seat licence. A baseline scan against a staging deployment catches regressions in headers, cookie flags and obvious injection points, which is not everything but is the class of finding that should never reach production twice.

bash
# ZAP baseline scan, suitable for CI: passive only, fails on new findings
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://staging.example.com -r report.html

Keep expectations proportionate. A baseline scan is a regression guard. It is not a substitute for an engagement, and presenting it as one is how teams end up believing they are tested when they are monitored.

Choosing a starting set

For a team running its first internal assessment, four tools cover most of the ground: Nmap for enumeration, ZAP for the web layer, sqlmap for injection confirmation, and a notes tool you will actually use. Add Burp Professional when manual web testing becomes regular work rather than an occasional exercise.

Buy tools in the order your findings demand them, not in the order a listicle presents them.

If you would rather have this run by people who do it daily, our security testing services cover scoping, execution and retesting.

Frequently Asked Questions

What tools do penetration testers actually use?

Most engagements run on a small set: Nmap for host and service enumeration, Burp Suite or ZAP for the web layer, sqlmap to confirm injection findings, and Metasploit to prove exploitation. Reconnaissance tools like Amass come first, before any scanning. Tool count is a poor proxy for engagement quality.

Is Burp Suite or ZAP better?

They serve different jobs. Burp Suite Professional, at $499 per user per year, is better for manual exploration during an engagement because Repeater and Intruder are unthrottled. ZAP is free and automates more easily through its Automation Framework, Docker packaged scans and GitHub Actions. Teams that can afford both typically use Burp for engagements and ZAP in the pipeline.

Is Kali Linux a penetration testing tool?

No, it is a Debian-based distribution that ships penetration testing tools pre-installed and organised by stage. It removes setup friction, which is genuinely useful, but running Kali does not make an assessment a penetration test.

Can penetration testing be fully automated?

No. Automated tools find known patterns: missing headers, reflected XSS, injection points matching a signature. They cannot find broken object-level authorisation, business logic abuse, or multi-tenant isolation failures, because those require understanding what the application is supposed to allow.

Why does the default Nmap scan miss services?

Because it covers only the 1,000 most common TCP ports. Services on 8443, 9200 or 5601 are never looked at. Use `-p-` for the full TCP range when the engagement window allows, and state the scanned range in the report either way.

How do I stop sqlmap damaging a target?

Start at `--level=1 --risk=1` and raise deliberately. sqlmap is aggressive by default and will extract data or degrade availability if pointed at production without constraints. Confirm the injection first, then enumerate, and only within written authorisation.

Why is my proxy showing no HTTPS traffic?

The proxy CA certificate is almost certainly not trusted by the client. Install it in the browser or device profile before testing. On mobile, certificate pinning will refuse the proxy certificate regardless, so you need a build with pinning disabled or you must record the limitation in the report.

Should security scanning run in CI?

Yes, as a regression guard rather than a substitute for an engagement. A ZAP baseline scan against staging catches header, cookie and obvious injection regressions on every merge. It will not find the flaws that require judgement, so do not let its passing status stand in for a test.

Free Assessment

Get a free QA audit for your project

Identify quality gaps before they become production bugs.

Get Free Audit

Ship software with confidence

Talk to a QA advisor and find out how QAble can help your team build quality in at every stage.

No sales pitch
Technical walkthrough
No lock-in commitment

Talk to QA Advisor

Direct access to QAble's QA specialists.

Response within 24 hours