Pentest Methodology & Recon · beginner · ~12 min

The phases of an engagement

**What you will learn** - Name and order the phases of a professional penetration test, from reconnaissance through remediation and retest, and describe what each phase *produces*. - Explain why the methodology is **iterative** (you loop back) and **evidence-driven** (every claim is backed by reproducible proof). - Tell recon apart from enumeration, and validation apart from scanning — and know why confusing them produces false findings. - Map each phase to the defensive side: which logs and alerts a blue team uses to *detect* that phase happening. - Keep every phase inside authorization and scope, and know the cleanup/reset steps a lab engagement requires. - Understand where post-exploitation stops: measuring impact, never causing destruction.

Overview

Security objective. This lesson protects the client's systems and data. The threat is an unauthorized attacker who works through the same stages a tester does — but without permission and without stopping to measure impact safely. As a learner you will build a repeatable mental map of those stages so you can (a) test a system you are authorized to test in a way that is thorough and defensible, and (b) recognise, from the defender's seat, which stage an attacker is in by the traces they leave.

A penetration test is not random poking. It moves through a fixed sequence of phases:

recon → enumeration → vulnerability discovery → exploitation →
privilege escalation → post-exploitation → evidence →
risk rating → reporting → remediation / retest

The process is iterative — new information sends you back to an earlier phase — and evidence-driven — nothing goes in the report without proof you can reproduce.

This builds directly on your prerequisite, Authorization, scope, and rules of engagement (ROE). Every phase below happens inside the scope, time window, and authorization that lesson defined. Recon respects the target list. Exploitation respects the "don't touch production data" clause. Reporting delivers on the agreed contract. Methodology without authorization is just an attack — the ROE is what makes this legal, ethical work. Where these phases feed forward, the next lesson, Passive vs active reconnaissance, zooms into the very first stage.

Why it matters

In real, authorized professional work, a clear methodology gives an engagement three qualities a client actually pays for:

  • Thorough — you cover the target systematically instead of guessing. Coverage becomes something you can show, not just claim.
  • Repeatable — another tester (or the same tester next quarter) can follow the same steps and get comparable results. This is what turns a retest into a fair comparison.
  • In scope — the work stays inside what the client authorized, because each phase has a defined boundary you check against the ROE before you act.

Each phase's output becomes the next phase's input and the evidence in the final report. That chain is why methodology matters: a finding you can't trace back through the phases is a finding you can't defend in a remediation meeting. Ad-hoc poking misses things and produces claims you can't stand behind. On the defensive side, the same phase map is a detection tool — a SOC analyst who knows the phases can look at scattered alerts and say "this looks like enumeration, expect discovery next," and respond before impact.

Core concepts

Each phase below gets a definition, a plain explanation, how it works, when it applies (and when it doesn't), and a common pitfall.

1. Reconnaissance

  • Definition. Gathering information about the target before interacting deeply with it.
  • Plain explanation. You learn what exists and how it's shaped — domains, IP ranges, technologies, people — before you touch anything hard.
  • How it works. Starts passive (public data, no packets to the target) then moves active (direct probes like pinging or a light port scan).
  • When / when not. Always first. Don't skip it because it feels slow — skipping recon is how testers stray out of scope.
  • Pitfall. Treating passive and active recon as the same thing. Passive leaves almost no trace on the target; active does. Confusing them can put you out of scope early.

2. Enumeration

  • Definition. Interrogating the specific services you discovered for detail.
  • Plain explanation. Recon told you a web server and an SMB share exist. Enumeration asks which software version, which usernames, which shares, which endpoints.
  • How it works. Query each live service directly: banner grabbing, listing shares, spidering an app, checking software versions.
  • When / when not. After recon, before you decide what to attack. Don't enumerate assets not on the target list.
  • Pitfall. Blurring recon and enumeration. Recon = what exists; enumeration = tell me everything about this one thing.

3. Vulnerability discovery

  • Definition. Identifying weaknesses in the enumerated services.
  • Plain explanation. You combine manual analysis with scanners, then validate every candidate by hand before believing it.
  • How it works. A scanner flags possible issues; you confirm each one manually to remove false positives.
  • When / when not. After you know versions and endpoints. Never report a raw scanner hit as a confirmed finding.
  • Pitfall. Trusting the scanner. Passing (or failing) an automated scan does NOT prove a system is secure or vulnerable — a scan is a lead, not a verdict.

4. Exploitation

  • Definition. Proving a vulnerability is real by using it to gain access — within scope.
  • Plain explanation. You demonstrate the weakness has real consequences, using the least disruptive method that proves the point.
  • How it works. A carefully chosen, in-scope action that turns a suspected flaw into confirmed access.
  • When / when not. Only against authorized targets, only when the ROE allows it. Some engagements forbid exploitation entirely (proof-of-concept only).
  • Pitfall. Going for maximum damage. The goal is proof, not a wrecked system.

5. Privilege escalation

  • Definition. Moving from limited access to higher-privileged access.
  • Plain explanation. A low-privilege foothold becomes admin/root, showing how far an attacker could really go.
  • How it works. Abuse a misconfiguration, weak permission, or local flaw to gain more rights on the same host.
  • When / when not. After a foothold, if scope permits. Don't escalate onto systems outside the target list.
  • Pitfall. Assuming a low-priv foothold is "low risk" and not testing escalation — you'd under-report the real impact.

6. Post-exploitation

  • Definition. Measuring the impact and reach of the access gained.
  • Plain explanation. With access, you assess what an attacker could now reach — which data, which internal systems — without destroying anything. (This is the answer the quiz is looking for.)
  • How it works. Careful, read-only-minded exploration to map reachable assets and demonstrate business impact.
  • When / when not. After access is gained. Never exfiltrate real customer data, deploy malware/ransomware, or install persistence.
  • Pitfall. Confusing post-exploitation with sabotage. It is impact assessment, not impact creation.

7. Evidence collection

  • Definition. Capturing reproducible proof for every finding, as you go.
  • Plain explanation. Screenshots, request/response pairs, commands, and timestamps that another person could follow.
  • How it works. Log each step during the work with the command, the time, and the result.
  • When / when not. Continuously, throughout every phase — not reconstructed afterward.
  • Pitfall. "I'll write it up later." A finding you can't reproduce isn't a finding.

8. Risk rating

  • Definition. Scoring each finding by likelihood × impact.
  • Plain explanation. Not everything is critical. Severity depends on exploitability, access required, and impact.
  • How it works. Often uses CVSS (Common Vulnerability Scoring System, an industry-standard severity scale) plus business context.
  • When / when not. After findings are confirmed. Don't rate before you've validated — you'd be scoring a guess.
  • Pitfall. Marking everything critical. That destroys trust and buries the findings that truly matter.

9. Reporting

  • Definition. Writing the results for the people who must act on them.
  • Plain explanation. Two audiences: an executive summary (business risk, priorities) and technical detail (reproduction, remediation).
  • How it works. Each finding: title, severity, affected component, preconditions, safe reproduction, evidence, impact, likelihood, remediation, retest.
  • When / when not. After rating. The report is the deliverable — the reason the client hired you.
  • Pitfall. Dumping raw tool output. Executives can't act on a Nmap log; engineers can't act on "you're insecure."

10. Remediation & retest

  • Definition. Advising on fixes, then verifying the fixes actually work.
  • Plain explanation. You recommend concrete remediation, the client applies it, and you retest to confirm the vulnerability is closed.
  • How it works. Re-run the exact reproduction from the report; the fix must now reject the bad input while normal use still works.
  • When / when not. After the report and after the client fixes things. A fix you haven't retested is an assumption.
  • Pitfall. Assuming a patch worked. Retest, or you're guessing.

Why it's iterative, not linear

The phases loop. A detail found during enumeration can send you back to recon. A new foothold can expose an internal network you then re-scan. Good testers loop back whenever they learn something new — the arrow diagram is a default path, not a cage.


Threat model of the engagement itself

         AUTHORIZED LAB — trust boundary = the signed ROE + scope list
  ┌───────────────────────────────────────────────────────────────┐
  │  ASSETS (what we protect / measure risk to):                   │
  │    - Target hosts on the scope list (lab VMs / containers)     │
  │    - Data those hosts hold (in a lab: synthetic data only)     │
  │    - The evidence you collect (may contain sensitive detail)   │
  │                                                                 │
  │  ENTRY POINTS (where phases interact with the target):         │
  │    recon/enum → network services (HTTP, SMB, SSH…)             │
  │    exploitation → a specific vulnerable endpoint               │
  │    privesc/post-ex → a foothold host                           │
  └───────────────────────────────────────────────────────────────┘
        ▲                                             │
        │ MUST stay inside scope (the trust boundary) │
        │                                             ▼
   TESTER (authorized)                    DEFENDER / logs & alerts
                                          detect each phase by its traces

  OUTSIDE the boundary (NEVER touch): third-party hosts, cloud
  provider infra, systems not on the scope list, real user data.

Knowledge check

  1. What asset is protected in this engagement, and what protects the tester's own evidence file from becoming a liability? (The client's systems and data; the evidence must be stored securely because it can contain sensitive detail.)
  2. Where is the trust boundary? (The signed ROE + the scope list — anything not on the list is out of bounds, even if reachable.)
  3. Which insecure assumption turns a clean test into an incident? (Assuming a host is "probably in scope" and probing it, or assuming a scanner result is a confirmed finding, or assuming a fix worked without retesting.)
  4. Which logs would let a defender notice the enumeration phase? (Service/access logs showing many varied requests from one source, IDS alerts on scanning patterns, auth logs with unusual lookups.)
  5. Why can exploitation and privesc only happen in an authorized lab? (Without written authorization the same actions are illegal; the lab — localhost/containers/deliberately-vulnerable VMs/CTF — is what makes them safe and lawful.)

Syntax notes

There is no programming syntax here — the "structure" of this lesson is the phase pipeline and the artifact each phase hands to the next. Read this as the shape you follow.

PHASE                 → ARTIFACT IT PRODUCES (input to next phase / report)
---------------------------------------------------------------------------
reconnaissance        → list of assets in scope (hosts, domains, services)
enumeration           → per-service detail (versions, users, endpoints)
vulnerability discovery → validated candidate weaknesses (not raw scan hits)
exploitation          → confirmed access (proof the flaw is real)
privilege escalation  → higher-privilege access (shows real reach)
post-exploitation     → impact map (what an attacker could reach)
evidence collection   → reproducible proof (screens, req/resp, timestamps)
risk rating           → severity per finding (likelihood × impact, CVSS)
reporting             → the deliverable (exec + technical)
remediation & retest  → verified fix (bad input now rejected)

A minimal, lab-safe engagement log line — the atomic unit of evidence you write during every phase — looks like this:

[2026-07-07T14:03:11Z] phase=enumeration host=10.0.0.5(lab) \
  action="http banner grab" result="Server: Apache/2.4.x" \
  scope=YES corr_id=ENG-42-0007

Every field earns its place: the timestamp and correlation id make it reproducible and traceable; scope=YES is your own guardrail; the action/result pair is the proof.

Lesson

A penetration test follows a repeatable workflow. Each phase feeds the next and produces evidence for the report.

The phases

  1. Reconnaissance — Gather information about the target. Start passively (no direct contact), then move to active probing.
  2. Enumeration — Interrogate the services you found for users, shares, software versions, and endpoints.
  3. Vulnerability discovery — Identify weaknesses using manual analysis plus scanners, and validate each finding by hand.
  4. Exploitation — Prove a vulnerability is real, staying within scope, to gain access.
  5. Privilege escalation — Move from limited access to higher-privileged access.
  6. Post-exploitation — Assess impact: what data and systems are now reachable? Cause no destruction.
  7. Evidence collection — Capture screenshots, request/response logs, and timestamps that are clean and reproducible.
  8. Risk rating — Score each finding by likelihood × impact, often using CVSS (a standard scoring system for vulnerabilities).
  9. Reporting — Write it up for two audiences: executives and engineers.
  10. Remediation & retest — Advise on fixes, then verify they actually worked.

It's iterative, not linear

The phases are not a one-way street.

  • A finding during enumeration can send you back to recon.
  • A new foothold can expose an internal network you then re-scan.

Good testers loop back whenever they learn something new.

Collect evidence as you go

Gather proof during testing, not after. Note every command, the time it ran, and its result.

The report is only as strong as the evidence behind it. A finding you can't reproduce isn't a finding.

Code examples

This is a concept lesson, so the "code" is a worked example of the methodology in motion on a local, authorized lab — plus the INSECURE → SECURE → VERIFY shape applied to one finding the phases would surface. Nothing here touches a real system.

WARNING: intentionally vulnerable — use only in a local, isolated, authorized lab. Do not deploy.

Suppose recon + enumeration on a lab VM (10.0.0.5, on your scope list) surface a small login endpoint. Discovery flags it, and manual validation confirms it builds SQL by string concatenation:

# INSECURE — lab target under test. Do NOT deploy.
# A login handler that concatenates user input into SQL.
def login(conn, username, password):
    q = "SELECT id FROM users WHERE name = '" + username + \
        "' AND pass = '" + password + "'"
    return conn.execute(q).fetchone()   # classic SQL injection

During exploitation you confirm the flaw with the least disruptive proof — a benign input like username = "' OR '1'='1' -- " returns a row it shouldn't. You capture that request/response as evidence, rate it, and report it. Then the SECURE fix the report recommends:

# SECURE — parameterized query; input can never change the SQL structure.
def login(conn, username, password):
    q = "SELECT id FROM users WHERE name = ? AND pass = ?"
    return conn.execute(q, (username, password)).fetchone()

And the VERIFY / retest step — the remediation phase in miniature — proving the fix rejects bad input and still accepts good input:

# RETEST — run after the fix. Rejects the attack, accepts the legit user.
def retest(conn):
    # bad input must NOT authenticate
    assert login(conn, "' OR '1'='1' -- ", "x") is None, "FAIL: injection still works"
    # good input must still work (seed a known lab user first)
    assert login(conn, "alice", "correct-horse") is not None, "FAIL: legit login broke"
    print("RETEST PASS: injection rejected, valid login accepted")

Expected result when run against the fixed code: the first assert holds (the injection string is now just a literal username that matches nobody), the second holds (Alice still logs in), and you see RETEST PASS: injection rejected, valid login accepted. Run it against the insecure version and the first assert fails — which is exactly the before/after evidence the report needs. This whole arc — discover → validate → exploit safely → evidence → report → fix → retest — is the methodology on a single finding.

Line by line

Walking the login example through the phases:

Step Phase What happens Why it matters
1 Recon → enumeration You learn a login endpoint exists on the in-scope lab host and note the app framework Establishes there's something to test, inside scope
2 Discovery A scanner hints at SQL injection A hint only — not yet a finding
3 Discovery (validate) You read/observe that input is concatenated into q Manual validation removes false positives
4 Exploitation "' OR '1'='1' -- " returns a row without valid creds Proves the flaw is real, with the least disruptive input
5 Evidence You save the request, the response, timestamp, corr_id The report stands on this proof
6 Risk rating Auth bypass on a login = high likelihood × high impact Justifies the severity honestly
7 Reporting Finding written with reproduction + the parameterized fix Engineers can act on it
8 Remediation Team switches to execute(q, (username, password)) Input is now data, never SQL structure
9 Retest retest() shows bad input rejected, good input accepted Confirms the fix — the loop closes

How the key value changes: in the insecure version, the string ' OR '1'='1' -- becomes part of the SQL command, so the WHERE clause is always true and a row comes back. In the secure version the exact same string is passed as a parameter — the database treats it purely as a value for name, looks for a user literally named ' OR '1'='1' -- , finds none, and returns None. Same input, completely different meaning: that difference is the fix, and the retest is what proves it.

Common mistakes

Wrong approach Why it's wrong Corrected approach How to recognise / prevent
Skipping recon and jumping to exploitation You attack blind, miss assets, and risk touching something out of scope Always recon first; build the asset list before probing If you can't name the host's role and why it's in scope, you skipped recon
Reporting a raw scanner hit as a confirmed finding Scanners produce false positives; "passing a scan" also doesn't prove security Validate every candidate by hand before it becomes a finding Ask: "Have I reproduced this myself?" If no, it's a lead, not a finding
Treating post-exploitation as a chance to cause damage Destroys client systems/data and breaks the ROE and the law Post-ex = measure reach and impact, read-only mindset, no persistence/exfiltration of real data If an action changes or removes data, stop — that's not impact assessment
Marking every finding "critical" Buries the real risks and destroys client trust Rate by likelihood × impact (e.g., CVSS + business context) If everything is critical, nothing is — spread reflects reality
"Decoding" a JWT and calling it "verified" Base64-decoding a token reveals its contents but proves nothing about its signature State clearly: decoding ≠ verifying; a valid signature check is a separate step If you didn't check the signature with the key, you haven't verified anything
Writing evidence up from memory afterward Details drift; findings become unreproducible Log command + time + result during the work A finding you can't reproduce isn't a finding
Assuming the fix worked, skipping retest The patch may be partial or wrong Re-run the exact reproduction: bad input rejected, good input accepted No retest = an assumption, not a closed finding
Probing a host because it was "probably in scope" Out-of-scope access is unauthorized, even in a friendly network Check the scope list before every new target If the host isn't on the list, it's out — no exceptions

Debugging tips

When an engagement stalls or a phase gives confusing results, debug the methodology, not just the tool:

  • "My scan found nothing." Confirm recon is right first: are you even pointed at an in-scope live host? Re-check the target list and that the service is actually up (enumeration before you blame discovery).
  • "The scanner says vulnerable but I can't reproduce it." Good — that's a false positive doing its job. Do not report it. Note the failed validation in your log so you don't re-chase it.
  • "My exploit input broke the app / no clean response." Back off to the least disruptive proof. If you can demonstrate the flaw with a benign payload, use that; heavy payloads muddy evidence and risk damage.
  • "The retest still fails after the fix." Ask: did they apply the fix to this code path? Did they patch every entry point, or just one? Re-run the exact original reproduction, not a new variant.
  • "I can't tell which phase I'm in." Ask what artifact you're producing right now: an asset list (recon), service detail (enumeration), a validated weakness (discovery), or an impact map (post-ex). The artifact names the phase.

Questions to ask when a phase fails: Is this target on the scope list? Have I reproduced this myself, or is it a tool's claim? What artifact should this phase hand to the next one — do I have it? Would my evidence let a stranger repeat this exactly? Am I about to change data (stop) or just observe (continue)?

Memory safety

Security & safety — detection, logging, and the defender's view. Every offensive phase leaves traces; the defensive skill is knowing what to log to catch it and what to never log.

What to log for each finding and action (the evidence trail):

  • Timestamp (UTC/ISO-8601) — when it happened.
  • Source — the tester's authorized IP/host (so blue team can distinguish the test from a real attacker).
  • Resource/target — which in-scope host and endpoint.
  • Action and result — what you did and what came back.
  • Security decision — allowed/denied, in-scope YES/NO.
  • Correlation id — ties related steps and the report finding together.

What defenders watch, phase by phase:

Phase Detectable trace Where it shows up
Active recon / enumeration Many varied requests, port sweeps, odd user-agents from one source IDS/IPS alerts, web/access logs, firewall logs
Vulnerability discovery Bursts of probing paths, error-triggering inputs App error logs, WAF logs
Exploitation Anomalous request that yields unexpected auth/data App logs, auth logs, sudden 200 on a protected path
Privilege escalation New admin/root session, unusual privilege change OS/audit logs, sudo logs
Post-exploitation Lateral connections, unusual internal access Network flow logs, EDR

NEVER log (in your evidence or the app): passwords, tokens, session cookies, private keys, full payment card numbers (PANs), or unneeded PII. If proof requires a sensitive value, redact/mask it in the report and store the raw evidence encrypted and access-controlled.

Which events signal abuse: a spike of distinct source IPs or usernames in access logs (the mechanic behind the related exercise, Count suspicious IPs), repeated auth failures then a sudden success, privilege changes outside a change window, access to resources a user never touches.

How false positives arise: legitimate scanners/health checks, a busy admin, or a load test can all look like recon or brute force. That's why detection pairs volume/pattern with context (known source? change window? expected behavior?) before anyone raises an incident — the same discipline as validating a scanner hit before calling it a finding.

Authorization & lab hygiene. Run every phase only on systems you own or are explicitly authorized to test: localhost, containers, deliberately-vulnerable VMs, or CTF ranges. Minimal authorization checklist before you start: (1) signed ROE covering these exact targets; (2) written scope list; (3) agreed time window; (4) emergency contact and stop conditions; (5) a place to store evidence securely. Cleanup / reset for a lab: revert VM snapshots or rebuild containers, remove any test accounts/files you created, close footholds, and securely delete or archive evidence per the ROE — leave the lab exactly as you found it.

Real-world uses

Concrete authorized use case. A company hires a firm for an internal network penetration test. The tester signs the ROE, gets the scope list, and works the phases: recon and enumeration map the in-scope subnet; discovery + manual validation confirm a handful of real issues; controlled exploitation and privilege escalation demonstrate reach on a lab-equivalent staging host; post-exploitation shows which sensitive shares an attacker could reach without touching real data; evidence is logged throughout; findings are CVSS-rated; the report goes to executives and engineers; and weeks later a retest verifies each fix actually closed the hole. The deliverable isn't "we got in" — it's a prioritized, verified path to a more secure network.

Professional best-practice habits (carry these into every phase):

  • Input validation: never trust tool output — validate findings by hand.
  • Least privilege: use the minimum access needed to prove a point; don't escalate beyond scope.
  • Secure defaults: default to read-only/observation in post-ex; default to "out of scope" for anything not on the list.
  • Logging: record command, time, result, correlation id as you go.
  • Error handling: if something behaves unexpectedly or you fear damage, stop and contact the client — that's the ROE working.
Level What the phases look like
Beginner Follow the pipeline in order on a deliberately-vulnerable lab (DVWA-style app, a CTF box). Focus on producing the right artifact at each phase and logging clean evidence.
Advanced Loop fluidly — chain a foothold into fresh recon of an internal segment, correlate findings across hosts, tailor severity to real business impact, and align reporting to frameworks/standards the client uses.

Practice tasks

All tasks are lab-only — localhost, containers, deliberately-vulnerable VMs, or CTF. Each ends defensively: remediate and verify.

Beginner 1 — Order the pipeline.

  • Objective: From memory, write the ten phases in order and, next to each, the one artifact it produces.
  • Requirements: recon → … → remediation/retest, with the correct artifact per phase.
  • Constraints: No tools; this is a recall/understanding task.
  • Hints: The artifact names the phase (asset list, service detail, validated weakness, impact map…).
  • Concepts: Phase pipeline, evidence chain.

Beginner 2 — Recon vs enumeration sort.

  • Objective: Given a list of 8 activities (e.g., "find the company's domains," "list SMB shares on one host," "grab a service banner," "identify IP ranges"), label each as recon or enumeration.
  • Requirements: Correct label + one sentence why for each.
  • Constraints: Concept exercise; no live targets.
  • Hints: Recon = what exists; enumeration = everything about this one thing.
  • Concepts: Recon vs enumeration distinction.

Intermediate 1 — Validate, don't trust.

  • Objective: On a deliberately-vulnerable lab app you're authorized to run locally, take one scanner-reported issue and manually confirm or refute it.
  • Requirements: An evidence log line (timestamp, host(lab), action, result, corr_id) and a one-line verdict: confirmed finding or false positive.
  • Input/Output: Input = one scanner hit; Output = evidence + verdict.
  • Constraints: Localhost/lab only; least-disruptive proof.
  • Hints: If you can't reproduce it yourself, it isn't a finding.
  • Concepts: Manual validation, evidence collection.
  • Defensive conclusion: If confirmed, write the remediation and note which log would have detected the probing.

Intermediate 2 — Detection mapping.

  • Objective: For four phases (active recon, exploitation, privilege escalation, post-exploitation), name a log source a defender would watch and the specific trace to look for.
  • Requirements: A 4-row table: phase | log source | trace.
  • Constraints: Defensive framing; no attack steps.
  • Hints: Reuse the detection table from the lesson, then add one trace of your own.
  • Concepts: Detection & logging, blue-team view.
  • Defensive conclusion: Add one line on how each could be a false positive (health check, load test, busy admin).

Challenge — Full mini-engagement on one finding, INSECURE → SECURE → VERIFY.

  • Objective: On an authorized local lab app, drive one vulnerability through the whole pipeline and close it.
  • Requirements: (1) recon/enum note placing it in scope; (2) discovery + manual validation; (3) least-disruptive exploitation proof with evidence; (4) honest likelihood × impact rating; (5) a mini report finding using the template (title, severity, affected component, preconditions, safe reproduction, evidence, impact, likelihood, remediation, retest); (6) apply the fix; (7) a retest proving bad input is rejected and good input still works.
  • Constraints: Lab only; signed-off authorization checklist done first; no real data; perform cleanup/reset (revert snapshot, remove test artifacts) at the end.
  • Hints: Model it on the login SQL-injection arc in this lesson; your retest should fail on the old code and pass on the fixed code.
  • Concepts: Whole methodology, remediation verification, reporting template.
  • Defensive conclusion: End by stating which log line would have detected your exploitation attempt and how the fix + a WAF/monitoring rule together reduce the risk.

Summary

  • The workflow: recon → enumeration → vulnerability discovery → exploitation → privilege escalation → post-exploitation → evidence → risk rating → reporting → remediation/retest. Each phase produces an artifact that becomes the next phase's input and the report's evidence.
  • It loops. New access can reopen earlier phases; the arrow diagram is a default path, not a straight line.
  • Key distinctions: recon (what exists) vs enumeration (detail on one thing); scanning (a lead) vs validating (a finding); post-exploitation (measure impact) vs damage (never).
  • Post-exploitation goal (and the quiz answer): assess the impact and reach of the access gained — without destruction.
  • Rate honestly by likelihood × impact (CVSS + business context); not everything is critical.
  • Common mistakes: skipping recon, trusting scanner output, thinking decoding a JWT is verifying it, believing a scan pass proves security, marking everything critical, and skipping the retest.
  • Defensive core: log timestamp/source/resource/result/decision/correlation-id; never log passwords, tokens, cookies, keys, full PANs, or needless PII; know which log detects each phase and that context separates real abuse from false positives.
  • Always: work only inside signed authorization and scope, in a lab (localhost/containers/vulnerable VMs/CTF), and reset the lab when done. Nothing is ever "completely secure" — you reduce and verify risk, you don't eliminate it.

Practice with these exercises