Table of Contents
- PART ONE — Module Introduction
-
PART TWO — Topic 9.1: Comparing and Contrasting Important Components of Written Reports
- 9.1.1 Overview
- What Is a Penetration Testing Report, Really?
- The Report as Evidence of Professional Rigor
- Why "Comparing and Contrasting" Report Components Matters
- 9.1.2 Report Contents
- 1. Cover Page / Title Page
- 2. Document Control / Revision History
- 3. Executive Summary
- 4. Scope and Methodology
- 5. Risk Rating / Severity Methodology
- 6. Detailed Findings (the Technical Core)
- 7. Attack Narrative / Chain-of-Compromise Summary
- 8. Conclusion / Summary of Recommendations
- 9. Appendices
- Optional / Situational Components
- 9.1.3 Practice – Penetration Reporting
- Worked Example
- Key Practice Takeaways
- 9.1.4 Storage Time for Report and Secure Distribution
- Retention: How Long Should a Report Be Kept?
- Secure Storage While the Report Exists
- Secure Distribution
- Secure Destruction
- 9.1.5 Practice – Control and Distribution of Reports
- Scenario-Based Practice Reasoning
- 9.1.6 Note Taking
- Why Note-Taking Discipline Is Non-Negotiable
- What Should Be Captured
- Common Note-Taking Tools and Approaches
- Organizational Structure for Notes
- Note-Taking and Confidentiality
- 9.1.7 Common Themes/Root Causes
- Beyond a Flat List of Findings
- Why Root-Cause Grouping Matters
- Common Root-Cause Categories
- How Root-Cause Analysis Is Performed in Practice
- 9.1.8 Practice – Common Themes/Root Causes
- Worked Practice Example
- Key Practice Takeaways
- 9.1.9 Lab – Explore PenTest Reports
- Lab Objectives
- Suggested Approach for This Lab
- Reflection Questions to Answer During the Lab
-
PART THREE — Topic 9.2: Analyzing the Findings and Recommending the Appropriate Remediation Within a Report
- 9.2.1 Overview
- From Finding to Fix: The Analytical Bridge
- The Four Control Categories
- Choosing the Right Category — and Layering Controls (Defense in Depth)
- 9.2.2 Technical Controls
- What Technical Controls Are
- Common Technical Control Recommendations by Finding Type
- Writing Technical Control Recommendations Well
- 9.2.3 Administrative Controls
- What Administrative Controls Are
- Common Administrative Control Recommendations
- Why Administrative Controls Are Often the Highest-Leverage Recommendation
- 9.2.4 Operational Controls
- What Operational Controls Are
- Common Operational Control Recommendations
- 9.2.5 Physical Controls
- What Physical Controls Are
- Common Physical Control Recommendations
- Why Physical Controls Still Matter in a Cloud-First World
- 9.2.6 Practice – Recommended Controls
- Worked Practice Scenarios
- 9.2.7 Lab – Recommend Remediation Based on Findings
- Lab Objectives
- Suggested Lab Procedure
-
PART FOUR — Topic 9.3: Explaining the Importance of Communication During the Penetration Testing Process
- 9.3.1 Overview
- Communication as an Engineering Control, Not Just Courtesy
- 9.3.2 Communication Triggers
- Critical/Emergency Triggers
- Scope and Process Triggers
- Routine/Status Triggers
- 9.3.3 Practice – Communication Triggers
- Worked Scenarios
- 9.3.4 Reasons for Communication
- Legal and Contractual Protection
- Maintaining Trust and Professional Relationship
- Enabling Real-Time Risk Management
- Preserving Engagement Quality and Scope Integrity
- 9.3.5 Goal Reprioritization and Presentation of Findings
- Goal Reprioritization
- Presentation of Findings
-
PART FIVE — Topic 9.4: Explaining Post-Report Delivery Activities
- 9.4.1 Overview
- The Engagement Isn't Over When the Report Is Sent
- 9.4.2 Post-Engagement Cleanup
- What Must Be Cleaned Up
- How Cleanup Is Tracked and Verified
- 9.4.3 Additional Post-Report Delivery Activities
- Client Debrief / Report Walkthrough
- Retesting / Validation of Fixes
- Attestation Letters
- Secure Data Destruction
- Lessons Learned / Internal Retrospective
- Archival of Final Deliverables Per Contract
- 9.4.4 Practice – Post Report Delivery
- Worked Scenarios
- PART SIX — 9.5 Summary
PART ONE — MODULE INTRODUCTION
9.0.1 Why This Module Matters
Every technical phase of a penetration test — reconnaissance, scanning, exploitation, privilege escalation, lateral movement, post-exploitation — exists for one ultimate purpose: to produce a report the client can act on. No matter how skilled a tester is at popping shells or chaining exploits, if the results of that work are not captured, organized, and communicated clearly, the engagement has failed to deliver its actual business value. Clients are not paying for exploitation as entertainment; they are paying for actionable risk intelligence. The report is the physical embodiment of that intelligence, and it is the only part of the engagement that most stakeholders — executives, auditors, compliance officers, and often even the technical teams who will do the remediation — will ever actually read in detail.
This is why professional penetration testers treat reporting not as an afterthought tacked onto the end of a project, but as a discipline that begins on day one of the engagement, the moment scoping starts, and continues all the way through delivery, remediation validation, and secure destruction of engagement data. A tester who waits until the last day to start "writing the report" is already behind, because by then critical context — the exact command that triggered a vulnerability, the precise timestamp of a finding, the subtle nuance of why a particular misconfiguration is dangerous in this specific environment — has already begun to fade from memory.
The Core Problem: Memory Is Not a Documentation Strategy
It is extremely common, even among experienced testers, to become so immersed in the technical flow of an assessment — chasing a privilege escalation path, pivoting through a network, or trying "just one more" exploitation technique — that note-taking is neglected. The tester tells themselves they will remember the details and write everything up later. In practice, this rarely works. A single engagement can involve dozens of hosts, hundreds of scan results, multiple exploitation chains, and countless small technical decisions. By the time the testing window closes, the sheer volume of activity makes accurate reconstruction from memory alone nearly impossible. The result is reports that are vague, that omit reproduction steps, that misstate technical details, or that simply take far longer to produce than they should — eating into profitability and delaying the client's ability to remediate.
This is precisely why the discipline of continuous, structured note-taking (covered in depth later in this module) is treated as a core professional competency, on par with technical exploitation skill itself. A tester who cannot document what they did has not, in any meaningful professional sense, "done" a penetration test — they have merely performed an unrepeatable, unverifiable private exercise.
The Shift Toward Integrated, Project-Managed Pentesting
The industry has evolved significantly in how it approaches this problem. Historically, testers relied on a patchwork of personal notes, scattered screenshots, spreadsheets, and word processor documents, manually assembled into a final report at the end of an engagement. Increasingly, organizations are adopting cloud-based, project-management-oriented pentest platforms (commercial examples in this space include tools such as PlexTrac, Dradis, and Pentest-Tools' reporting modules, among others) that treat a penetration test as a structured project rather than a loose set of technical activities. These platforms typically provide:
- A collaborative workspace where multiple testers on the same engagement can log findings in real time, avoiding duplication and ensuring nothing is lost when work is divided across team members.
- Dashboarding that gives project leads and clients visibility into progress, testing coverage, and emerging risk themes even before the final report is delivered.
- Daily or continuous vulnerability tracking, so that findings are captured at the moment of discovery rather than reconstructed afterward.
- A single integrated repository for testing logs, evidence (screenshots, command output, packet captures), and narrative notes, eliminating the fragmentation that plagues ad hoc documentation approaches.
- Automated or semi-automated report generation that pulls structured finding data directly into a client-ready deliverable, dramatically reducing the manual formatting burden on testers and improving consistency across reports.
Even where such tooling is used, the underlying professional discipline does not change: the quality of the output is still entirely dependent on the quality and completeness of what testers input during the engagement. Tools accelerate and structure the reporting process; they do not replace the tester's judgment, diligence, or writing skill.
The Report as the Deliverable — and as the Business Driver
It is worth internalizing a point that is easy to underestimate early in a security career: the report is the product. In a services business, the client is not purchasing "a penetration test" as an abstract activity — they are purchasing a document (and the underlying data behind it) that they can hand to auditors, present to a board, feed into a risk register, or use as the justification for a remediation budget. Everything upstream of the report — the exploitation, the enumeration, the privilege escalation — is effectively raw material. The report is where that raw material gets refined into something the business can actually use.
This has direct commercial consequences. A firm's reputation, its ability to win repeat business, and its ability to generate referrals are disproportionately tied to the quality of its reports, not merely the technical sophistication of its testers. A brilliant technical assessment paired with a sloppy, generic, or confusing report will often be remembered by the client as "a disappointing engagement." Conversely, a solid technical assessment paired with an exceptionally clear, well-organized, and genuinely useful report will often be remembered as excellent — because the report is the artifact the client actually interacts with, revisits, and shares internally. Professional testers therefore take real pride in report craftsmanship: precise language, clean structure, accurate risk ratings, and remediation guidance that is genuinely actionable rather than boilerplate.
What Comes After Testing: The Real "Final Phase"
Many newcomers to the field mentally treat the last exploitation activity as "the end" of the test. Professionally, this is inaccurate. Once the active testing phases are complete, testers still face what is arguably the most consequential phase of the entire engagement:
- Post-engagement cleanup — removing any tools, shells, backdoors, scheduled tasks, created accounts, or other artifacts left on client systems during testing, so that the environment is returned to a clean, non-compromised state and so that no residual access could be discovered and abused by a genuine attacker later.
- Report writing — synthesizing everything discovered into a structured, professional written deliverable.
- Report handling and secure communication — ensuring that the sensitive contents of the report (which is, in effect, a detailed map of the client's weaknesses) are stored, transmitted, and eventually destroyed in a manner that does not itself become a security incident.
Whether a tester is an internal team member testing their own organization's systems or an external contractor delivering a paid engagement, the standard of care around this final phase is the same: deliver a quality product that genuinely enables the client to understand and reduce their risk, and handle the sensitive knowledge gained during testing responsibly.
9.0.2 What Will I Learn in This Module?
Module Title: Reporting and Communication
Module Objective: Create a penetration testing report.
| Topic Title | Topic Objective |
|---|---|
| 9.1 Comparing and Contrasting Important Components of Written Reports | Describe the major components of a written pentest report. |
| 9.2 Analyzing the Findings and Recommending the Appropriate Remediation Within a Report | Recommend appropriate remediation based on the findings of a pentesting campaign. |
| 9.3 Explaining the Importance of Communication During the Penetration Testing Process | Explain the components necessary for communications during the pentest process. |
| 9.4 Explaining Post-Report Delivery Activities | Explain necessary processes to complete the pentesting engagement. |
| 9.5 Summary | Consolidate and review module concepts. |
This module, taken as a whole, builds the professional skill set required to translate technical findings into a document of real business value. It covers, in order: what a report must structurally contain (9.1); how to analyze findings and turn them into prioritized, meaningful remediation guidance (9.2); how to communicate effectively — both routinely and in emergencies — throughout the life of the engagement (9.3); and what still needs to happen after the report has been handed over, including secure data destruction, retesting, and lessons-learned activities (9.4).
The remainder of this document focuses exclusively on Topic 9.1, as requested, and treats it with full depth and rigor.
PART TWO — TOPIC 9.1: COMPARING AND CONTRASTING IMPORTANT COMPONENTS OF WRITTEN REPORTS
Topic Objective: Describe the major components of a written pentest report.
This topic is built from nine sub-lessons:
9.1.1 Overview · 9.1.2 Report Contents · 9.1.3 Practice – Penetration Reporting · 9.1.4 Storage Time for Report and Secure Distribution · 9.1.5 Practice – Control and Distribution of Reports · 9.1.6 Note Taking · 9.1.7 Common Themes/Root Causes · 9.1.8 Practice – Common Themes/Root Causes · 9.1.9 Lab – Explore PenTest Reports
Each is covered below in full detail.
9.1.1 Overview
What Is a Penetration Testing Report, Really?
A penetration testing report is a formal, structured document that communicates the scope, methodology, findings, risk, and recommendations resulting from a security assessment. But defining it that way undersells its real function. In practice, the report serves several distinct audiences simultaneously, each of which reads it for a different reason and extracts different information from it:
- Executives and board members care about business risk, financial exposure, regulatory/compliance implications, and whether the organization's overall security posture is trending in the right direction. They will typically read only the executive summary and perhaps a risk-scoring overview.
- IT and security management (CISOs, security managers, IT directors) use the report to prioritize budget, staffing, and remediation roadmaps. They read the executive summary plus the summarized findings and risk ratings across the engagement.
- System administrators, developers, and engineers — the people who will actually fix the issues — need the detailed technical findings section: exact reproduction steps, affected systems, evidence, and specific remediation guidance.
- Auditors and compliance officers need the report to map cleanly to whatever framework applies (PCI DSS, HIPAA, SOC 2, ISO 27001, NIST 800-53, etc.), often requiring explicit statements about scope, methodology, and attestations of testing dates and standards followed.
- Legal and risk teams may review the report for liability exposure, contractual implications (e.g., breach of a client SLA), or as evidence of due diligence performed.
A single report, therefore, must be layered: high-level enough at the top to be immediately useful to a non-technical executive, and precise and detailed enough further in to be genuinely actionable by a systems engineer. This tension — between accessibility and technical precision — is one of the defining professional challenges of report writing, and it is why experienced testers structure reports hierarchically (executive summary → findings summary → detailed findings → appendices) rather than as one undifferentiated technical narrative.
The Report as Evidence of Professional Rigor
Beyond communicating findings, the report also functions as evidence that the engagement was conducted properly. A well-constructed report implicitly (and often explicitly) demonstrates:
- That testing stayed within the agreed scope and rules of engagement.
- That a recognized, defensible methodology was followed (e.g., PTES, OWASP Testing Guide, NIST SP 800-115, OSSTMM), rather than ad hoc poking around.
- That findings are reproducible and evidenced, not speculative or unverifiable.
- That the assessment reflects genuine professional diligence — this matters enormously if the report is later scrutinized during a breach investigation, an insurance claim, a regulatory audit, or litigation.
This "evidentiary" dimension of the report is a major reason why sloppiness in report writing is a serious professional liability, not merely a stylistic weakness. A finding that cannot be reproduced from the documentation provided, or a risk rating that cannot be justified with reference to a defensible methodology (such as CVSS), undermines the credibility of the entire engagement.
Why "Comparing and Contrasting" Report Components Matters
Different report types and templates exist because different engagements, clients, and regulatory contexts demand different emphases. A report for a PCI DSS-mandated external network test will look structurally different from a report for a red-team engagement measuring detection and response capability, which in turn looks different again from a web application penetration test aligned to the OWASP Top 10, or an internal-only social engineering assessment. Understanding the components that make up a report — and which components are essential versus situational — allows a tester to construct the right report for the right context, rather than mechanically reusing a single rigid template regardless of engagement type.
At the same time, there is a common skeleton shared by virtually all professional pentest reports, regardless of engagement flavor. Learning that skeleton, and learning to reason about which optional components to add or omit for a given client and scope, is the central skill this topic builds.
9.1.2 Report Contents
This is the core structural lesson of Topic 9.1: what sections a professional penetration testing report actually contains, and what each section is responsible for communicating.
1. Cover Page / Title Page
Establishes the document's identity and confidentiality posture at a glance. Typically includes:
- Client/organization name and (if applicable) logo.
- Assessment name/type (e.g., "External Network Penetration Test," "Web Application Assessment – Customer Portal").
- Testing dates (start and end).
- Report version number and date of issue.
- Confidentiality/classification banner (e.g., "Confidential — For Internal Use Only," "TLP:AMBER").
- The name of the testing firm/team and, often, primary point of contact.
This may seem like a formality, but the classification banner in particular is functionally important: it signals to anyone who later handles the document how it must be treated (see 9.1.4).
2. Document Control / Revision History
A small table tracking report versions, dates, authors, and a brief description of changes (e.g., "v1.0 – Draft issued," "v1.1 – Revised after client walkthrough call," "v2.0 – Final, retest results incorporated"). This is essential for larger organizations and long engagements where multiple drafts circulate before sign-off, and it provides an audit trail of exactly what was communicated and when.
3. Executive Summary
Arguably the single most important section of the entire report, because it is the section most consistently read in full by decision-makers. A strong executive summary:
- States the purpose and scope of the engagement in plain business language (what was tested, why, and over what time period).
- Summarizes the overall security posture observed — is the environment strong with isolated issues, or are there systemic, high-risk problems?
- Presents a high-level summary of findings, typically broken down by severity (e.g., "3 Critical, 7 High, 12 Medium, 9 Low, 4 Informational findings"), often visualized with a simple chart or table.
- Identifies major themes or root causes (see 9.1.7) rather than listing every individual finding — e.g., "Patch management deficiencies were the primary contributing factor across 40% of findings."
- Avoids deep technical jargon; a non-technical executive should be able to read this section and understand, in business terms, what risk the organization faces and roughly how urgent remediation is.
- Is typically written last, after all findings are finalized, even though it appears first in the document — because it is a synthesis of everything else.
4. Scope and Methodology
This section formally documents what was tested and how, and it matters both for transparency and for legal/contractual protection. It typically includes:
- In-scope assets: IP ranges, domains, applications, physical locations, or social engineering targets explicitly authorized for testing.
- Out-of-scope items: systems or techniques explicitly excluded (e.g., "Denial-of-service testing was out of scope," "Third-party SaaS platforms were excluded from testing").
- Testing type and approach: black-box, white-box, or gray-box; announced vs. unannounced (i.e., whether the client's SOC/blue team was told testing would occur); credentialed vs. uncredentialed.
- Methodology/standard followed: reference to a recognized framework such as PTES (Penetration Testing Execution Standard), OWASP Testing Guide/OWASP ASVS, NIST SP 800-115, OSSTMM, or MITRE ATT&CK-aligned adversary emulation, depending on engagement type.
- Rules of engagement summary: testing window, permitted hours, emergency contact procedures, and any special handling instructions (e.g., "Do not test the production payment gateway between 09:00–17:00 local time").
- Tools used, at least at a categorical level (vulnerability scanners, exploitation frameworks, custom scripts), which supports reproducibility and transparency.
Precisely defining scope and methodology also protects the testing firm: if a client later claims "you should have found X," a clearly documented scope demonstrates whether X was ever actually within the authorized boundaries of the engagement.
5. Risk Rating / Severity Methodology
Before diving into individual findings, professional reports explain how severity was calculated, so that ratings are transparent and defensible rather than subjective gut calls. Most reports use, or are heavily influenced by:
- CVSS (Common Vulnerability Scoring System) — the industry-standard framework, scoring vulnerabilities across metrics like attack vector, complexity, privileges required, user interaction, and impact to confidentiality/integrity/availability, producing both a numeric score (0.0–10.0) and a qualitative rating (None, Low, Medium, High, Critical).
- Custom or hybrid risk matrices that combine likelihood and business impact, since a technically "high" CVSS score in an environment with strong compensating controls, or on an asset with low business value, may represent lower actual risk than a "medium" CVSS finding on a crown-jewel system.
Documenting the methodology used prevents a common and damaging problem: clients disputing severity ratings because they don't understand — or disagree with — how a number was derived.
6. Detailed Findings (the Technical Core)
This is typically the longest section and the true technical payload of the report. Each individual finding is documented as a self-contained sub-report, generally including:
- Finding title — short and descriptive (e.g., "SQL Injection in Login Form Allows Authentication Bypass").
- Severity/risk rating — with the underlying CVSS vector string where applicable.
- Affected asset(s) — specific hosts, URLs, IPs, or application components.
- Description — a clear technical explanation of the vulnerability, written so that someone unfamiliar with the specific exploit could understand the underlying weakness.
- Evidence — screenshots, command output, HTTP request/response captures, or log excerpts that prove the finding is real and reproducible. This is critical: an unevidenced finding is essentially an unverifiable claim.
- Reproduction steps — a numbered, step-by-step procedure detailed enough that the client's own engineers (or a retesting team) could reproduce the issue independently.
- Business impact — what an attacker could actually accomplish by exploiting this (data exfiltration, full domain compromise, service disruption, regulatory violation, reputational harm, etc.), translated into terms a non-specialist can grasp.
- Remediation recommendation — specific, actionable guidance (covered extensively in Topic 9.2), not vague advice like "patch the system," but concrete steps, configuration changes, or code fixes.
- References — links to CVE entries, vendor advisories, OWASP articles, or other authoritative sources supporting the finding.
7. Attack Narrative / Chain-of-Compromise Summary (where applicable)
For engagements involving multi-step exploitation — particularly internal network or red-team assessments — many reports include a narrative section describing how individually "minor" findings were chained together to achieve a significant compromise (e.g., "A low-severity information disclosure vulnerability revealed a username enumeration flaw, which combined with a weak password policy finding to allow brute-force access, which in turn led to domain administrator compromise via a misconfigured group policy"). This narrative is often the most persuasive part of the report for skeptical stakeholders, because it demonstrates realistic attacker impact rather than a flat list of disconnected technical issues.
8. Conclusion / Summary of Recommendations
A consolidated, prioritized action list distilled from all the individual remediation recommendations — often organized by urgency (immediate/short-term/long-term) or by root cause theme rather than by individual finding, to help the client build a practical remediation roadmap instead of being overwhelmed by dozens of disconnected line items.
9. Appendices
Supplementary material that supports the report but would clutter the main narrative if inline, such as:
- Full raw tool output (vulnerability scanner exports, nmap results).
- Complete lists of tested hosts/URLs.
- Glossary of technical terms.
- Detailed CVSS vector breakdowns for every finding.
- Testing timeline/log.
Optional / Situational Components
Depending on engagement type, additional sections may be warranted:
- Compliance mapping tables (mapping findings to specific PCI DSS requirements, HIPAA safeguards, etc.) for regulatory-driven assessments.
- Positive findings / things done well — increasingly included as a best practice, since a report that only lists failures can feel demoralizing and one-sided; acknowledging effective controls (e.g., strong network segmentation, well-configured logging) gives a more balanced and credible picture.
- Detection and response observations, for engagements measuring blue-team performance (did the SOC detect the activity, and how quickly?).
- Social engineering campaign statistics (click rates, credential submission rates, reporting rates) for phishing-focused engagements.
9.1.3 Practice – Penetration Reporting
This practice sub-lesson is designed to build muscle memory for translating raw technical activity into properly structured report content. The core skill being practiced is: given a technical finding, correctly separate it into its required report components (title, severity, affected asset, description, evidence, reproduction steps, impact, remediation) rather than writing an unstructured technical "blob."
Worked Example
Suppose during testing you discover the following, informally, in your notes:
"Ran
nmap -sV 10.10.10.15, found port 21 open running vsftpd 2.3.4. This version is known to have a backdoor. Used Metasploit'sexploit/unix/ftp/vsftpd_234_backdoormodule, got a root shell. Screenshotted the shell withidoutput showing uid=0(root)."
A properly structured finding derived from this raw note would look like:
- Title: Backdoored FTP Service Allows Unauthenticated Remote Root Compromise (vsftpd 2.3.4)
- Severity: Critical (CVSS v3.1: 9.8 — Network/Low complexity/No privileges required/No user interaction/High confidentiality-integrity-availability impact)
- Affected Asset: 10.10.10.15, port 21/tcp (FTP)
- Description: The host is running vsftpd version 2.3.4, a version publicly known to contain a maliciously inserted backdoor command handler that permits unauthenticated attackers to obtain a remote root shell.
-
Evidence: Screenshot of Metasploit console showing successful exploitation and
idcommand output confirminguid=0(root). -
Reproduction Steps: (1) Confirm vsftpd version via banner grab or
nmap -sV. (2) Launch Metasploit and select the corresponding exploit module. (3) Set the target IP (RHOSTS). (4) Execute the module. (5) Confirm shell access and privilege level viaid. - Business Impact: Complete, unauthenticated compromise of the host with root-level privileges, allowing an attacker to read/modify/delete all data on the system, install persistent malware, and use the host as a pivot point into the internal network.
- Remediation: Immediately remove or upgrade the vulnerable vsftpd package to a current, non-backdoored version; verify software provenance from official repositories only; implement a formal patch management process to prevent deployment of known-vulnerable software versions in the future.
Key Practice Takeaways
- Never leave a finding as raw command output. Raw terminal logs are evidence, not narrative — they support the finding but do not replace the written description.
- Every technical claim needs a "so what." A tester must habitually translate technical impact ("root shell") into business impact ("complete compromise of the host and any data or systems it can reach").
- Reproduction steps must be genuinely followable by someone who wasn't there. A common mistake is writing steps that implicitly assume knowledge only the original tester has.
- Remediation must be specific enough to act on, not generic advice copy-pasted across every finding of a similar category.
9.1.4 Storage Time for Report and Secure Distribution
A penetration test report is, by its very nature, one of the most sensitive documents an organization can possess: it is effectively a detailed roadmap of the organization's exploitable weaknesses. If it fell into the wrong hands — a malicious insider, a competitor, or an external attacker — it could be used as a near-complete attack plan. Because of this, how the report is stored, for how long, and how it is distributed is treated as its own serious security discipline, not an afterthought.
Retention: How Long Should a Report Be Kept?
There is no single universal answer; retention periods are driven by a combination of:
- Contractual terms — the statement of work (SOW) or master services agreement (MSA) between the testing firm and the client will often specify an explicit retention period (e.g., "reports and supporting evidence will be retained for 90 days post-delivery and then securely destroyed, unless otherwise requested in writing").
- Regulatory requirements — some compliance frameworks require retention of assessment evidence for a minimum period (for example, PCI DSS generally expects supporting documentation to be available for a defined period to support audit trails), while data protection regulations (such as GDPR) push in the opposite direction, favoring data minimization — not retaining sensitive data longer than necessary for its purpose.
- Client preference — many clients explicitly want testing firms to purge report data as soon as possible after delivery and acceptance, specifically because of how sensitive the content is; some clients require signed destruction certificates as proof.
- Firm's own risk management policy — reputable testing firms typically define a standard default retention window (commonly somewhere in the range of 30–180 days, though this varies by firm and client) after which reports and all associated raw evidence (scan output, screenshots, credentials obtained during testing, exploited payloads, etc.) are securely and verifiably destroyed.
The guiding principle is: retain only as long as necessary, and no longer — every additional day a sensitive report sits in storage is additional exposure surface if that storage is ever compromised.
Secure Storage While the Report Exists
While a report (or its supporting raw data) is being retained, professional practice requires:
- Encryption at rest — reports and evidence should be stored on encrypted volumes or within platforms that enforce encryption by default, not left as plaintext files on a shared drive.
- Access control / least privilege — only personnel with a genuine need (the testing team, project managers, and designated QA reviewers) should have access; broad "everyone in the company can browse the reports folder" access is a serious anti-pattern.
- Segregation from general corporate storage — many firms keep client deliverables in a dedicated, more tightly access-controlled system rather than a general-purpose file share or personal cloud storage.
- Classification labeling — reports are typically marked internally as "Confidential" or "Restricted," and some firms adopt frameworks like the Traffic Light Protocol (TLP) to signal exactly how far information may be shared (e.g., TLP:RED — not for disclosure beyond named recipients; TLP:AMBER — limited disclosure within the client organization on a need-to-know basis).
- Credential and payload hygiene — any credentials obtained during testing (passwords cracked, hashes dumped, session tokens captured) are extremely sensitive in their own right and require the same, if not stricter, handling as the report text itself; best practice is often to redact or securely separate raw credential material from the main narrative report.
Secure Distribution
How the finished report physically reaches the client matters as much as how it is stored:
- Never send an unencrypted report over standard email. Email is not a secure transport by default, may traverse and be cached by multiple third-party mail servers, and is a common target for interception.
- Password-protect and encrypt the file itself (e.g., encrypted PDF, or placed in an encrypted archive) with the password communicated through a separate channel from the file itself (e.g., file via secure portal, password via phone call or a separate encrypted message) — this "two-channel" approach prevents a single compromised channel from exposing both the file and the means to open it.
- Use a secure client portal or encrypted file-sharing platform where possible, rather than generic consumer file-sharing tools, ideally with authentication, expiring links, and download logging.
- Verify the recipient before sending — confirming the correct, authorized point of contact, especially given that social engineering attacks sometimes specifically target the reporting/delivery stage of a pentest to intercept sensitive findings.
- Maintain a distribution log — recording who received the report, when, and via what mechanism, which supports both accountability and, if ever needed, incident investigation.
Secure Destruction
When the retention period ends, destruction must be genuine and verifiable, not merely deleting a file (which, on many systems, does not actually erase the underlying data). Proper practice includes:
- Secure deletion/wiping methods appropriate to the storage medium.
- Destruction of all copies — not just the primary file, but backups, cached versions, and any local copies testers may have made on their own workstations during drafting.
- Where contractually required, issuing a certificate of destruction to the client confirming the data has been removed.
9.1.5 Practice – Control and Distribution of Reports
This practice sub-lesson reinforces 9.1.4 through applied scenario-based reasoning. The underlying skill is: given a distribution scenario, identify what is wrong and what the secure alternative would be.
Scenario-Based Practice Reasoning
Scenario A: A junior tester finishes a report and, to save time, emails the PDF directly to the client's general "info@" inbox with the password to open it written in the same email.
- What's wrong: The general inbox is not a verified, authorized recipient, and putting the password in the same email as the file completely defeats the purpose of encryption — anyone who intercepts the email has both the file and the key.
- Correct approach: Send the file to a specifically named, pre-verified point of contact via a secure portal, and deliver the decryption password through a separate channel (e.g., a phone call).
Scenario B: A testing firm keeps every report it has ever produced, for every client, indefinitely on a shared internal drive "in case we need it later," accessible to the entire consulting staff.
- What's wrong: This violates least-privilege access, ignores data minimization principles, and creates an enormous, growing pool of highly sensitive material with an unnecessarily broad blast radius if the drive is ever compromised.
- Correct approach: Apply a defined retention schedule with secure destruction at expiry, and restrict access to only the personnel directly involved with a given client relationship.
Scenario C: A tester copies engagement screenshots and notes to their personal laptop to "finish the report over the weekend," using a personal, unencrypted cloud storage account to sync the files.
- What's wrong: This moves highly sensitive client data outside of firm-controlled, encrypted, access-audited systems entirely, onto a consumer platform with unknown security controls, and onto a personal device that may not meet the firm's security standards.
- Correct approach: Use only firm-approved, encrypted, access-controlled systems for engagement data at every stage, including drafting; if remote work is necessary, it must occur through approved, secured channels (e.g., VPN access to the firm's controlled environment), never through ad hoc personal tooling.
Scenario D: A client requests the report be resent six months after delivery because they misplaced their copy, but the testing firm's retention policy specifies 90-day destruction.
- What's wrong (for the firm to simply comply without thought): If the underlying data has genuinely been destroyed per policy (and per any regulatory/contractual requirement), the firm may not have anything left to send — and should not fabricate or reconstruct it from memory.
- Correct approach: The firm communicates its documented retention policy transparently, confirms whether the data still exists or has already been destroyed, and if destroyed, discusses options (e.g., a fresh assessment, or, if permitted under the original contract, an earlier-negotiated longer retention arrangement) rather than improvising an insecure workaround.
The consistent thread across all these practice scenarios: every distribution and storage decision should be evaluated against confidentiality, integrity, and least-privilege/least-retention principles, the same core security principles testers are hired to evaluate in their clients' environments. A testing firm that is careless with its own report handling is, ironically, failing to practice the exact discipline it is being paid to assess.
9.1.6 Note Taking
If the final report is the product, note-taking is the raw material supply chain that makes an accurate, high-quality product possible. This sub-lesson treats note-taking as a first-class professional skill in its own right.
Why Note-Taking Discipline Is Non-Negotiable
As emphasized in the module introduction, memory degrades rapidly and unevenly across a multi-day or multi-week engagement. Good note-taking exists to solve several distinct problems simultaneously:
- Reproducibility — findings must be backed by evidence precise enough that someone else (a QA reviewer, a retesting team, the client's own engineers) can independently verify them.
- Completeness — without a running log, it is extremely easy to simply forget an entire avenue of testing was performed, or forget a minor-seeming finding that later turns out to be an important piece of an attack chain.
- Time efficiency — reconstructing what happened from memory at report-writing time is dramatically slower than transcribing well-organized notes into report format.
- Defensibility — if a client or auditor later disputes a finding, or if a legal question arises about what was or wasn't done during testing, contemporaneous notes are far more credible than after-the-fact recollection.
- Team coordination — on multi-tester engagements, shared, structured notes prevent duplicate work and let team members build on each other's findings in real time.
What Should Be Captured
Effective pentest notes are more than a diary; they function as a structured technical log. At minimum, professional note-taking practice captures, for essentially every meaningful action:
- Timestamp of the activity.
- Target/asset involved (IP, hostname, URL, application component).
- Exact command or action taken, including full syntax/parameters — not a paraphrase, but the literal input used, so it can be re-run exactly.
- Full or representative output/result, saved as text and/or screenshot.
- Tester's interpretation — what the result means, why it matters, whether it represents a finding, a dead end, or a lead to pursue further.
- Any credentials, tokens, or artifacts obtained, clearly flagged as sensitive.
- Scope confirmation notes, where relevant (e.g., "confirmed target is in-scope per SOW Appendix A before proceeding").
Common Note-Taking Tools and Approaches
Professional testers use a range of tools, chosen based on personal workflow, team standards, and client requirements:
- Dedicated pentest documentation platforms (e.g., Dradis, PlexTrac, Ghostwriter) which are purpose-built to organize findings, evidence, and generate reports directly from structured notes — these are increasingly the industry standard for teams, since they directly connect note-taking to the reporting workflow described in 9.0.1.
- General-purpose structured note tools (e.g., CherryTree, Obsidian, Microsoft OneNote, joplin) used especially by individual testers or smaller teams, offering flexible hierarchical organization (per-host, per-vulnerability-class, or per-phase note trees).
-
Command-line logging utilities (e.g.,
script,tmuxlogging,teepiping of command output to timestamped log files) to guarantee that raw terminal activity is captured verbatim without relying on the tester to manually copy/paste everything. - Screenshot tools with annotation capability, used to visually evidence findings (e.g., highlighting the specific field in a UI, or the specific line in output, that demonstrates the vulnerability).
- Mind-mapping tools for visually tracking attack paths and pivot chains across a complex network, which later directly feed the "attack narrative" section of the report (see 9.1.2, item 7).
Organizational Structure for Notes
Rather than one long unstructured log, effective note-taking is organized so it can be efficiently mined at report-writing time. Common organizational patterns include:
- By host/asset — a dedicated notes section per target, listing everything discovered and attempted against it.
- By vulnerability/finding — a running list of confirmed findings, each with its own evidence bundle, updated as testing progresses.
- By phase — separate sections for reconnaissance, scanning/enumeration, exploitation, post-exploitation/lateral movement, and cleanup, which mirrors the eventual report's methodology-driven narrative.
- A running timeline/activity log — a chronological master record of everything done, which is invaluable both for report accuracy and for answering client questions like "were you testing on Tuesday at 3 PM? We saw unusual traffic then."
Note-Taking and Confidentiality
Since notes often contain the same sensitive material as the eventual report — sometimes in even rawer, more exploitable form (e.g., plaintext cracked passwords) — the storage and access-control principles from 9.1.4 apply to working notes just as much as to the finished report, from the very first note taken, not just after the report is finalized.
9.1.7 Common Themes/Root Causes
Beyond a Flat List of Findings
A report that simply enumerates twenty, fifty, or a hundred individual findings — each treated as an isolated technical fact — is far less valuable to a client than one that also steps back and identifies the underlying, systemic causes producing many of those findings. This is the purpose of root-cause and theme analysis: grouping individually discovered vulnerabilities according to their shared origin, so the client can address the cause rather than playing an endless game of whack-a-mole with individual symptoms.
Why Root-Cause Grouping Matters
Consider a report listing, among many other things: outdated SSL/TLS configuration on three servers, an unpatched Windows Server missing a critical security update, and an out-of-date web application framework with several known CVEs. Individually, these look like three unrelated findings requiring three separate remediation tickets. Viewed through a root-cause lens, however, they may all trace back to a single systemic failure: the organization lacks a functioning, enforced patch/update management process. Framing the issue this way changes the remediation conversation entirely — instead of "fix these three specific things," the recommendation becomes "implement a formal patch management program with defined SLAs for critical updates," which prevents not just these three findings but the dozens of similar future findings that same systemic gap would otherwise keep producing.
This is precisely why the executive summary (9.1.2, item 3) emphasizes themes over exhaustive finding lists — executives and budget-holders think and allocate resources in terms of programs and processes, not individual line-item vulnerabilities.
Common Root-Cause Categories
While every engagement is different, certain root-cause themes recur across the industry with enough regularity that experienced testers actively watch for them:
- Patch/vulnerability management deficiencies — missing security updates across multiple systems, indicating no reliable patching cadence.
- Weak credential/password practices — default credentials left in place, weak password policies, absence of multi-factor authentication, password reuse across systems.
- Excessive privilege / poor access control — accounts and service principals with far more permission than their function requires, violating least privilege.
- Insufficient network segmentation — flat networks where compromise of one low-value system provides an unobstructed path to high-value assets.
- Insecure configuration / hardening gaps — services deployed with default, non-hardened configurations (unnecessary open ports, verbose error messages, default admin panels left exposed).
- Inadequate input validation in custom applications, producing recurring classes of vulnerability such as injection flaws or cross-site scripting across multiple application components.
- Insufficient logging and monitoring, meaning even where controls exist, the organization would have limited visibility into whether they were bypassed.
- Gaps in security awareness/training, evidenced by susceptibility to social engineering or phishing components of an assessment.
How Root-Cause Analysis Is Performed in Practice
- Aggregate all findings once testing is complete, rather than analyzing them only in isolation as they are discovered.
- Tag or categorize each finding against a consistent taxonomy (e.g., mapping to categories like those above, or to a framework such as the OWASP Top 10 or CWE categories for application findings).
- Look for clusters — categories with disproportionately many findings relative to others, or findings that recur across multiple, otherwise unrelated systems.
- Trace clusters back to a plausible organizational or process cause — ask "why does this keep happening?" rather than stopping at "what is broken?"
- Present themes prominently, typically in the executive summary and in the consolidated recommendations/conclusion section, explicitly linking them to the specific findings that illustrate each theme (usually via cross-reference to finding IDs).
This kind of synthesis is a distinctly senior-level reporting skill — it requires enough technical breadth to recognize when superficially different findings share a common origin, and enough business fluency to translate that pattern into language a remediation-budget decision-maker will act on.
9.1.8 Practice – Common Themes/Root Causes
This practice sub-lesson trains the pattern-recognition skill described in 9.1.7 through applied grouping exercises.
Worked Practice Example
Suppose an engagement produces the following raw finding list (simplified for illustration):
- Default credentials found on a network printer's web management interface.
- Domain Admin account discovered with a password unchanged in over five years.
- A file server accessible from the general employee VLAN with no segmentation from the finance department's systems.
- An internal wiki application running an outdated version of its CMS software with three known CVEs.
- A test/staging web server left publicly accessible on the internet with default admin credentials.
- Multiple workstations found missing security patches released more than a year prior.
- A finance application accessible directly from the guest Wi-Fi network due to lack of VLAN separation.
Practice task: Group these into root-cause themes rather than treating them as seven unrelated items.
Reasoned grouping:
- Theme 1 — Weak Credential Management (findings 1, 2, 5): Multiple systems across very different contexts (a printer, a domain account, an internet-facing server) share the same underlying failure — credentials are either left at vendor defaults or never rotated. The systemic recommendation is a formal credential management policy (default-credential elimination during deployment, periodic password rotation/enforcement, ideally paired with MFA and a password manager or privileged access management solution for administrative accounts), not three unrelated one-off fixes.
- Theme 2 — Insufficient Network Segmentation (findings 3, 7): Both findings show sensitive systems (finance-adjacent file server, finance application) reachable from networks that should have no legitimate business need to reach them (general employee VLAN, guest Wi-Fi). The systemic recommendation is a network segmentation redesign enforcing least-access between VLANs based on business function, not two isolated firewall-rule tickets.
- Theme 3 — Patch/Update Management Gaps (findings 4, 6): An outdated CMS and workstations missing over a year of patches both point to the same underlying process failure — there is no reliable, enforced patching cadence. The systemic recommendation is implementation of a formal patch management program with defined SLAs by severity, not piecemeal patching of only the specific systems tested.
Key Practice Takeaways
- Grouping is not just clerical categorization — it requires genuinely asking "what organizational process, if it existed and worked, would have prevented all of these findings, not just one?"
- The same finding can sometimes plausibly belong to more than one theme; testers use judgment about the most useful primary categorization for driving remediation action.
- Presenting themes doesn't replace the detailed individual findings — both are included in the full report; the theme summary sits above them (typically in the executive summary and conclusion) as a synthesis layer, cross-referenced back to the specific findings that support it.
9.1.9 Lab – Explore PenTest Reports
This lab sub-lesson is hands-on and experiential: the objective is to build real familiarity with what professional-grade reports actually look like in practice, by directly examining real or representative examples, rather than only reading about report structure in the abstract.
Lab Objectives
- Identify, in a real report, each of the structural components covered in 9.1.2 (executive summary, scope/methodology, risk rating methodology, detailed findings, conclusion, appendices).
- Evaluate the quality of how those components are executed — is the executive summary genuinely accessible to a non-technical reader? Are reproduction steps detailed enough to actually follow? Is evidence sufficient to substantiate each claim?
- Identify examples of root-cause/theme synthesis (per 9.1.7) in a real report's executive summary or conclusion.
- Compare and contrast structure across multiple report types (e.g., a network penetration test report vs. a web application assessment vs. a red-team engagement report) to observe how the common skeleton adapts to context.
Suggested Approach for This Lab
- Locate publicly available sample or redacted penetration test reports. A number of security firms and public-sector organizations have released real or template pentest reports for educational purposes and public transparency (for example, some government agencies and open-source security organizations publish redacted assessment reports; several commercial testing firms publish sample/template reports as marketing/educational material; and various report template repositories exist within the security community, e.g., collections of open-source pentest report templates on platforms like GitHub). When selecting sources for this lab, prioritize reports explicitly published or released for public/educational use, rather than any leaked or improperly obtained material — this itself reflects the professional and ethical standards this module is teaching.
- Read the executive summary first, independent of the rest of the report, and evaluate: could a non-technical reader understand the organization's overall risk posture from this section alone?
- Select two or three individual findings and map each one explicitly against the component checklist from 9.1.2 (title, severity, affected asset, description, evidence, reproduction steps, business impact, remediation) — note any components that are missing, weak, or exceptionally well done.
- Identify the risk-rating methodology used (is CVSS explicitly referenced? Is a custom likelihood/impact matrix used instead? Is the methodology explained anywhere in the report, or simply asserted without justification?).
- Look for thematic/root-cause synthesis in the executive summary or conclusion, and assess whether the report successfully elevates individual findings into actionable systemic recommendations, or whether it simply presents a flat, unsynthesized list.
- Compare across at least two different report types (e.g., network vs. web application, or standard pentest vs. red-team) and note structural differences — for instance, red-team reports often include a much more developed attack-narrative section describing the full compromise chain and detection/response observations, which a straightforward vulnerability-focused network pentest report may lack entirely.
- Document your own findings from this lab using the same note-taking discipline covered in 9.1.6 — treat this lab itself as practice for the professional habit of capturing structured, evidenced observations as you go, rather than trying to reconstruct your analysis from memory afterward.
Reflection Questions to Answer During the Lab
- Which report, of those you examined, would you personally want to receive as a client, and specifically why — what made it feel trustworthy, clear, and actionable rather than generic or confusing?
- Did any report fail to adequately separate technical detail from business-level summary, forcing a non-technical reader to wade through jargon to understand overall risk?
- Were there findings in any report where the evidence provided felt insufficient to actually substantiate the claimed vulnerability?
- Did any report successfully demonstrate a full attack chain narrative connecting multiple individually "minor" findings into a significant compromise story? What made that narrative effective (or, if absent, what would have strengthened the report if it had been included)?
PART THREE — TOPIC 9.2: ANALYZING THE FINDINGS AND RECOMMENDING THE APPROPRIATE REMEDIATION WITHIN A REPORT
Topic Objective: Recommend appropriate remediation based on the findings of a pentesting campaign.
This topic is built from seven sub-lessons:
9.2.1 Overview · 9.2.2 Technical Controls · 9.2.3 Administrative Controls · 9.2.4 Operational Controls · 9.2.5 Physical Controls · 9.2.6 Practice – Recommended Controls · 9.2.7 Lab – Recommend Remediation Based on Findings
9.2.1 Overview
From Finding to Fix: The Analytical Bridge
Topic 9.1 established what a finding must contain to be complete and evidenced. Topic 9.2 addresses the step that happens immediately after a finding is confirmed and before it is written into the report: deciding what the client should actually do about it. This is not a mechanical, one-size-fits-all step. Two organizations can have the exact same technical vulnerability — say, an unpatched critical CVE on an internet-facing server — and yet require meaningfully different remediation guidance, because their budgets, existing tooling, regulatory obligations, risk tolerance, and operational constraints differ. A junior tester tends to write remediation as a reflexive, generic instruction ("patch the system," "use strong passwords," "implement a firewall rule"). A senior tester treats remediation recommendation as its own analytical discipline: understanding why the vulnerability exists, what class of control would prevent it (and similar future issues), and how that control should realistically be implemented given the client's environment.
This is where the tester transitions from being purely an attacker simulating a threat to being a trusted advisor helping the client build resilience. The technical skill required to exploit a vulnerability and the analytical/advisory skill required to recommend a durable fix are genuinely different skill sets, and the second is, in many ways, harder to master — because it requires broad familiarity with defensive architecture, not just offensive technique.
The Four Control Categories
Security controls — the mechanisms an organization puts in place to prevent, detect, or respond to threats — are conventionally grouped into four categories. Every remediation recommendation in a professional report should be traceable to one (or more) of these categories, because thinking in these terms keeps recommendations structured, comprehensive, and easy for a client's security program to absorb into their existing governance framework:
- Technical Controls — implemented through technology itself: software, hardware, configuration settings, and system architecture (e.g., firewalls, patching, encryption, access control lists, multi-factor authentication).
- Administrative Controls — implemented through policy, process, and governance rather than technology directly (e.g., a formal patch management policy, a password policy, security awareness training, background check requirements, incident response plans).
- Operational Controls — the day-to-day procedures and human practices that keep a security program running correctly (e.g., regular log review procedures, change management processes, backup verification routines, vulnerability scanning cadences). Operational controls sit at the intersection of administrative policy and technical implementation — they are the procedures people actually follow to keep controls effective over time.
- Physical Controls — controls that protect the physical environment and physical access to systems (e.g., badge access to server rooms, security cameras, locked equipment racks, visitor sign-in procedures, device disposal procedures).
This four-category model (sometimes presented as three categories with "operational" folded into "administrative," depending on the framework/textbook) mirrors how many security frameworks and certifications — including frameworks referenced throughout the broader penetration testing body of knowledge — classify controls, and mapping remediation to these categories makes reports far easier for a client's security or compliance team to integrate into their existing control catalog (for example, when mapping findings to a framework like NIST 800-53 or ISO 27001, which are themselves organized around similar control families).
Choosing the Right Category — and Layering Controls (Defense in Depth)
A critical, senior-level insight this sub-topic establishes: the "best" remediation for a given finding is very often not a single control from a single category, but a layered combination. This reflects the security principle of defense in depth — relying on any single control, no matter how strong, is fragile, because a single control can fail, be misconfigured, or be bypassed. A resilient remediation strategy stacks controls from multiple categories so that the failure of one does not equal total compromise.
Consider, as a running example used throughout this topic, a finding of SQL injection in a public-facing web application login form:
- A technical fix addresses the immediate vulnerability (parameterized queries/prepared statements, input validation, a Web Application Firewall as a compensating control).
- An administrative fix addresses why the vulnerability was allowed to reach production in the first place (a secure coding policy, mandatory security code review before deployment, a secure software development lifecycle/SSDLC policy).
- An operational fix ensures the fix stays effective over time (regular application security scanning as part of the CI/CD pipeline, periodic manual penetration testing of the application).
- A physical control is typically not directly relevant to this specific finding — illustrating that not every finding requires all four categories; good remediation reasoning includes recognizing which categories genuinely apply, not mechanically forcing all four onto every finding.
This running SQL injection example is referenced again in 9.2.2 through 9.2.5 below to show how the same underlying finding generates different, complementary recommendations depending on which control category is being considered.
9.2.2 Technical Controls
What Technical Controls Are
Technical controls (sometimes called logical controls) are safeguards implemented through technology — hardware, software, firmware, or configuration — that directly enforce security properties such as confidentiality, integrity, and availability. They are usually the most immediately obvious remediation category to testers, because they map most directly onto the technical mechanics of the vulnerability itself. Technical controls are typically further sub-classified by function:
- Preventive — stop an attack before it succeeds (e.g., input validation, patching, firewall rules, strong authentication).
- Detective — identify that an attack occurred or is occurring (e.g., intrusion detection systems, security information and event management (SIEM) alerting, file integrity monitoring).
- Corrective — restore systems or limit damage after an incident (e.g., automated patch rollback, backup restoration, account lockout after failed login attempts).
- Deterrent — discourage an attack without directly blocking it (e.g., a visible login-attempt warning banner, though deterrent value in technical controls is generally considered weaker than in physical security contexts).
- Compensating — an alternative control used when the ideal primary control cannot be implemented for a valid business reason (e.g., a Web Application Firewall used as a compensating control while a legacy application's underlying code is being rewritten to properly fix input validation).
Common Technical Control Recommendations by Finding Type
Rather than a generic list, effective technical remediation is matched precisely to the vulnerability class:
-
Injection flaws (SQL injection, command injection, etc.): parameterized queries/prepared statements, strict allow-list input validation, output encoding, least-privilege database accounts (the application's DB account should never have more privilege than its function strictly requires — e.g., it should not have
DROP TABLErights if it never needs to drop tables). - Missing patches / known-vulnerable software: apply the specific vendor patch or upgrade to a fixed version; where immediate patching isn't feasible, implement virtual patching via an IPS/WAF as a temporary compensating control.
- Weak or default credentials: enforce strong password complexity and length technically via system policy (not just written guidance), disable or change all default vendor credentials during provisioning, implement account lockout after repeated failed attempts, and — critically — deploy multi-factor authentication (MFA), which technical remediation guidance should treat as close to a baseline expectation for any authentication surface exposed to meaningful risk.
- Excessive privileges / misconfigured access control: technically enforce least privilege through role-based access control (RBAC), remove unnecessary local administrator rights, implement just-in-time privileged access where feasible.
- Insecure network segmentation: implement VLANs and firewall/ACL rules technically enforcing the intended segmentation, rather than relying on informal network design assumptions.
- Missing encryption (data in transit or at rest): enforce TLS with modern cipher suites and disable deprecated protocols (e.g., SSLv3, TLS 1.0/1.1) at the server configuration level; implement disk or field-level encryption for sensitive data at rest.
- Insufficient logging/monitoring: technically enable and centralize logging (e.g., forwarding logs to a SIEM), configure alerting thresholds for suspicious activity patterns identified during testing.
Applied to the running SQL injection example from 9.2.1: the technical control recommendation is precisely worded — e.g., "Refactor the affected query in the login handler to use parameterized queries via the application's database access layer, eliminating direct string concatenation of user-supplied input into SQL statements. As an interim compensating control while remediation is developed and tested, deploy a Web Application Firewall rule set tuned to detect and block SQL injection patterns targeting this endpoint."
Writing Technical Control Recommendations Well
-
Be specific, not generic. "Implement input validation" is weaker guidance than "implement server-side allow-list validation on the
usernameandpasswordparameters, rejecting any input containing SQL metacharacters unless properly parameterized." - Acknowledge feasibility and sequencing. A genuinely excellent report distinguishes between the ideal permanent fix (e.g., a full code refactor) and a reasonable interim compensating control (e.g., a WAF rule), since permanent fixes often require development cycles the client cannot complete overnight.
- Reference authoritative guidance where relevant (e.g., OWASP's secure coding guidance for injection prevention, vendor hardening guides, CIS Benchmarks for configuration baselines) so the client's engineers have a concrete, credible source to implement against, not just the tester's own paraphrase.
- Avoid recommending controls the tester did not actually validate would address the root cause — e.g., recommending "enable a WAF" without confirming the specific injection technique used would actually be caught by typical WAF signatures overstates the value of the fix.
9.2.3 Administrative Controls
What Administrative Controls Are
Administrative controls (also called managerial controls) govern security through policy, process, procedure, and organizational governance rather than through technology directly. They define what should happen and who is responsible, and they are frequently the controls that address the true root cause of clusters of technical findings (directly connecting this sub-topic back to the root-cause/theme analysis covered in 9.1.7). A missing patch is a technical symptom; the absence of a patch management policy defining ownership, cadence, and escalation is very often the administrative root cause.
Common Administrative Control Recommendations
- Formal policies, such as: a documented Patch and Vulnerability Management Policy (defining patching SLAs by severity — e.g., critical vulnerabilities patched within 72 hours, high within 14 days); a Password Policy (defining minimum complexity, rotation requirements, and MFA mandates); an Acceptable Use Policy; a Data Classification and Handling Policy; a Secure Software Development Lifecycle (SSDLC) policy mandating security code review and testing gates before production deployment.
- Security awareness and training programs, including recurring phishing-simulation training, role-specific security training for developers (secure coding) and administrators (secure configuration), and onboarding security training for new hires.
- Governance structures, such as a defined security steering committee, a documented incident response plan with clearly assigned roles (not just a technical runbook but an organizational governance artifact defining decision authority during an incident), and periodic third-party risk assessments (including recurring penetration testing itself, ideally on a defined annual or more frequent cadence).
- Personnel security policies, such as background check requirements for roles with privileged access, formal offboarding procedures ensuring access is revoked promptly when an employee departs (a very commonly discovered gap during internal assessments — accounts belonging to former employees still active months or years after departure).
- Vendor/third-party risk management policy, requiring security assessment of third-party software and service providers before integration, given how often findings trace back to third-party components.
Why Administrative Controls Are Often the Highest-Leverage Recommendation
A single administrative control can prevent an entire class of future findings, whereas a single technical control typically fixes only the specific instance found. Applied again to the SQL injection example: recommending "fix this one query" addresses one finding. Recommending "adopt a Secure Software Development Lifecycle policy that mandates static application security testing (SAST) and manual security code review as a required gate before any code reaches production" addresses this finding and prevents the entire class of injection (and many other) vulnerabilities from reaching production in future releases. This is precisely why experienced testers, when writing the consolidated recommendations/conclusion section of the report (9.1.2, item 8), deliberately elevate administrative recommendations to sit alongside — and often above — individual technical fixes, since administrative controls typically deliver the greatest long-term risk reduction per unit of organizational effort.
9.2.4 Operational Controls
What Operational Controls Are
Operational controls are the procedures, routines, and day-to-day human practices that keep both technical and administrative controls functioning correctly over time. If an administrative control is the policy ("we will patch critical vulnerabilities within 72 hours") and a technical control is the mechanism (the patch management software itself), the operational control is the actual, repeated human/process activity that makes the policy real in practice — the recurring meeting where the patch backlog is reviewed, the ticketing workflow that assigns and tracks patch deployment, the person responsible for confirming patches were actually applied. Operational controls are frequently the weakest link precisely because they depend on consistency over time, and consistency is harder to sustain than a one-time technology purchase or a one-time policy document sign-off.
Common Operational Control Recommendations
- Recurring vulnerability scanning cadence — e.g., authenticated vulnerability scans run weekly or monthly against all in-scope assets, with a defined process for triaging and assigning discovered issues (distinct from the periodic, deeper penetration test itself).
- Log review and monitoring procedures — a defined operational routine (not just a technical SIEM deployment) specifying who reviews security alerts, how often, and what the escalation path is when a genuine alert is identified.
- Change management procedures — a formal process requiring review and approval before configuration changes are made to production systems, reducing the chance that a security-relevant misconfiguration is introduced (or reintroduced) without oversight.
- Backup verification routines — not merely having backups (a technical control) but operationally testing restoration on a defined schedule to confirm backups are actually usable in a real incident.
- Access review/recertification procedures — a recurring operational process (e.g., quarterly) where managers formally review and confirm that each employee's system access remains appropriate to their current role, directly addressing findings related to excessive or stale privileges.
- Incident response tabletop exercises — operationalizing the administrative incident response plan by regularly rehearsing it with relevant staff, so that the plan is proven to work under simulated pressure rather than existing only as an untested document.
- Ticket/workflow tracking for remediation itself — ensuring that findings from this very penetration test (and future assessments) are entered into a tracked remediation workflow with assigned owners and due dates, rather than existing only as static text in a PDF that nobody is accountable for acting on.
Continuing the SQL injection example: the operational recommendation might be "Incorporate automated static and dynamic application security testing into the CI/CD pipeline so that injection-class vulnerabilities are operationally caught on every code commit, and establish a recurring process where security findings from these automated scans are triaged in the existing sprint planning workflow rather than accumulating unaddressed."
9.2.5 Physical Controls
What Physical Controls Are
Physical controls protect the tangible, physical environment in which information systems operate, and they protect against threats that no purely digital control can address — someone physically walking up to a server, a laptop, or a piece of network infrastructure. Even in an increasingly cloud-first industry, physical security remains directly relevant to a substantial share of real-world compromises (lost/stolen unencrypted laptops, unauthorized access to on-premises server rooms or network closets, "tailgating" into secure facilities, dumpster diving for improperly disposed sensitive documents or storage media, rogue devices physically connected to internal network jacks).
Common Physical Control Recommendations
- Facility access control — badge/keycard access to server rooms and sensitive areas, with logging of entry/exit; visitor sign-in and escort requirements; mantrap/turnstile controls to prevent tailgating into secure areas.
- Device and media security — full-disk encryption on laptops and mobile devices (bridging into a technical control, illustrating again how categories often overlap and reinforce each other), locked cabinets/racks for network and server equipment, cable locks for equipment in less-secured areas.
- Environmental and surveillance controls — CCTV coverage of sensitive areas, environmental monitoring (fire suppression, temperature/humidity monitoring for server rooms) — less commonly a direct pentest finding but occasionally relevant, particularly in physical/social-engineering-inclusive engagements.
- Secure disposal procedures — certified destruction (shredding, degaussing, or certified wiping) of storage media and printed sensitive documents before disposal, directly relevant when testers discover improperly discarded sensitive material during a physical/dumpster-diving component of an assessment.
- Unused network port management — physically disabling or 802.1X-authenticating unused network wall jacks and switch ports, preventing an attacker (or an unauthorized visitor) from simply plugging a device into an open port to gain internal network access — a very common and high-impact finding in physical/on-site penetration tests.
- Clean desk policy enforcement — reducing the risk of sensitive information (passwords on sticky notes, printed confidential documents) being visible or accessible to unauthorized individuals with physical facility access.
Why Physical Controls Still Matter in a Cloud-First World
It is a common misconception among newer testers that physical controls are a legacy concern largely irrelevant to modern, cloud-heavy environments. In practice, even fully cloud-hosted organizations still have physical attack surface: employee laptops, office network infrastructure, printed documents, badge systems, and increasingly, physical/social-engineering-combined attacks such as an attacker tailgating into an office specifically to plug a rogue device into an internal network port that then provides remote access into cloud-connected corporate systems. Comprehensive remediation guidance does not ignore this category simply because a given engagement was primarily "digital" — testers should assess, for every finding, whether a physical dimension genuinely applies, the same disciplined "does this category actually apply" reasoning introduced in 9.2.1.
9.2.6 Practice – Recommended Controls
This practice sub-lesson builds the skill of mapping a given finding to the correct control category (or categories), using the reasoning framework established across 9.2.2–9.2.5.
Worked Practice Scenarios
Scenario A — Finding: During an internal assessment, testers discover that former employees' Active Directory accounts remain active up to eight months after their departure, several with VPN access still enabled.
- Administrative control: A formal offboarding policy mandating access revocation within a defined window (e.g., same business day) of employee departure, with joint accountability between HR and IT.
- Operational control: A recurring (e.g., quarterly) access review/recertification process that would independently catch any accounts missed by the offboarding process, functioning as a compensating detective check.
- Technical control: Automated account deprovisioning integrated with the HR system (identity governance/automation tooling) so that account disablement is technically triggered the moment HR marks an employee as terminated, removing reliance on a manual step being remembered.
- Reasoning: This finding is fundamentally a process/governance failure; the strongest recommendation leads with administrative and operational fixes, with technical automation offered as the most durable long-term solution.
Scenario B — Finding: A tester discovers an unlocked, unattended network switch in an open reception area, with an accessible port that provided full internal network access when a rogue laptop was connected.
- Physical control: Relocate or lock the switch in a secured enclosure inaccessible to visitors/reception-area foot traffic.
- Technical control: Implement 802.1X port-based network access control so that even a physically accessible port refuses network access to unauthorized/unrecognized devices.
- Reasoning: This is primarily a physical-security finding, but the most resilient recommendation pairs the physical fix (restricting access to the hardware) with a technical compensating control (802.1X) that would still protect the network even if physical access controls are later bypassed or degraded — defense in depth in action.
Scenario C — Finding: Multiple internet-facing services were found running outdated software versions with several publicly known critical CVEs, none patched despite fixes having been available for over a year.
- Administrative control: A formal Patch and Vulnerability Management Policy defining ownership and SLA-based patch timelines by severity.
- Operational control: A recurring vulnerability scanning cadence with a tracked remediation workflow ensuring identified patches are actually applied and verified within policy SLAs, not just identified and forgotten.
- Technical control: Immediate application of the specific missing patches to remediate the currently exploitable CVEs, plus (where feasible) enabling automatic updates for non-critical systems where operational risk of automatic patching is acceptable.
- Reasoning: This finding requires an immediate technical fix for the currently exploitable issue, but a report that stops there fails the client — the real story is a systemic patch management gap, and the administrative/operational recommendations are what actually prevent recurrence.
Key Practice Takeaway
Strong remediation recommendations are rarely single-category. The discipline being practiced here is asking, for every finding: What immediate technical action closes this specific exposure? What underlying policy or process failure allowed it to exist? What ongoing operational routine would catch it (or similar issues) going forward? Does a physical dimension apply at all? — and then writing recommendations that address as many relevant layers as genuinely apply, prioritized clearly (immediate/technical fix first, systemic administrative/operational fix as the durable follow-up).
9.2.7 Lab – Recommend Remediation Based on Findings
Lab Objectives
- Apply the four-category control framework (technical, administrative, operational, physical) to a full, realistic set of findings from a completed assessment.
- Practice writing remediation recommendations that are specific, prioritized, feasible, and correctly categorized — not generic boilerplate.
- Practice recognizing when a single finding warrants a multi-layered, defense-in-depth recommendation versus a straightforward single-control fix.
Suggested Lab Procedure
- Take a completed set of findings (either from a real/sample report examined during the 9.1.9 lab, or from a findings list provided in your own practice environment/CTF write-up).
- For each finding, first identify the true root cause, not just the surface-level technical symptom — ask "why does this exist?" before jumping to "how do I fix the specific instance discovered?"
- Draft a technical control recommendation addressing the immediate, specific exposure.
- Determine whether an administrative control is warranted — would a policy or governance change meaningfully reduce the chance of this entire class of finding recurring? If so, draft it.
- Determine whether an operational control is warranted — is there a recurring process gap that let this persist undetected, or that should be added to catch it (or similar issues) going forward? If so, draft it.
- Determine whether a physical control genuinely applies — resist the urge to force a physical recommendation onto every finding; include it only where it is a legitimately relevant dimension of the exposure.
- Prioritize your combined recommendation set, clearly distinguishing immediate/urgent actions from durable, longer-term systemic fixes — mirroring how this information should ultimately be organized in the report's conclusion/summary-of-recommendations section (9.1.2, item 8).
- Peer-review or self-review your recommendations against the standard established in 9.2.2's "Writing Technical Control Recommendations Well": are they specific rather than generic? Do they acknowledge feasibility and sequencing? Do they reference credible authoritative guidance where appropriate?
PART FOUR — TOPIC 9.3: EXPLAINING THE IMPORTANCE OF COMMUNICATION DURING THE PENETRATION TESTING PROCESS
Topic Objective: Explain the components necessary for communications during the pentest process.
This topic is built from five sub-lessons:
9.3.1 Overview · 9.3.2 Communication Triggers · 9.3.3 Practice – Communication Triggers · 9.3.4 Reasons for Communication · 9.3.5 Goal Reprioritization and Presentation of Findings
9.3.1 Overview
Communication as an Engineering Control, Not Just Courtesy
It is tempting to think of client communication as a "soft skill," secondary to the real technical work of testing. Professionally, this framing is backwards. Communication during a penetration test is itself a risk-management mechanism — a functional safeguard that protects both the client and the testing firm from real, sometimes severe, harm. A penetration test is, by design, an authorized simulation of an attack against live, often production, business-critical systems. Things can and do go wrong: a tester's exploit attempt can crash a fragile legacy service, an aggressive scan can trigger unexpected downstream effects, or — most seriously — testing can inadvertently uncover evidence that the environment is already compromised by a real, unrelated attacker, entirely outside the scope of the engagement. In every one of these situations, the single factor that determines whether the outcome is "a well-handled, professional incident" or "a serious business and legal problem" is how quickly and clearly the tester communicates.
This topic establishes: when communication must happen (Communication Triggers, 9.3.2), why it matters at a deeper professional/legal/relationship level (Reasons for Communication, 9.3.4), and how communication needs shift and formalize as an engagement moves toward its conclusion (Goal Reprioritization and Presentation of Findings, 9.3.5).
A useful mental model introduced here and carried through the rest of the topic: the rules of engagement (RoE) define what you're allowed to do technically; the communication plan defines how you stay accountable and safe while doing it. Both are agreed upon before testing begins, and both must be followed with equal discipline throughout.
9.3.2 Communication Triggers
A communication trigger is any event during an engagement that requires the tester to proactively contact the client (or the client's designated emergency point of contact), rather than simply continuing testing and covering the event later in the final report. Recognizing triggers in real time — often under time pressure, sometimes in the middle of an exciting technical moment — is a critical professional skill. Triggers generally fall into three tiers of urgency.
Critical/Emergency Triggers
These require immediate communication, typically through a pre-agreed emergency contact channel (phone call, not email), often within minutes, because delay itself causes harm:
- Discovery of an active, unrelated compromise — evidence that a real attacker (not the testing team) already has a foothold in the environment. This is arguably the single most serious trigger in the entire discipline: continuing to test without immediately flagging this risks interfering with an active incident, contaminating evidence, or allowing an already-compromised environment to suffer further, unrelated harm while the client remains unaware.
- Discovery of a vulnerability with severe, immediate real-world danger — for example, a finding indicating that patient safety, physical safety, or critical infrastructure availability could be at risk (relevant particularly in healthcare, industrial control systems/OT, or critical infrastructure engagements).
- Unintended significant impact from testing itself — a system crash, unexpected service outage, data corruption, or any other unplanned negative effect directly caused by testing activity, however unintentional.
- Discovery of illegal content or activity unrelated to the security assessment itself (e.g., evidence of activity that testers are professionally and often legally obligated to report), which may also trigger the firm's own legal/ethical escalation procedures beyond just notifying the client contact.
- A finding so critical that immediate exploitation by any external actor would be catastrophic — even though formally "in scope" and not an emergency in the sense of already having gone wrong, some critical/near-catastrophic findings (e.g., trivially exploitable unauthenticated remote code execution on a system holding extremely sensitive data) warrant proactive early notification rather than waiting for the final report, so the client can begin emergency remediation immediately rather than remaining exposed for the remainder of the testing window.
Scope and Process Triggers
These require communication that is prompt but not necessarily "drop everything and call in the next five minutes" — typically same-day, through the normal agreed project communication channel:
- Encountering a system or scenario that appears to be out of the originally agreed scope, whether an unexpected in-scope-looking host that wasn't in the asset list, or a legitimately in-scope host that behaves in a way suggesting scope clarification is needed before proceeding (e.g., discovering that an in-scope IP range actually hosts a third-party SaaS platform not owned by the client, raising questions about legal authorization to test it at all).
- A request or need to deviate from the agreed rules of engagement — for example, wanting to test outside the originally agreed testing window, or needing to use a technique (such as a denial-of-service-adjacent technique) not explicitly pre-authorized.
- Significant blockers preventing progress — for example, discovering that provided credentials for a credentialed assessment don't work, or that a critical in-scope system is unreachable, which may require the client's help to resolve and could affect the timeline.
Routine/Status Triggers
These are the expected, scheduled "heartbeat" communications built into a well-run engagement, rather than reactive events:
- Scheduled status updates (e.g., daily or every-few-days check-ins during a multi-week engagement), keeping the client informed of general progress even when nothing urgent has occurred — this also functions as a safety mechanism, since a client who suddenly stops hearing from the testing team at all may reasonably grow concerned.
- Confirmation of testing start and testing completion, formally bookending the active technical phase.
- Pre-agreed check-ins tied to specific phase transitions (e.g., notifying the client before moving from passive reconnaissance into active exploitation, particularly for cautious or highly risk-sensitive clients).
9.3.3 Practice – Communication Triggers
This practice sub-lesson trains rapid, correct classification of a scenario into the appropriate trigger tier (critical/emergency, scope/process, or routine) and the appropriate response.
Worked Scenarios
Scenario A: While scanning an in-scope subnet, a tester notices unusual outbound traffic patterns and, on closer inspection, finds what appears to be an existing, unrelated backdoor/implant already present on a server — clearly not something the testing team installed.
- Classification: Critical/Emergency trigger.
- Correct response: Stop and immediately contact the client's designated emergency point of contact via the pre-agreed emergency channel (typically phone), clearly and specifically describing what was found, on which system, and why it appears to be pre-existing and unrelated to the current testing activity — then follow the client's direction on how to proceed (which may include pausing testing on that segment entirely while the client's incident response process takes over).
Scenario B: A vulnerability scan against an in-scope host unexpectedly causes the host's application service to crash and become unresponsive.
- Classification: Critical/Emergency trigger (unintended significant impact).
- Correct response: Immediately notify the client, clearly describing exactly what action was taken (the specific scan/test performed) immediately before the crash, to help the client's team diagnose and restore the service as quickly as possible; document the incident thoroughly for later inclusion in the report regardless of how quickly it's resolved.
Scenario C: While enumerating an in-scope IP range, a tester discovers that one of the listed IPs is actually hosting a well-known third-party SaaS platform, not an asset owned or controlled by the client.
- Classification: Scope/Process trigger.
- Correct response: Pause testing against that specific asset and raise the discrepancy with the client's project point of contact the same day, seeking written clarification before any further testing against that host — since testing an asset not actually owned by the client could expose both the client and the testing firm to serious legal liability.
Scenario D: It is day three of a two-week engagement, and testing is proceeding normally with no notable findings yet.
- Classification: Routine/Status trigger.
- Correct response: Send the regularly scheduled status update per the agreed communication cadence, briefly summarizing progress (e.g., phases completed, general areas covered) without needing to escalate anything, reinforcing the client's confidence that the engagement is on track.
Key Practice Takeaway
The discipline being trained is fast, correct triage under real conditions — recognizing, often in the middle of focused technical work, that a discovery has crossed from "interesting finding I'll write up later" into "this requires communication now," and correctly judging how urgently based on genuine potential for harm, not personal excitement about the technical discovery itself. Professional testers err firmly on the side of communicating slightly more than strictly necessary rather than risk under-communicating a genuine emergency trigger.
9.3.4 Reasons for Communication
Beyond simply knowing when to communicate, professional testers understand why consistent communication is a core, non-negotiable part of the discipline, not an optional courtesy.
Legal and Contractual Protection
Communication during testing creates a contemporaneous record demonstrating that the testing team acted responsibly, within scope, and in accordance with the rules of engagement. If any dispute later arises — a client claiming damage was caused by testing, a legal question about whether specific activity was authorized, or a regulator asking whether the engagement was properly overseen — documented, timely communication is often the single most important evidence protecting both the client and the testing firm. This directly extends the "report as evidence of professional rigor" concept introduced in 9.1.1 into the live engagement period, not just the final document.
Maintaining Trust and Professional Relationship
A penetration test necessarily requires the client to extend significant trust to the testing team — trust that testers will act ethically, stay in scope, and represent findings honestly. Consistent, transparent communication throughout the engagement (not just at the very end, in the final report) is what sustains that trust in real time. A client who hears nothing for two weeks and then receives a surprising, alarming final report will reasonably feel blindsided and may lose confidence in the testing firm, regardless of how technically excellent the findings are. A client who has been kept appropriately informed throughout — including being warned in advance about serious findings before they appear formally in the report — experiences the same findings as the natural, expected culmination of a well-managed process.
Enabling Real-Time Risk Management
Some findings are simply too dangerous to sit in a drafted-but-undelivered report for days or weeks while the rest of the engagement continues. Proactive communication of critical findings, ahead of the final report, allows the client to begin remediation immediately — directly reducing real-world organizational risk exposure. This reflects a broader professional principle: the goal of the engagement is genuine risk reduction for the client, not merely production of a polished document — and sometimes achieving that goal requires decoupling urgent information from the formal reporting timeline entirely.
Preserving Engagement Quality and Scope Integrity
Ongoing communication about blockers, ambiguities, and scope questions (the "scope/process triggers" from 9.3.2) directly protects the quality of the final deliverable. A tester who silently works around an ambiguity (e.g., quietly deciding on their own that a borderline system is "probably fine to test") rather than raising it risks either exceeding authorized scope (a serious legal and ethical problem) or unnecessarily limiting the assessment's coverage (reducing the value delivered to the client). Communication resolves these ambiguities in real time, preserving both legal safety and engagement thoroughness.
9.3.5 Goal Reprioritization and Presentation of Findings
Goal Reprioritization
As an engagement progresses — and especially as critical or high-severity findings emerge — the tester's practical priorities often need to shift dynamically, and this shift itself needs to be communicated. Early in an engagement, the primary goal is typically broad coverage: systematically working through the agreed scope to identify as much as possible. Once a severe finding is discovered (for example, a clear path to full domain compromise), professional judgment may call for reprioritizing — for instance, temporarily focusing effort on more fully documenting and confirming the severe finding (ensuring it is unambiguous, well-evidenced, and clearly understood) rather than mechanically continuing to check remaining lower-priority boxes on the original test plan. This reprioritization decision should itself typically be communicated to the client or project lead, especially if it will affect the overall timeline or coverage of other originally planned testing areas — transparency about how the tester is spending the remaining engagement time is part of the same communication discipline covered throughout this topic.
Goal reprioritization can also be driven by the client's own input — for example, if a routine status update reveals that a particular business unit or system has recently become higher priority for the client (perhaps due to an upcoming compliance audit or a recent industry-wide vulnerability disclosure affecting technology they use), and the client requests that testing emphasis shift accordingly, within the bounds of the originally agreed scope and rules of engagement.
Presentation of Findings
As an engagement nears its conclusion, communication shifts from ad hoc triggers and routine status updates toward a more formal presentation of findings, which typically precedes final written report delivery and serves several purposes:
- Preview and context-setting — giving the client's team a first look at major findings verbally/interactively, so the written report (which the client may share more broadly within their organization) doesn't land as a first, unfiltered surprise.
- Clarification opportunity — allowing the client's technical staff to ask immediate questions, provide context the tester may not have had (e.g., "that system is scheduled for decommissioning next month," which may affect prioritization framing in the final report), or flag any apparent factual inaccuracy before the report is finalized.
- Tailoring delivery to the audience — a findings presentation, especially one involving both executive and technical stakeholders, requires the same audience-layering discussed in 9.1.1: leading with business impact and overall risk posture for less technical attendees, while being prepared to go deep into technical specifics for engineering staff in the room or in a separate, more technical walkthrough session.
- Setting expectations for the written deliverable — clarifying what will be included in the final report, the expected delivery timeline, and next steps (such as a planned retest, discussed further in Topic 9.4).
A well-run findings presentation is, in effect, a live rehearsal of the report's own audience-layering principle, delivered synchronously and interactively rather than as a static document — and it is often where a client's overall impression of the engagement's professionalism is most strongly formed, since it is frequently the only point in the entire engagement where senior client stakeholders interact directly and in real time with the testing team.
PART FIVE — TOPIC 9.4: EXPLAINING POST-REPORT DELIVERY ACTIVITIES
Topic Objective: Explain necessary processes to complete the pentesting engagement.
This topic is built from four sub-lessons:
9.4.1 Overview · 9.4.2 Post-Engagement Cleanup · 9.4.3 Additional Post-Report Delivery Activities · 9.4.4 Practice – Post Report Delivery
9.4.1 Overview
The Engagement Isn't Over When the Report Is Sent
There is a natural but professionally incorrect instinct to treat delivery of the final report as the finish line of a penetration test. In reality, a genuinely complete, professional engagement includes a defined set of activities that occur after the report has been delivered (and often after it has been formally accepted by the client), closing out the engagement responsibly. Skipping or rushing these activities is one of the more common ways firms damage an otherwise strong technical engagement — leaving residual tools or access on client systems, failing to securely dispose of sensitive engagement data, or simply disappearing after invoicing, without offering the follow-up support (retesting, debrief, attestation) that clients reasonably expect from a professional services relationship.
This topic covers what "finishing properly" actually requires: returning tested systems to their pre-engagement state (Post-Engagement Cleanup, 9.4.2), and the broader set of closing activities — debriefs, retesting, secure destruction, attestation, and internal retrospectives — that professionally round out the engagement (Additional Post-Report Delivery Activities, 9.4.3).
9.4.2 Post-Engagement Cleanup
What Must Be Cleaned Up
During active testing — particularly exploitation and post-exploitation phases — testers frequently create artifacts on client systems that must not be left behind once testing concludes, because leaving them in place would represent a genuine, unauthorized security exposure (effectively leaving real backdoors in the client's environment, indistinguishable in risk terms from ones a real attacker might leave). A thorough post-engagement cleanup checklist typically includes:
- Shells, backdoors, and implants — any reverse shells, web shells, or persistence mechanisms (scheduled tasks, cron jobs, registry run keys, malicious services) established during exploitation must be identified and removed.
- Created user accounts or credentials — any accounts created by the testing team for persistence or lateral movement purposes must be deleted; any legitimate account passwords changed for testing purposes should be reset or coordinated with the client.
- Uploaded tools and files — payloads, exploitation frameworks, scripts, or utility binaries uploaded to target systems during testing must be removed, not left sitting on disk.
- Configuration changes made during testing — for example, firewall rules temporarily modified to facilitate testing, or services temporarily enabled/disabled, must be reverted to their original state (with client coordination, since some changes may need to be handled jointly to avoid accidentally reverting something the client separately changed during the engagement).
- Log entries specific to testing activity — depending on the engagement agreement, testers may need to help the client identify which log entries correspond to authorized testing activity (to avoid confusing future incident investigations), though testers should never delete legitimate system logs, as doing so would itself constitute evidence tampering and a serious ethical/legal violation — the distinction between documenting which entries were test-generated versus deleting logs is critical and must never be blurred.
How Cleanup Is Tracked and Verified
Professional practice treats cleanup with the same rigor as note-taking during active testing (9.1.6): every artifact created during the engagement should have been logged in real time (which system, what was installed/created, when), specifically so that cleanup at the end is a matter of working through a known, complete checklist rather than trying to remember, after the fact, everything that was done across a multi-week engagement. Many firms require:
- A formal cleanup checklist or log, cross-referenced against the engagement notes, confirming every created artifact has been verifiably removed.
- Client sign-off/verification — ideally, the client's own team independently confirms (or is given the opportunity to confirm) that systems have been returned to their expected state, rather than relying solely on the testing team's self-attestation.
- Explicit documentation of anything that could not be fully cleaned up (rare, but possible — for example, a configuration change that cannot be safely reverted without a maintenance window) with a clear plan and timeline for resolving it.
9.4.3 Additional Post-Report Delivery Activities
Beyond the technical cleanup covered in 9.4.2, a complete engagement close-out typically involves several further activities:
Client Debrief / Report Walkthrough
A formal (often video or in-person) walkthrough of the final written report with the client's stakeholders, distinct from the earlier informal findings presentation (9.3.5) — this session focuses specifically on the finished, final document, answering any remaining questions, and often kicking off remediation planning discussions directly.
Retesting / Validation of Fixes
Many engagements include, either as part of the original scope or as a follow-on service, a retest — a focused reassessment, conducted after the client has implemented remediation, specifically validating whether previously identified findings have actually been fixed. Retesting is professionally valuable because it closes the loop: it verifies that recommendations from 9.2 were not just theoretically sound but were actually implemented correctly (a surprisingly common gap — remediation that looks correct on paper but was implemented incompletely, or that introduced a new, subtly different vulnerability). Retest results are typically documented in a supplemental retest report or an updated status table added to the original report, tracking each finding's status (e.g., Remediated / Partially Remediated / Not Remediated / Risk Accepted).
Attestation Letters
For compliance-driven engagements (e.g., PCI DSS), clients frequently need a formal, short attestation letter — a signed document from the testing firm confirming that a penetration test was performed, over what dates, against what scope, and (often) confirming successful remediation of critical/high findings following a retest — distinct from the full technical report, since the attestation letter is often the specific artifact clients need to submit to an auditor or regulator, without disclosing the full sensitive technical report contents to that third party.
Secure Data Destruction
As covered in depth in 9.1.4, once the agreed retention period concludes (and often immediately after final report acceptance and any retest, if the client does not require longer retention), all engagement data — reports, raw notes, evidence, scan output, and especially any credentials or sensitive data obtained during testing — must be securely and verifiably destroyed, sometimes with a formal destruction certificate provided to the client as part of engagement close-out.
Lessons Learned / Internal Retrospective
Mature testing teams and firms conduct an internal retrospective after significant engagements — reviewing what went well, what communication or technical challenges arose, whether the methodology could be improved, and whether any process gaps (in scoping, communication, reporting, or cleanup) should be addressed before the next engagement. This is a quality-improvement activity distinct from anything delivered to the client, but it is a hallmark of a professionally mature testing practice, and it directly feeds continuous improvement of the very processes covered throughout this entire module.
Archival of Final Deliverables Per Contract
Distinct from the sensitive raw data that gets destroyed, many contracts require the testing firm to retain a minimal, appropriately secured archival record (e.g., simply that an engagement occurred, its dates, and high-level scope — sometimes even just the invoice and signed statement of work) for legal, business-record, and potential future-reference purposes, even after the sensitive technical content itself has been destroyed. The distinction between "sensitive technical data" (destroyed) and "minimal business record" (retained per standard business recordkeeping practice) is an important nuance of this closing phase.
9.4.4 Practice – Post Report Delivery
Worked Scenarios
Scenario A: Testing concludes and the final report has been delivered. Three weeks later, the client's IT team discovers an unfamiliar scheduled task on a server that turns out to be a persistence mechanism the testing team forgot to remove.
- What went wrong: Post-engagement cleanup (9.4.2) was incomplete, and — worse — it was not caught because it wasn't verified against a real-time engagement log.
- Correct practice going forward: Every artifact created during testing must be logged the moment it is created (reinforcing 9.1.6), cleanup must be performed against that complete log rather than memory, and ideally the client independently verifies system state before the engagement is considered formally closed.
Scenario B: A client remediates all critical and high findings from a report but never requests a retest, instead simply marking the tickets "resolved" internally based on their own team's belief that the fixes were applied correctly.
- What's at risk: Without independent retesting, there is no verification that the remediation was actually effective — internal teams sometimes believe an issue is fixed when it has only been partially addressed, or when the fix introduced a new, different flaw.
- Correct practice going forward: The testing firm should proactively recommend a retest (even if not contractually mandatory) for critical/high findings specifically, framing it as protecting the client's own risk posture, not merely as an additional billable service.
Scenario C: A testing firm delivers the final report and immediately, without further conversation, sends the final invoice, considering the engagement complete.
- What's missing: No formal debrief/walkthrough was offered, no discussion of retesting occurred, and no explicit conversation about the data retention/destruction timeline took place.
- Correct practice going forward: Engagement close-out should be treated as a defined final phase with its own checklist (cleanup verification, debrief, retest offer, retention/destruction timeline communicated, lessons-learned captured internally) — not simply "send report, send invoice, done."
PART SIX — 9.5 SUMMARY
9.5.1 What Did I Learn in This Module?
This module — Reporting and Communication — covered the full arc of what happens once active technical testing winds down: turning raw discoveries into a professional, trustworthy deliverable; communicating responsibly throughout the life of the engagement; and properly closing out the engagement afterward. The module's four core topics, reviewed together, form a single, coherent professional discipline:
Comparing and Contrasting Important Components of Written Reports (9.1): A professional penetration testing report is a carefully layered document serving multiple, distinct audiences simultaneously — executives who need business risk in plain language, and engineers who need precise, reproducible technical detail. It is built from a defined, recurring skeleton: a cover page and document control, an executive summary synthesizing overall risk and major themes, a scope and methodology section establishing what was (and wasn't) tested and how, a transparent risk-rating methodology (typically anchored in CVSS), detailed and fully evidenced individual findings, an attack narrative connecting findings into realistic compromise chains where relevant, a prioritized conclusion, and supporting appendices. Because the report is simultaneously the client's most valuable deliverable and one of the most sensitive documents they will ever receive, this topic also established the parallel discipline of secure storage, controlled distribution (via encrypted, two-channel delivery), defined retention, and eventual verifiable destruction — alongside the foundational, continuous professional habit that makes any of this possible in the first place: rigorous, real-time note-taking. Finally, this topic introduced root-cause and thematic analysis — the senior-level skill of recognizing when multiple individually "minor" findings actually share a single systemic origin, and elevating that insight into the report's executive-level messaging.
Analyzing the Findings and Recommending the Appropriate Remediation Within a Report (9.2): Identifying a vulnerability is only half of the professional's job; recommending the right fix is the other half, and it is a distinct analytical skill. This topic introduced the four-category control framework — technical, administrative, operational, and physical — as the structured lens through which every remediation recommendation should be evaluated, and emphasized that the strongest, most durable recommendations are frequently layered across multiple categories (defense in depth) rather than confined to a single quick technical patch. Administrative and operational controls, in particular, were shown to carry outsized long-term value, because they address root causes and prevent entire classes of future findings, rather than merely closing the single instance discovered during this specific engagement.
Explaining the Importance of Communication During the Penetration Testing Process (9.3): Communication is not a soft, secondary skill in penetration testing — it is a functional safety and risk-management mechanism in its own right. This topic established a tiered framework of communication triggers (critical/emergency, scope/process, and routine), each demanding a different urgency of response, and explored the deeper reasons communication matters throughout an engagement: legal and contractual protection, the preservation of client trust, enabling real-time risk reduction (rather than letting dangerous findings sit undisclosed until a final report), and protecting the integrity and quality of the assessment itself. It also covered how communication needs evolve as an engagement matures — from reactive, trigger-based updates early on, toward deliberate goal reprioritization and, ultimately, a formal, audience-tailored presentation of findings that previews and contextualizes the written report before it is finalized and more broadly distributed.
Explaining Post-Report Delivery Activities (9.4): A penetration test is not complete the moment the report is emailed. This topic covered the full close-out phase: thorough, verifiable post-engagement cleanup (removing every tool, shell, account, and configuration change introduced during testing, tracked against the same real-time notes emphasized throughout the module) and the broader set of professional close-out activities — client debriefs, retesting to verify that remediation was actually effective, formal attestation letters for compliance-driven engagements, secure destruction of sensitive engagement data once retention periods conclude, and internal lessons-learned retrospectives that drive continuous improvement of the testing practice itself.
Taken together, this module's central thesis is that technical skill in exploitation is necessary but not sufficient for professional penetration testing. The tester's ultimate value to a client is measured by the quality, clarity, and actionability of the report; by the professionalism and responsiveness of communication throughout the engagement; and by the discipline shown in properly, safely, and completely closing out the engagement afterward. A tester who masters this module has completed the transition from a technically capable hacker to a genuinely professional security consultant.
9.5.2 Reflection Questions
The following questions are designed to consolidate this module's material through applied reasoning. Each is addressed below with the depth expected of someone preparing to write professional-grade reports in a real organizational setting.
1. Why is it important that the final report is of the highest possible quality?
The report is not a summary of the engagement — it is, functionally, the engagement's entire deliverable value, and the only artifact most of the client's organization will ever directly experience. Every hour spent on reconnaissance, exploitation, and privilege escalation only converts into real business value if it is captured accurately, communicated clearly, and structured so the client can actually act on it. A technically brilliant test paired with a poorly written report fails the client in the way that matters most: it leaves them unable to efficiently understand and reduce their risk. Beyond the immediate engagement, report quality is also the primary driver of a testing firm's reputation, its ability to win repeat business, and its ability to generate referrals — clients remember and recommend firms based overwhelmingly on the clarity and usefulness of what they received in writing, not on unobservable technical virtuosity behind the scenes. Finally, the report functions as evidence of professional rigor and due diligence; a sloppy, vague, or poorly evidenced report undermines the credibility of the entire assessment and can become a serious liability if ever scrutinized during an audit, breach investigation, or legal dispute. High report quality is, in short, the mechanism by which technical excellence is converted into real, defensible, actionable client value — and its absence can waste an otherwise excellent technical engagement entirely.
2. How does the report need to accommodate the diverse needs of stakeholders such as managers and technical staff?
A single report must function as multiple documents in one, because it will be read by fundamentally different audiences seeking fundamentally different information. This is solved through deliberate layering and hierarchy, not by writing a single undifferentiated technical narrative and hoping every reader extracts what they need. At the top sits the executive summary — written in plain business language, free of technical jargon, focused on overall risk posture, major systemic themes, and business impact, designed so a board member or non-technical executive can read only this section and still walk away understanding the organization's true risk level and how urgently it needs to act. Beneath that sits the detailed findings section — precise, technical, evidenced, and complete with exact reproduction steps, aimed squarely at the engineers, system administrators, and developers who will actually implement fixes and who need enough specificity to act without guessing. Supporting structural elements bridge these two audiences: risk ratings anchored in a transparent, defensible methodology (like CVSS) give both technical and non-technical readers a common, comparable language for severity; business-impact statements attached to every technical finding translate exploit mechanics into consequences a manager can act on (budget, priority, timeline); and the consolidated, prioritized recommendations section gives decision-makers a clear, actionable roadmap without needing to personally parse every individual technical finding. In effect, a well-constructed report is designed to be read selectively and differently by different people, with each layer written in the appropriate register for its intended audience, while all layers remain internally consistent and cross-referenced to one another.
3. What kind of recommendations should appear in the report? Where should that information come from?
Recommendations must go well beyond generic, reflexive advice ("patch the system," "use strong passwords") and instead be specific, feasible, and correctly matched to the true root cause of each finding — not merely its surface-level symptom. As established in Topic 9.2, effective recommendations are reasoned through a structured, four-category control framework — technical (the specific, precise fix for the immediate vulnerability itself), administrative (the policy or governance change that prevents the underlying class of issue from recurring), operational (the ongoing procedural routine that keeps controls effective and catches future instances), and physical, where genuinely relevant. Strong recommendations are frequently layered across more than one of these categories, reflecting defense-in-depth thinking rather than relying on a single, potentially fragile fix. This information should be grounded in several sources: the tester's own direct technical validation of what would actually remediate the specific vulnerability observed (not a guess); authoritative external references such as vendor security advisories, OWASP guidance, and configuration hardening benchmarks like the CIS Benchmarks, which give the client's engineers a credible, detailed source to implement against; the tester's broader professional experience recognizing systemic and root-cause patterns across the full set of findings (as covered in 9.1.7's root-cause/theme analysis); and, where available, direct context from the client themselves — since communication throughout the engagement (Topic 9.3) often surfaces environmental context, constraints, or priorities that should meaningfully shape how a recommendation is framed and sequenced for that specific organization, rather than issuing purely generic, one-size-fits-all guidance.
4. After the final report has been approved, what activities are involved in restoring tested systems, and what should be done with any sensitive data or information copied from the client's systems?
Restoring systems requires a thorough, verified post-engagement cleanup, as detailed in Topic 9.4: removing every shell, backdoor, and persistence mechanism established during exploitation; deleting any user accounts created for testing purposes; removing all uploaded tools, scripts, and payloads left on target systems; and reverting any configuration changes made specifically to facilitate testing, ideally coordinated with the client to avoid conflicting with the client's own separate changes. Critically, this cleanup must never involve deleting or altering legitimate system logs — testers may document which log entries correspond to authorized testing activity to assist future investigations, but tampering with logs themselves would constitute serious evidence tampering. This entire process is only reliably possible because of disciplined, real-time note-taking throughout the engagement (Topic 9.1); cleanup should be executed against a known, complete checklist derived from those notes, not reconstructed from memory, and ideally the client independently verifies that systems have returned to their expected state before the engagement is considered fully closed. Regarding sensitive data and information copied or extracted from the client's systems during testing — including credentials, password hashes, sensitive documents, database extracts, or any other client data obtained as evidence — this must be handled with the same rigor described for the report itself in 9.1.4: stored securely (encrypted, access-controlled, least-privilege) for only as long as contractually and legally necessary, and then securely and verifiably destroyed at the end of the agreed retention period, sometimes with a formal certificate of destruction provided to the client. Any credentials obtained during testing should, at minimum, be flagged to the client so they can independently rotate them, since the client should never simply trust that the testing firm's copy was the only copy ever created or that it has, in fact, been destroyed on schedule — verification and transparency remain the guiding principles all the way through to the very end of the engagement.
Top comments (0)