Report Creation

Objectives: By the end of this topic, you will be able to…

  • Properly document a technical activity
  • Organize findings with clarity and order
  • Produce reproducible and exportable reports
  • Recognize the importance of professional reports in audits and pentests

Why is it important to know how to write cybersecurity reports?

An excellent technical analysis loses value if it is not communicated well. In cybersecurity, reports are the primary means of documenting findings in audits, pentests, or forensic analyses, recommending mitigation actions, and communicating risks to non-technical stakeholders such as executives or management. They also serve as evidence records in legal or regulatory contexts.

“If it is not documented, it does not exist.”


Structure of a cybersecurity technical report

SectionContents
Cover / TitleName of analysis, author, date, confidentiality
Table of contentsFor fast navigation of the document
IntroductionObjective of the analysis, scope, client context
Scope & Rules of EngagementTesting boundaries, authorized targets, exclusions, legal constraints, and agreed-upon limitations
MethodologyTechniques, tools and sources used
FindingsDetailed list of vulnerabilities with description, evidence, impact, severity, and mitigation
ConclusionsTechnical summary of the security status
AppendicesExtensive details, complete outputs, scripts, configuration

Differences between technical and executive reports

CharacteristicTechnical ReportExecutive Report
AudienceSecurity teams, sysadminsManagers, directors, customers
LanguageSpecific, with technical terminologyClear, simplified, impact oriented
ContentsTechnical details, commands, evidencesSummary of findings and business implications
LengthLong (may include appendices)Short (2-4 pages max.)

Both reports may be derived from the same work, but should be written with different objectives in mind.


Best practices for technical writing

Good technical writing demands clarity, consistency, and objectivity: use precise, unambiguous language; apply consistent terminology throughout; and base all statements on facts and evidence rather than speculation or personal judgment. On the formatting side, maintain a clean structure with tables, numbering, and styles that aid navigation, include exact commands, tool versions, and configurations for full reproducibility, and cite relevant CVEs, standards (OWASP, MITRE), and tool documentation to support your findings.

A good report not only shows a problem, but also how it was discovered and how to solve it.


Evidence collection and organization

Technical evidence takes many forms: screenshots of terminals, browsers, or tools; file hashes, traffic logs, and activity logs; configuration files or scripts used; and raw command output from tools like nmap, whois, and dig. Regardless of type, every piece of evidence should be named clearly and stored in an orderly structure, captured at the moment of discovery without alteration, timestamped or annotated with context, and accompanied by a SHA-256 hash to verify its integrity later. Each screenshot should appear alongside explanatory text so that anyone reading the report can understand what it shows without having to ask.


Tools for generating professional reports

ToolDescription
MarkdownLightweight language ideal for reproducible technical documentation
Typora / Obsidian / VS CodeMarkdown-friendly editors with PDF export
LaTeXFor academic reports or reports with complex formatting
LibreOffice / WordVisual templates for executive or formal reports
CherryTreeStructured technical notes during the analysis
FlameshotQuick screenshots with annotations

Document from the beginning of the analysis, not at the end. The report is a process that runs parallel to the technical investigation.


Hands-on lab

Requirements: Kali Linux, Metasploitable 2 (deployment guide), CherryTree

Part 1: Structure and analysis of technical reports

  1. Review the example of a simulated technical report
  2. With your partner, identify and discuss the purpose of each section

Part 2: Capturing and documenting evidences

  1. Deploy the Metasploitable 2 machine using the attached guide
  2. Execute a controlled network scan:
nmap -sS -A -T4 192.168.1.10 -oN nmap_scan.txt
  1. Analyze and highlight findings: open ports, service versions, known vulnerabilities
  2. Create a findings table:
PortServiceShort descriptionEstimated risk
22SSHService accessible from local networkMedium
80HTTPWebsite with possibly sensitive informationHigh

? Which open port in your findings table represents the highest risk, and why? What additional information would you need to determine whether it is actually exploitable?

Part 3: Organization with CherryTree

  1. Create a .ctd file with the following hierarchy:
Project: Host scanning and analysis
 -- Methodology
 -- Results
 -- Evidences
 -- Recommendations
 -- Notes by tool
  1. Insert screenshots, text snippets with tool outputs, notes and observations

? What criteria did you use to decide which information belongs in each CherryTree node? Would someone who was not present during the scan be able to reconstruct the analysis from your notes alone?

  1. Export to .pdf or .html

Part 4: Best practices for technical writing

  1. Review a draft of a technical finding with your partner and improve clarity, objectivity, and references

? What were the most common clarity or objectivity problems you found in the draft? Why does objectivity matter more in a security report than in other forms of technical writing?

  1. Write at least one full finding using:
Finding title
---------------------
Summary:
Technical description:
Attached evidence:
Recommendations:

Submission

  • PDF report generated using CherryTree (or original .ctd file)
  • Screenshots used as evidence
  • Generated nmap_scan.txt file
  • Technical findings table
  • Personal reflection (max. 1 paragraph)

Key concepts

TermDefinition
CVEStandardized identification system for known vulnerabilities
PentestingAuthorized security assessment that simulates real attacks
Rules of Engagement (RoE)Agreed-upon boundaries defining what can be tested, how, when, and what is excluded, protecting both tester and client
HashFunction that generates a unique fingerprint of a file to verify its integrity
NmapNetwork scanning tool for host and service discovery

Navigation:Previous | Home | Next