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 atpdf_report.py:17, this class handles all PDF generation.
Initialization
pdf_report.py:18-35
Target IP address or domain name
Database scan ID for data retrieval
Report Structure
A complete AutoPentestX report contains 10 sections:1. Cover Page
1. Cover Page
Professional title page with:
- Report title and classification
- Target information
- Scan date and time
- Tester name
- Scan ID reference
2. Executive Summary
2. Executive Summary
High-level overview for management:
- Overall risk rating
- Total vulnerabilities found
- Critical findings count
- Key recommendations
- Compliance implications
3. Scan Details
3. Scan Details
Technical scan information:
- Target IP/domain
- Scan duration
- Operating system detection
- Number of open ports
- Scan methodology
4. Open Ports Table
4. Open Ports Table
Comprehensive port listing:
- Port number and protocol
- Service name and version
- State (open/filtered)
- Banner information
5. Vulnerabilities
5. Vulnerabilities
Detailed vulnerability findings:
- CVE identifiers
- CVSS scores
- Risk severity
- Affected services
- Description and impact
6. Risk Assessment
6. Risk Assessment
Multi-factor risk analysis:
- Overall risk level
- Risk score breakdown by port
- Exploitability analysis
- Business impact assessment
7. Web Vulnerabilities
7. Web Vulnerabilities
Web application findings:
- Nikto scan results
- SQL injection points
- XSS vulnerabilities
- Misconfigurations
8. Exploitation Assessment
8. Exploitation Assessment
Safe mode exploitation results:
- Matched exploits
- Simulation outcomes
- Metasploit RC scripts
- Proof-of-concept references
9. Recommendations
9. Recommendations
Prioritized remediation steps:
- Critical fixes (immediate)
- High priority (30 days)
- Medium priority (90 days)
- Long-term hardening
10. Disclaimer & Legal Notice
10. Disclaimer & Legal Notice
Legal protection and usage terms:
- Authorized testing statement
- Limitation of liability
- Confidentiality notice
- Report validity period
Custom Styles
The module creates color-coded styles for risk levels:pdf_report.py:36-91
- 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:AutoPentestX_Report_192_168_1_100_20240115_143000.pdfAutoPentestX_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 increate_custom_styles() method.
Related Documentation
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