Pen Testing Recon Methodology
Pen Testing

Pen Testing Recon Methodology

Jul 5, 2026  ·  10 min read  ·  by Alli Operations

New pen testers want to skip to the exploit. I get it — popping a shell is the fun part, the part that looks like the movies. But in a real engagement, exploitation is maybe ten percent of the work. The other ninety percent is reconnaissance, and if you do recon well, the exploit tends to fall out of it almost for free. Do it badly, and you'll spend three days brute-forcing something that a single DNS query would have handed you.

Here's the recon workflow I actually run, roughly in the order I run it. It maps to the early phases of PTES (the Penetration Testing Execution Standard) and the reconnaissance tactics in MITRE ATT&CK.

Passive first. Always.

Passive reconnaissance means gathering information without sending a single packet to the target's infrastructure. Nothing to detect, nothing to log, nothing that tips your hand. You'd be amazed how much of an engagement can be completed before you touch anything the client controls.

Subdomain enumeration

The attack surface is almost never the main website. It's the staging server, the forgotten marketing microsite, the admin panel on a subdomain nobody remembered to decommission. Amass is my workhorse here because it combines passive sources with active resolution.

$ amass enum -passive -d target.com -o subs.txt
$ dnsx -l subs.txt -resp-only          # resolve live hosts
$ httpx -l subs.txt -title -tech-detect # what's alive + running

That three-command chain turns a domain name into a live inventory of hosts, their titles, and the technologies they run. From here the interesting targets basically announce themselves: the one running an outdated CMS, the dev instance with debug mode on, the login page with no rate limiting.

Active scanning, carefully

Now I start touching things — with authorization in hand. Nmap for the port and service landscape, then targeted scanning with Nuclei to check live hosts against a huge library of known-vulnerability templates.

$ nmap -sV -sC -p- --min-rate 1000 target.com
$ nuclei -l live_hosts.txt -severity critical,high

The -sC flag runs Nmap's default scripts, which quietly do a surprising amount of enumeration for you. Nuclei's value is coverage — it checks thousands of known issues in the time it would take me to manually check ten.

The web layer

For web apps, Burp Suite becomes the center of gravity. I proxy all traffic through it, map the application, and start looking at how it handles input, authentication, and access control. This is where automated tools stop earning their keep and manual testing takes over — business-logic flaws don't show up in a scanner.

Scanners find what's known. You get paid to find what isn't.

Documentation as you go

The mistake that separates amateurs from professionals isn't tooling — it's notes. Every host, every version number, every interesting response goes into a running log with timestamps. When it's time to write the report, half of it is already done. When the client asks "how did you find this," you have the exact command and output.

Why recon wins engagements

The best exploit is the one you didn't have to invent. Most successful compromises in real engagements come from something mundane that recon surfaced: default credentials, an exposed .git directory, an unpatched service on a forgotten host. If you find that in the recon phase, you're not writing an exploit — you're just walking in. That's what thorough reconnaissance buys you: fewer heroics, more results.

If you want a recon-led assessment of your own attack surface, that's exactly how I start every pen test.

The forgotten-asset problem

Here's a pattern I hit on almost every engagement: the vulnerability isn't in the flagship product the client is proud of and has hardened. It's in the thing they forgot they owned. A staging environment stood up for a demo two years ago and never torn down. A subdomain pointing at a marketing tool that was cancelled but never removed — now vulnerable to subdomain takeover. An S3 bucket from an old campaign, still public. Recon exists to find these ghosts, because attackers absolutely will.

This is why passive certificate-transparency mining is so valuable. Every time anyone issued a TLS certificate for any hostname on the domain — including internal tools somebody quickly HTTPS-enabled and forgot — it's permanently logged in public CT logs. I've found admin panels, VPN gateways, and internal dashboards this way that no amount of guessing would have surfaced. The organization didn't know those hosts were discoverable. They always are.

Scope discipline is part of recon

One thing that separates professional reconnaissance from reckless poking: you constantly cross-check what you find against the agreed scope. Recon surfaces assets, but not every asset you discover is yours to touch. A subdomain might belong to a third-party SaaS provider, not the client. Testing it would be attacking someone who never authorized you. So part of the recon workflow is classification — which of these assets are in scope, which are out, and which need explicit clarification before I go near them. Good recon expands what you can see and sharpens what you're allowed to test. Both matter.

// recon_led_testing

Recon-led pen testing.

Every engagement I run starts with the workflow above. Working PoC per finding, CVSS-scored report, from $497.

See Pen Testing →

// related_intel

Keep reading.