def generate_csv(self, event): saveas = SaveDialog(self.view, defaultDir=self._save_path, message="Save csv as...").get_choice() if saveas: merged_scans = MergedNessusReport(self.files) if not saveas.endswith(".csv"): saveas = saveas + ".csv" sorted_tree_items = self.sorted_tree_items( merged_scans, merged_scans.criticals + merged_scans.highs + merged_scans.meds + merged_scans.lows + merged_scans.others) with open(saveas, "wb") as f: csv_writer = csv.writer(f) csv_writer.writerow( ["PID", "Severity", "Hosts", "Output", "Diffs"]) for item in sorted_tree_items: csv_writer.writerow([ item.pid, SEVERITY[item.item.severity], "\n".join( x.address for x in merged_scans.hosts_with_pid(item.pid)), self.get_item_output(item)[0], self.get_item_output(item)[1], ])
def generate_csv(self, event): saveas = SaveDialog(self.view, defaultDir=self._save_path, message="Save csv as...").get_choice() if saveas: merged_scans = MergedNessusReport(self.files) if not saveas.endswith(".csv"): saveas = saveas+".csv" sorted_tree_items = self.sorted_tree_items(merged_scans, merged_scans.criticals+merged_scans.highs+merged_scans.meds+merged_scans.lows+merged_scans.others) with open(saveas, "wb") as f: csv_writer = csv.writer(f) csv_writer.writerow(["PID","Severity","Hosts","Output","Diffs"]) for item in sorted_tree_items: csv_writer.writerow([ item.pid, SEVERITY[item.item.severity], "\n".join(x.address for x in merged_scans.hosts_with_pid(item.pid)), self.get_item_output(item)[0], self.get_item_output(item)[1], ] )
def generate_vulnxml(self, event): saveas = SaveDialog(self.view, defaultDir=self._save_path, message="Save VulnXML as...").get_choice() if saveas: merged_scans = MergedNessusReport(self.files) if not saveas.endswith(".xml"): saveas = saveas+".xml" sorted_tree_items = self.sorted_tree_items(merged_scans, merged_scans.criticals+merged_scans.highs+merged_scans.meds+merged_scans.lows+merged_scans.others) with open(saveas, "wb") as f: for item in sorted_tree_items: issue, diffs, meta = self.get_item_output(item) item.issue = meta item.diffs = diffs item.severity = SEVERITY[item.item.severity] f.write(VULNXML_TEMPLATE.render( timestamp=datetime.now(), hosts=merged_scans.hosts, vulns=sorted_tree_items, merged_scans=merged_scans, ) )
def generate_vulnxml(self, event): saveas = SaveDialog(self.view, defaultDir=self._save_path, message="Save VulnXML as...").get_choice() if saveas: merged_scans = MergedNessusReport(self.files) if not saveas.endswith(".xml"): saveas = saveas + ".xml" sorted_tree_items = self.sorted_tree_items( merged_scans, merged_scans.criticals + merged_scans.highs + merged_scans.meds + merged_scans.lows + merged_scans.others) with open(saveas, "wb") as f: for item in sorted_tree_items: issue, diffs, meta = self.get_item_output(item) item.issue = meta item.diffs = diffs item.severity = SEVERITY[item.item.severity] f.write( VULNXML_TEMPLATE.render( timestamp=datetime.now(), hosts=merged_scans.hosts, vulns=sorted_tree_items, merged_scans=merged_scans, ))
def extract_results(self, event): item = self.view.tree.GetSelection() data = self.view.tree.GetItemData(item).GetData() saveas = SaveDialog(self.view, defaultDir=self._save_path, message="Save results as...").get_choice() if saveas: with open(saveas, "w") as f: output = "" if isinstance(data, list): for item in data: output, diff_output, _ = self.get_item_output(item) f.write("=" * 20 + "\n") f.write(output) f.write(diff_output) elif isinstance(data, NessusReport): pass elif isinstance(data, MergedNessusReport): pass