def action_output_wild_false_hunter(brute_results_dict, sub_intrest, google_results, bing_true_results, linkedin_results, check_count, domain, time_spent_email, time_spent_brute, time_spent_total, emailHunter_results, args, report_location, company, data_mine): info('Output action_output_wild_false_hunter: Start') linkedin_evidence_results = [] email_evidence_results = [] email_results = [] email_seen = [] url_seen = [] person_seen = [] final_emails = [] if emailHunter_results is not None: for email in emailHunter_results: email_results.append(email[0]) email_evidence_results.append((email[0], email[1])) for email, url in google_results: try: e1, e2 = email.split(',') if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(e2).replace(' ', ''), url)) email_evidence_results.append((str(e1).replace(' ', ''), url)) email_results.append((str(e2).replace(' ', ''))) email_results.append((str(e1).replace(' ', ''))) except ValueError: if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(email).replace(' ', ''), url)) email_results.append(str(email).replace(' ', '')) for e, u in bing_true_results: email_results.append(e) if u not in url_seen: email_evidence_results.append((e, u)) for url, person, description in linkedin_results: if person not in person_seen: person_seen.append(person) linkedin_evidence_results.append((url, person, description)) linkedin_evidence_results.sort(key=lambda tup: tup[1]) sorted_email = set(sorted(email_results)) for email in sorted_email: if email == '[]': pass elif email == '@' + domain: pass else: final_emails.append(email) email_count = len(final_emails) staff_count = len(person_seen) f_emails = sorted(final_emails) pwned_results = action_pwned(f_emails) c_accounts = len(pwned_results) print '\n\nEmail Addresses:\n' write_html(email_evidence_results, linkedin_evidence_results, pwned_results, report_location, company, data_mine) if f_emails: for email in f_emails: print '\t' + str(email).replace("u'", "").replace("'", "").replace( '[', '').replace(']', '') else: print '\tNo Data To Be Found' print '\nCompromised Accounts:\n' if pwned_results: sorted_pwned = sorted(pwned_results) for account in sorted_pwned: print 'Account: \t{}'.format(account[0]) print ' Domain: \t{}'.format(account[1]) print ' Date: \t{}\n'.format(account[3]) else: print '\tNo Data To Be Found' print '\nLinkedIn Results:\n' sorted_person = sorted(person_seen) if sorted_person: for person in sorted_person: print person else: print '\tNo Data To Be Found' if data_mine is not None: user_names = data_mine[0] software_list = data_mine[1] download_count = data_mine[2] download_list = data_mine[3] username_count = len(user_names) software_count = len(software_list) print '\nData Found In Document MetaData' print '\nPotential Usernames:\n' if user_names: for user in user_names: print '\t' + colored(user, 'red') else: print '\tNo Data To Be Found' print '\nSoftware And Versions Found:\n' if software_list: for software in software_list: print '\t' + colored(software, 'red') else: print '\tNo Data To Be Found' else: user_names = [] software_list = [] download_count = 0 username_count = len(user_names) software_count = len(software_list) sorted_dict = collections.OrderedDict(sorted(brute_results_dict.items())) bruted_count = len(sorted_dict) print "\nBluto Results: \n" for item in sorted_dict: if item is not '*.' + domain: if item is not '@.' + domain: if item in sub_intrest: print colored(item + "\t", 'red'), colored(sorted_dict[item], 'red') else: print item + "\t", sorted_dict[item] time_spent_email_f = str( datetime.timedelta(seconds=(time_spent_email))).split('.')[0] time_spent_brute_f = str( datetime.timedelta(seconds=(time_spent_brute))).split('.')[0] time_spent_total_f = str( datetime.timedelta(seconds=(time_spent_total))).split('.')[0] print '\nHosts Identified: {}'.format(str(bruted_count)) print 'Potential Emails Found: {}'.format(str(email_count)) print 'Potential Staff Members Found: {}'.format(str(staff_count)) print 'Compromised Accounts: {}'.format(str(c_accounts)) print 'Potential Usernames Found: {}'.format(username_count) print 'Potential Software Found: {}'.format(software_count) print 'Documents Downloaded: {}'.format(download_count) print "Email Enumeration:", time_spent_email_f print "Requests executed:", str(check_count) + " in ", time_spent_brute_f print "Total Time:", time_spent_total_f info('Hosts Identified: {}'.format(str(bruted_count))) info("Email Enumeration: {}".format(str(time_spent_email_f))) info('Compromised Accounts: {}'.format(str(c_accounts))) info('Potential Staff Members Found: {}'.format(str(staff_count))) info('Potential Emails Found: {}'.format(str(email_count))) info("Total Time:".format(str(time_spent_total_f))) info('Documents Downloaded: {}'.format(download_count)) info('DNS No Wild Cards + Email Hunter Run completed') info('Output action_output_wild_false_hunter: Completed') domain_r = domain.split('.') docs = os.path.expanduser('~/Bluto/doc/{}/'.format(domain_r[0])) answers = ['no', 'n', 'y', 'yes'] while True: print colored( "\nWould you like to keep all local data?\n(Local Logs, Downloded Documents, HTML Evidence Report)\n\nYes|No:", "red") answer = raw_input("").lower() if answer in answers: if answer == 'y' or answer == 'yes': domain print '\nThe documents are located here: {}'.format(docs) print 'The logs are located here: {}.'.format(LOG_DIR) print "\nAn evidence report has been written to {}\n".format( report_location) while True: answer = raw_input( "Would you like to open this report now? ").lower() if answer in answers: if answer == 'y' or answer == 'yes': print '\nOpening {}'.format(report_location) webbrowser.open('file://' + str(report_location)) break else: break else: print 'Your answer needs to be either yes|y|no|n rather than, {}'.format( answer) break else: shutil.rmtree(docs) shutil.rmtree(LOG_DIR) os.remove(report_location) break else: print '\tYour answer needs to be either yes|y|no|n rather than, {}'.format( answer)
def action_output_wild_false_hunter(brute_results_dict, sub_intrest, google_results, bing_true_results, linkedin_results, check_count, domain, time_spent_email, time_spent_brute, time_spent_total, emailHunter_results, args, report_location, company, data_mine): info('Output action_output_wild_false_hunter: Start') linkedin_evidence_results = [] email_evidence_results = [] email_results = [] email_seen = [] url_seen = [] person_seen = [] final_emails = [] if emailHunter_results is not None: for email in emailHunter_results: email_results.append(email[0]) email_evidence_results.append((email[0],email[1])) for email, url in google_results: try: e1, e2 = email.split(',') if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(e2).replace(' ',''),url)) email_evidence_results.append((str(e1).replace(' ',''),url)) email_results.append((str(e2).replace(' ',''))) email_results.append((str(e1).replace(' ',''))) except ValueError: if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(email).replace(' ',''),url)) email_results.append(str(email).replace(' ','')) for e, u in bing_true_results: email_results.append(e) if u not in url_seen: email_evidence_results.append((e, u)) for url, person, description in linkedin_results: if person not in person_seen: person_seen.append(person) linkedin_evidence_results.append((url, person, description)) linkedin_evidence_results.sort(key=lambda tup: tup[1]) sorted_email = set(sorted(email_results)) for email in sorted_email: if email == '[]': pass elif email == '@' + domain: pass else: final_emails.append(email) email_count = len(final_emails) staff_count = len(person_seen) f_emails = sorted(final_emails) pwned_results = action_pwned(f_emails) c_accounts = len(pwned_results) print '\n\nEmail Addresses:\n' write_html(email_evidence_results, linkedin_evidence_results, pwned_results, report_location, company, data_mine) if f_emails: for email in f_emails: print '\t' + str(email).replace("u'","").replace("'","").replace('[','').replace(']','') else: print '\tNo Data To Be Found' print '\nCompromised Accounts:\n' if pwned_results: sorted_pwned = sorted(pwned_results) for account in sorted_pwned: print 'Account: \t{}'.format(account[0]) print ' Domain: \t{}'.format(account[1]) print ' Date: \t{}\n'.format(account[3]) else: print '\tNo Data To Be Found' print '\nLinkedIn Results:\n' sorted_person = sorted(person_seen) if sorted_person: for person in sorted_person: print person else: print '\tNo Data To Be Found' if data_mine is not None: user_names = data_mine[0] software_list = data_mine[1] download_count = data_mine[2] download_list = data_mine[3] username_count = len(user_names) software_count = len(software_list) print '\nData Found In Document MetaData' print '\nPotential Usernames:\n' if user_names: for user in user_names: print '\t' + colored(user, 'red') else: print '\tNo Data To Be Found' print '\nSoftware And Versions Found:\n' if software_list: for software in software_list: print '\t' + colored(software, 'red') else: print '\tNo Data To Be Found' else: user_names = [] software_list = [] download_count = 0 username_count = len(user_names) software_count = len(software_list) sorted_dict = collections.OrderedDict(sorted(brute_results_dict.items())) bruted_count = len(sorted_dict) print "\nBluto Results: \n" for item in sorted_dict: if item is not '*.' + domain: if item is not '@.' + domain: if item in sub_intrest: print colored(item + "\t", 'red'), colored(sorted_dict[item], 'red') else: print item + "\t",sorted_dict[item] time_spent_email_f = str(datetime.timedelta(seconds=(time_spent_email))).split('.')[0] time_spent_brute_f = str(datetime.timedelta(seconds=(time_spent_brute))).split('.')[0] time_spent_total_f = str(datetime.timedelta(seconds=(time_spent_total))).split('.')[0] print '\nHosts Identified: {}' .format(str(bruted_count)) print 'Potential Emails Found: {}' .format(str(email_count)) print 'Potential Staff Members Found: {}' .format(str(staff_count)) print 'Compromised Accounts: {}' .format(str(c_accounts)) print 'Potential Usernames Found: {}'.format(username_count) print 'Potential Software Found: {}'.format(software_count) print 'Documents Downloaded: {}'.format(download_count) print "Email Enumeration:", time_spent_email_f print "Requests executed:", str(check_count) + " in ", time_spent_brute_f print "Total Time:", time_spent_total_f info('Hosts Identified: {}' .format(str(bruted_count))) info("Email Enumeration: {}" .format(str(time_spent_email_f))) info('Compromised Accounts: {}' .format(str(c_accounts))) info('Potential Staff Members Found: {}' .format(str(staff_count))) info('Potential Emails Found: {}' .format(str(email_count))) info("Total Time:" .format(str(time_spent_total_f))) info('Documents Downloaded: {}'.format(download_count)) info('DNS No Wild Cards + Email Hunter Run completed') info('Output action_output_wild_false_hunter: Completed') domain_r = domain.split('.') docs = os.path.expanduser('~/Bluto/doc/{}/'.format(domain_r[0])) answers = ['no','n','y','yes'] while True: print colored("\nWould you like to keep all local data?\n(Local Logs, Downloded Documents, HTML Evidence Report)\n\nYes|No:", "red") answer = raw_input("").lower() if answer in answers: if answer == 'y' or answer == 'yes': domain print '\nThe documents are located here: {}'.format(docs) print 'The logs are located here: {}.'.format(LOG_DIR) print "\nAn evidence report has been written to {}\n".format(report_location) while True: answer = raw_input("Would you like to open this report now? ").lower() if answer in answers: if answer == 'y' or answer == 'yes': print '\nOpening {}' .format(report_location) webbrowser.open('file://' + str(report_location)) break else: break else: print 'Your answer needs to be either yes|y|no|n rather than, {}' .format(answer) break else: shutil.rmtree(docs) shutil.rmtree(LOG_DIR) os.remove(report_location) break else: print '\tYour answer needs to be either yes|y|no|n rather than, {}' .format(answer)
def action_output_wild_true_hunter(google_results, bing_true_results, linkedin_results, domain, time_spent_email, time_spent_total, emailHunter_results): linkedin_evidence_results = [] email_evidence_results = [] email_results = [] email_seen = [] url_seen = [] person_seen = [] final_emails = [] for email in emailHunter_results: email_results.append(email[0]) email_evidence_results.append((email[0],email[1])) for email, url in google_results: try: e1, e2 = email.split(',') if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(e2).replace(' ',''),url)) email_evidence_results.append((str(e1).replace(' ',''),url)) email_results.append((str(e2).replace(' ',''))) email_results.append((str(e1).replace(' ',''))) except ValueError: if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(email).replace(' ',''),url)) email_results.append(str(email).replace(' ','')) for e, u in bing_true_results: email_results.append(e) if u not in url_seen: email_evidence_results.append((e, u)) for url, person, description in linkedin_results: if person not in person_seen: person_seen.append(person) linkedin_evidence_results.append((url, person, description)) linkedin_evidence_results.sort(key=lambda tup: tup[1]) sorted_email = set(sorted(email_results)) for email in sorted_email: if email == '[]': pass elif email[0] == '@' + domain: pass else: final_emails.append(email) email_count = len(final_emails) staff_count = len(person_seen) f_emails = sorted(final_emails) pwned_results = action_pwned(f_emails) c_accounts = len(pwned_results) print '\nEmail Addresses:\n' write_html(email_evidence_results, linkedin_evidence_results, pwned_results, report_location) if f_emails: for email in f_emails: print str(email).replace("u'","").replace("'","").replace('[','').replace(']','') else: print '\tNo Data To Be Found' print '\nLinkedIn Results:\n' sorted_person = sorted(person_seen) if sorted_person: for person in sorted_person: print person else: print '\tNo Data To Be Found' time_spent_email_f = str(datetime.timedelta(seconds=(time_spent_email))).split('.')[0] time_spent_total_f = str(datetime.timedelta(seconds=(time_spent_total))).split('.')[0] print '\nPotential Emails Found: {}' .format(str(email_count)) print 'Potential Staff Members Found: {}' .format(str(staff_count)) print 'Compromised Accounts: {}' .format(str(c_accounts)) print "Email Enumeration:", time_spent_email_f print "Total Time:", time_spent_total_f info("Email Enumeration: {}" .format(str(time_spent_email_f))) info('Compromised Accounts: {}' .format(str(c_accounts))) info('Potential Staff Members Found: {}' .format(str(staff_count))) info('Potential Emails Found: {}' .format(str(email_count))) info("Total Time:" .format(str(time_spent_total_f))) info('DNS Wild Card + Email Hunter Run completed') while True: answer = raw_input("Would you like to open this report now? ").lower() if answer in answers: if answer == 'y' or answer == 'yes': print '\nOpening {}' .format(report_location) webbrowser.open('file://' + str(report_location)) break else: break else: print 'Your answer needs to be either yes|y|no|n rather than, {}' .format(answer)
def action_output_wild_false_hunter(brute_results_dict, sub_intrest, google_results, bing_true_results, linkedin_results, check_count, domain, time_spent_email, time_spent_brute, time_spent_total, emailHunter_results, args, report_location): linkedin_evidence_results = [] email_evidence_results = [] email_results = [] email_seen = [] url_seen = [] person_seen = [] final_emails = [] for email in emailHunter_results: email_results.append(email[0]) email_evidence_results.append((email[0],email[1])) for email, url in google_results: try: e1, e2 = email.split(',') if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(e2).replace(' ',''),url)) email_evidence_results.append((str(e1).replace(' ',''),url)) email_results.append((str(e2).replace(' ',''))) email_results.append((str(e1).replace(' ',''))) except ValueError: if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(email).replace(' ',''),url)) email_results.append(str(email).replace(' ','')) for e, u in bing_true_results: email_results.append(e) if u not in url_seen: email_evidence_results.append((e, u)) for url, person, description in linkedin_results: if person not in person_seen: person_seen.append(person) linkedin_evidence_results.append((url, person, description)) linkedin_evidence_results.sort(key=lambda tup: tup[1]) sorted_email = set(sorted(email_results)) for email in sorted_email: if email == '[]': pass elif email == '@' + domain: pass else: final_emails.append(email) email_count = len(final_emails) staff_count = len(person_seen) f_emails = sorted(final_emails) pwned_results = action_pwned(f_emails) c_accounts = len(pwned_results) print '\nEmail Addresses:\n' write_html(email_evidence_results, linkedin_evidence_results, pwned_results, report_location) if f_emails: for email in f_emails: print str(email).replace("u'","").replace("'","").replace('[','').replace(']','') else: print '\tNo Data To Be Found' print '\nLinkedIn Results:\n' sorted_person = sorted(person_seen) if sorted_person: for person in sorted_person: print person else: print '\tNo Data To Be Found' sorted_dict = collections.OrderedDict(sorted(brute_results_dict.items())) bruted_count = len(sorted_dict) print "\nBluto Results: \n" for item in sorted_dict: if item is not '*.' + domain: if item is not '@.' + domain: if item in sub_intrest: print colored(item + "\t", 'red'), colored(sorted_dict[item], 'red') else: print item + "\t",sorted_dict[item] time_spent_email_f = str(datetime.timedelta(seconds=(time_spent_email))).split('.')[0] time_spent_brute_f = str(datetime.timedelta(seconds=(time_spent_brute))).split('.')[0] time_spent_total_f = str(datetime.timedelta(seconds=(time_spent_total))).split('.')[0] print '\nHosts Identified: {}' .format(str(bruted_count)) print 'Potential Emails Found: {}' .format(str(email_count)) print 'Potential Staff Members Found: {}' .format(str(staff_count)) print 'Compromised Accounts: {}' .format(str(c_accounts)) print "Email Enumeration:", time_spent_email_f print "Requests executed:", str(check_count) + " in ", time_spent_brute_f print "Total Time:", time_spent_total_f info('Hosts Identified: {}' .format(str(bruted_count))) info("Email Enumeration: {}" .format(str(time_spent_email_f))) info('Compromised Accounts: {}' .format(str(c_accounts))) info('Potential Staff Members Found: {}' .format(str(staff_count))) info('Potential Emails Found: {}' .format(str(email_count))) info("Total Time:" .format(str(time_spent_total_f))) info('DNS No Wild Cards + Email Hunter Run completed') print "\nAn evidence report has been written to {}\n".format(report_location) answers = ['no','n','y','yes'] while True: answer = raw_input("Would you like to open this report now? ").lower() if answer in answers: if answer == 'y' or answer == 'yes': info('Read HTML Report In Browser') print '\nOpening {}' .format(report_location) webbrowser.open('file://' + str(report_location)) break else: info('Did Not Read HTML Report In Browser') break else: print 'Your answer needs to be either yes|y|no|n rather than, {}' .format(answer)
def action_output_vuln_zone(google_results, bing_results, linkedin_results, time_spent_email, time_spent_total, clean_dump, sub_intrest, domain, report_location): linkedin_evidence_results = [] email_evidence_results = [] email_results = [] email_seen = [] url_seen = [] person_seen = [] final_emails = [] for email, url in google_results: try: e1, e2 = email.split(',') if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(e2).replace(' ',''),url)) email_evidence_results.append((str(e1).replace(' ',''),url)) email_results.append((str(e2).replace(' ',''))) email_results.append((str(e1).replace(' ',''))) except ValueError: if url not in email_seen: email_seen.append(url) email_evidence_results.append((str(email).replace(' ',''),url)) email_results.append(str(email).replace(' ','')) for e, u in bing_results: email_results.append(e) if u not in url_seen: email_evidence_results.append((e, u)) for url, person, description in linkedin_results: if person not in person_seen: person_seen.append(person) linkedin_evidence_results.append((url, person, description)) linkedin_evidence_results.sort(key=lambda tup: tup[1]) sorted_email = set(sorted(email_results)) for email in sorted_email: if email == '[]': pass elif email == '@' + domain: pass else: final_emails.append(email) email_count = len(final_emails) staff_count = len(person_seen) f_emails = sorted(final_emails) pwned_results = action_pwned(f_emails) c_accounts = len(pwned_results) print '\nEmail Addresses:\n' write_html(email_evidence_results, linkedin_evidence_results, pwned_results, report_location) if f_emails: for email in f_emails: print str(email).replace("u'","").replace("'","").replace('[','').replace(']','') else: print '\tNo Data To Be Found' print '\nLinkedIn Results:\n' sorted_person = sorted(person_seen) if sorted_person: for person in sorted_person: print person else: print '\tNo Data To Be Found' target_dict = dict((x.split(' ') for x in clean_dump)) clean_target = collections.OrderedDict(sorted(target_dict.items())) print "\nProcessed Dump\n" bruted_count = len(clean_target) for item in clean_target: if item in sub_intrest: print colored(item, 'red'), colored("\t" + clean_target[item], 'red') else: print item, "\t" + target_dict[item] time_spent_email_f = str(datetime.timedelta(seconds=(time_spent_email))).split('.')[0] time_spent_total_f = str(datetime.timedelta(seconds=(time_spent_total))).split('.')[0] print '\nHosts Identified: {}' .format(str(bruted_count)) print 'Potential Emails Found: {}' .format(str(email_count)) print 'Potential Staff Members Found: {}' .format(str(staff_count)) print 'Compromised Accounts: {}' .format(str(c_accounts)) print "Email Enumeration:", time_spent_email_f print "Total Time:", time_spent_total_f info('Hosts Identified: {}' .format(str(bruted_count))) info("Total Time:" .format(str(time_spent_total_f))) info("Email Enumeration: {}" .format(str(time_spent_email_f))) info('Compromised Accounts: {}' .format(str(c_accounts))) info('Potential Staff Members Found: {}' .format(str(staff_count))) info('Potential Emails Found: {}' .format(str(email_count))) info('DNS Vuln Run completed') print "\nAn evidence report has been written to {}\n".format(report_location) answers = ['no','n','y','yes'] while True: answer = raw_input("Would you like to open this report now? ").lower() if answer in answers: if answer == 'y' or answer == 'yes': print '\nOpening {}' .format(report_location) webbrowser.open('file://' + str(report_location)) break else: break else: print 'Your answer needs to be either yes|y|no|n rather than, {}' .format(answer)