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())) 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 '\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 "Requests executed:", str(check_count) + " in ", time_spent_brute_f print "Total Time:", time_spent_total_f 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)
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 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)