Skip to main content

Overview

The PDF Report module (modules/pdf_report.py) generates comprehensive, professional-quality penetration testing reports using ReportLab. Reports include cover pages, executive summaries, technical findings, risk assessments, and remediation recommendations.

PDFReportGenerator Class

Defined at pdf_report.py:17, this class handles all PDF generation.

Initialization

pdf_report.py:18-35
string
required
Target IP address or domain name
number
required
Database scan ID for data retrieval

Report Structure

A complete AutoPentestX report contains 10 sections:
Professional title page with:
  • Report title and classification
  • Target information
  • Scan date and time
  • Tester name
  • Scan ID reference
High-level overview for management:
  • Overall risk rating
  • Total vulnerabilities found
  • Critical findings count
  • Key recommendations
  • Compliance implications
Technical scan information:
  • Target IP/domain
  • Scan duration
  • Operating system detection
  • Number of open ports
  • Scan methodology
Comprehensive port listing:
  • Port number and protocol
  • Service name and version
  • State (open/filtered)
  • Banner information
Detailed vulnerability findings:
  • CVE identifiers
  • CVSS scores
  • Risk severity
  • Affected services
  • Description and impact
Multi-factor risk analysis:
  • Overall risk level
  • Risk score breakdown by port
  • Exploitability analysis
  • Business impact assessment
Web application findings:
  • Nikto scan results
  • SQL injection points
  • XSS vulnerabilities
  • Misconfigurations
Safe mode exploitation results:
  • Matched exploits
  • Simulation outcomes
  • Metasploit RC scripts
  • Proof-of-concept references
Prioritized remediation steps:
  • Critical fixes (immediate)
  • High priority (30 days)
  • Medium priority (90 days)
  • Long-term hardening

Custom Styles

The module creates color-coded styles for risk levels:
pdf_report.py:36-91
Risk Color Coding:
  • CRITICAL: Red (colors.red)
  • HIGH: Orange-red (colors.orangered)
  • MEDIUM: Orange (colors.orange)
  • LOW: Blue (colors.blue)
  • INFORMATIONAL: Gray

Report Generation

generate_report()

Orchestrates the complete report generation process.
pdf_report.py:250-310

Vulnerability Table

Vulnerabilities are displayed in a formatted table:
pdf_report.py:180-220

Usage Example

File Naming Convention

Reports are automatically named using:
Examples:
  • AutoPentestX_Report_192_168_1_100_20240115_143000.pdf
  • AutoPentestX_Report_example_com_20240115_143000.pdf

Customization Options

Custom Tester Name

Page Size

Default: Letter (8.5” x 11”) To change to A4:
pdf_report.py:29

Color Scheme

Modify risk colors in create_custom_styles() method.

PDF Reports Guide

Complete guide to report generation

Report Output

Report structure and sections

Risk Engine

How risk data populates reports

Database

How scan data is retrieved for reports