■ ■ ■ ■ ■ ■
contrib/report_builders/latex_report_builder.py
| skipped 25 lines |
26 | 26 | | + start_date |
27 | 27 | | + 'UTC.\n\\begin{lstlisting}\n' |
28 | 28 | | + nmap_command |
29 | | - | + '\n\end{lstlisting}\nTo find out what IPs were scanned see the end of this report.\n') |
| 29 | + | + '\n\\end{lstlisting}\nTo find out what IPs were scanned see the end of this report.\n') |
30 | 30 | | |
31 | 31 | | def build(self) -> Any: |
32 | 32 | | return self.buffer |
| skipped 4 lines |
37 | 37 | | |
38 | 38 | | def add_vulnerable_services(self, scan_results: Dict[str, ScanResult]): |
39 | 39 | | for s, report in scan_results.items(): |
40 | | - | self._append('\item \\textbf{\large ' + s + ' \large}') |
| 40 | + | self._append('\\item \\textbf{\\large ' + s + ' \\large}') |
41 | 41 | | vulns = report.vulns |
42 | 42 | | locations = report.locations |
43 | 43 | | num_vulns = len(vulns) |
| skipped 7 lines |
51 | 51 | | + '} \\begin{tabular}{@{}p{15cm}>{\\raggedleft\\arraybackslash} p{0.5cm}@{}}\\textbf{' |
52 | 52 | | + v.name + ' ' + severity_name + ' (' |
53 | 53 | | + str(v.severity) |
54 | | - | + ')} & \href{' + description.url |
55 | | - | + '}{\large \\faicon{link}}' |
56 | | - | + '\end{tabular}\\\\\n Summary:' |
| 54 | + | + ')} & \\href{' + description.url |
| 55 | + | + '}{\\large \\faicon{link}}' |
| 56 | + | + '\\end{tabular}\\\\\n Summary:' |
57 | 57 | | + description.text |
58 | | - | + '\\\\ \hline \end{tabular} ') |
59 | | - | self._append('\end{figure}\n') |
| 58 | + | + '\\\\ \\hline \\end{tabular} ') |
| 59 | + | self._append('\\end{figure}\n') |
60 | 60 | | |
61 | | - | self._append('\FloatBarrier\n\\textbf{The above ' |
| 61 | + | self._append('\\FloatBarrier\n\\textbf{The above ' |
62 | 62 | | + str(num_vulns) |
63 | 63 | | + ' vulnerabilities apply to these network locations:}\n\\begin{itemize}\n') |
64 | 64 | | for addr in locations: |
65 | | - | self._append('\item ' + addr + ' Ports: ' + str(locations[addr]) + '\n') |
66 | | - | self._append('\\\\ \\\\ \n \end{itemize}\n') |
67 | | - | self._append('\end{enumerate}\n') |
| 65 | + | self._append('\\item ' + addr + ' Ports: ' + str(locations[addr]) + '\n') |
| 66 | + | self._append('\\\\ \\\\ \n \\end{itemize}\n') |
| 67 | + | self._append('\\end{enumerate}\n') |
68 | 68 | | |
69 | 69 | | def add_non_vulnerable_services(self, scan_results: Dict[str, ScanResult]): |
70 | 70 | | for app_name, result in scan_results.items(): |
71 | | - | self._append('\item \\textbf{\large ' + app_name + ' \large}\n\\begin{itemize}\n') |
| 71 | + | self._append('\\item \\textbf{\\large ' + app_name + ' \\large}\n\\begin{itemize}\n') |
72 | 72 | | locations = result.locations |
73 | 73 | | for addr in locations: |
74 | | - | self._append('\item ' + addr + ' Ports: ' + str(locations[addr]) + '\n') |
75 | | - | self._append('\end{itemize}\n') |
76 | | - | self._append('\end{enumerate}\n') |
| 74 | + | self._append('\\item ' + addr + ' Ports: ' + str(locations[addr]) + '\n') |
| 75 | + | self._append('\\end{itemize}\n') |
| 76 | + | self._append('\\end{enumerate}\n') |
77 | 77 | | |
78 | 78 | | def initialize_section(self): |
79 | | - | self._append('\\begin{enumerate}[wide, labelwidth=!, labelindent=0pt, label=\\textbf{\large \\arabic{enumi} ' |
80 | | - | '\large}]\n') |
| 79 | + | self._append('\\begin{enumerate}[wide, labelwidth=!, labelindent=0pt, label=\\textbf{\\large \\arabic{enumi} ' |
| 80 | + | '\\large}]\n') |
81 | 81 | | |
82 | 82 | | def add_vulnerable_section(self): |
83 | | - | self._append('\section*{Services with Vulnerabilities}') |
| 83 | + | self._append('\\section*{Services with Vulnerabilities}') |
84 | 84 | | |
85 | 85 | | def add_non_vulnerable_section(self): |
86 | | - | self._append('\section*{Services With No Known Vulnerabilities}') |
| 86 | + | self._append('\\section*{Services With No Known Vulnerabilities}') |
87 | 87 | | |
88 | 88 | | def add_ips_section(self): |
89 | | - | self._append('\section*{List of IPs Scanned}') |
| 89 | + | self._append('\\section*{List of IPs Scanned}') |
90 | 90 | | self._append('\\begin{itemize}\n') |
91 | 91 | | |
92 | 92 | | def add_ip_address(self, ip: str): |
93 | | - | self._append('\item ' + ip + '\n') |
| 93 | + | self._append('\\item ' + ip + '\n') |
94 | 94 | | |
95 | 95 | | def finalize(self): |
96 | | - | self._append('\end{itemize}\n') |
97 | | - | self._append('\end{document}') |
| 96 | + | self._append('\\end{itemize}\n') |
| 97 | + | self._append('\\end{document}') |
98 | 98 | | |
99 | 99 | | def _append(self, text: str): |
100 | 100 | | self.buffer += text |
| skipped 27 lines |