def parsing_ouput(self): utils.print_good('Parsing result found to a file') final_result = utils.replace_argument( self.options, '$WORKSPACE/directory/$OUTPUT-summary.txt') # dirsearch part dirsearch_files = utils.list_files(self.options['WORKSPACE'] + '/directory/quick', pattern='*-dirsearch.txt') for file in dirsearch_files: data = utils.just_read(file) if data: utils.just_append(final_result, data) # wfuzz part wfuzz_files = utils.list_files(self.options['WORKSPACE'] + '/directory/quick', pattern='*-wfuzz.json') for file in wfuzz_files: data_json = utils.reading_json(file) if data_json: data = "\n".join([x.get("url") for x in data_json]) utils.just_append(final_result, data) # final_result utils.clean_up(final_result) utils.check_output(final_result)
def parsing_to_csv(self): nmap_detail_path = utils.replace_argument( self.options, '$WORKSPACE/vulnscan/details') # create all csv based on xml file for file in utils.list_files(nmap_detail_path, ext='xml'): # print(file) cmd = "python3 $PLUGINS_PATH/nmap-stuff/nmap_xml_parser.py -f {0} -csv $WORKSPACE/vulnscan/details/$OUTPUT-nmap.csv".format( file) cmd = utils.replace_argument(self.options, cmd) csv_output = utils.replace_argument( self.options, '$WORKSPACE/vulnscan/details/$OUTPUT-nmap.csv') # just return if this was done without checking anything if utils.not_empty_file(csv_output): return execute.send_cmd(self.options, cmd, csv_output, '', self.module_name) time.sleep(5) # looping through all csv file all_csv = "IP,Host,OS,Proto,Port,Service,Product,Service FP,NSE Script ID,NSE Script Output,Notes\n" for file in utils.list_files(nmap_detail_path, ext='csv'): all_csv += "\n".join(utils.just_read(file).splitlines()[1:]) csv_summary_path = utils.replace_argument( self.options, '$WORKSPACE/vulnscan/summary-$OUTPUT.csv') utils.just_write(csv_summary_path, all_csv) utils.print_line() # beautiful csv look cmd = "csvcut -c 1-7 $WORKSPACE/vulnscan/summary-$OUTPUT.csv | csvlook --no-inference | tee $WORKSPACE/vulnscan/std-$OUTPUT-summary.std" cmd = utils.replace_argument(self.options, cmd) output_path = utils.replace_argument( self.options, '$WORKSPACE/vulnscan/std-$OUTPUT-summary.std') execute.send_cmd(self.options, cmd, output_path, '', self.module_name) self.screenshots(all_csv)