mirror of
https://github.com/laramies/theHarvester.git
synced 2024-11-11 18:03:10 +08:00
Syncing.
Merge branch 'master' of github.com:NotoriousRebel/theHarvester
This commit is contained in:
commit
38f12852ab
3 changed files with 47 additions and 15 deletions
|
@ -8,4 +8,4 @@ PyYaml==5.1.2
|
|||
requests==2.22.0
|
||||
shodan==1.14.0
|
||||
texttable==1.6.2
|
||||
grequests>=0.4.0
|
||||
grequests==0.4.0
|
||||
|
|
|
@ -89,13 +89,17 @@ def start():
|
|||
|
||||
if args.source is not None:
|
||||
engines = set(map(str.strip, args.source.split(',')))
|
||||
|
||||
if args.source == 'all' and args.exclude is not None:
|
||||
engines = modified_source(args.exclude)
|
||||
|
||||
if set(engines).issubset(Core.get_supportedengines()):
|
||||
print(f'\033[94m[*] Target: {word} \n \033[0m')
|
||||
|
||||
for engineitem in engines:
|
||||
if engineitem == 'baidu':
|
||||
print('\033[94m[*] Searching Baidu. \033[0m')
|
||||
from theHarvester.discovery import baidusearch
|
||||
try:
|
||||
search = baidusearch.SearchBaidu(word, limit)
|
||||
search.process()
|
||||
|
@ -110,6 +114,7 @@ def start():
|
|||
|
||||
elif engineitem == 'bing' or engineitem == 'bingapi':
|
||||
print('\033[94m[*] Searching Bing. \033[0m')
|
||||
from theHarvester.discovery import bingsearch
|
||||
try:
|
||||
search = bingsearch.SearchBing(word, limit, start)
|
||||
bingapi = ''
|
||||
|
@ -146,14 +151,17 @@ def start():
|
|||
elif engineitem == 'crtsh':
|
||||
try:
|
||||
print('\033[94m[*] Searching CRT.sh. \033[0m')
|
||||
from theHarvester.discovery import crtsh
|
||||
search = crtsh.SearchCrtsh(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_data())
|
||||
all_hosts.extend(hosts)
|
||||
db = stash.stash_manager()
|
||||
db.store_all(word, all_hosts, 'host', 'CRTsh')
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
except Exception:
|
||||
print(f'\033[93m[!] An timeout occurred with crtsh, cannot find {args.domain}\033[0m')
|
||||
|
||||
elif engineitem == 'dnsdumpster':
|
||||
try:
|
||||
print('\033[94m[*] Searching DNSdumpster. \033[0m')
|
||||
|
@ -170,6 +178,7 @@ def start():
|
|||
elif engineitem == 'dogpile':
|
||||
try:
|
||||
print('\033[94m[*] Searching Dogpile. \033[0m')
|
||||
from theHarvester.discovery import dogpilesearch
|
||||
search = dogpilesearch.SearchDogpile(word, limit)
|
||||
search.process()
|
||||
emails = filter(search.get_emails())
|
||||
|
@ -227,6 +236,7 @@ def start():
|
|||
|
||||
elif engineitem == 'google':
|
||||
print('\033[94m[*] Searching Google. \033[0m')
|
||||
from theHarvester.discovery import googlesearch
|
||||
search = googlesearch.search_google(word, limit, start)
|
||||
search.process(google_dorking)
|
||||
emails = filter(search.get_emails())
|
||||
|
@ -279,6 +289,7 @@ def start():
|
|||
|
||||
elif engineitem == 'linkedin':
|
||||
print('\033[94m[*] Searching Linkedin. \033[0m')
|
||||
from theHarvester.discovery import linkedinsearch
|
||||
search = linkedinsearch.SearchLinkedin(word, limit)
|
||||
search.process()
|
||||
people = search.get_people()
|
||||
|
@ -295,6 +306,7 @@ def start():
|
|||
|
||||
elif engineitem == 'netcraft':
|
||||
print('\033[94m[*] Searching Netcraft. \033[0m')
|
||||
from theHarvester.discovery import netcraft
|
||||
search = netcraft.SearchNetcraft(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_hostnames())
|
||||
|
@ -324,6 +336,7 @@ def start():
|
|||
|
||||
elif engineitem == 'threatcrowd':
|
||||
print('\033[94m[*] Searching Threatcrowd. \033[0m')
|
||||
from theHarvester.discovery import threatcrowd
|
||||
try:
|
||||
search = threatcrowd.SearchThreatcrowd(word)
|
||||
search.process()
|
||||
|
@ -331,8 +344,8 @@ def start():
|
|||
all_hosts.extend(hosts)
|
||||
db = stash.stash_manager()
|
||||
db.store_all(word, all_hosts, 'host', 'threatcrowd')
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as e:
|
||||
print('')
|
||||
|
||||
elif engineitem == 'trello':
|
||||
print('\033[94m[*] Searching Trello. \033[0m')
|
||||
|
@ -352,6 +365,7 @@ def start():
|
|||
|
||||
elif engineitem == 'twitter':
|
||||
print('\033[94m[*] Searching Twitter usernames using Google. \033[0m')
|
||||
from theHarvester.discovery import twittersearch
|
||||
search = twittersearch.SearchTwitter(word, limit)
|
||||
search.process()
|
||||
people = search.get_people()
|
||||
|
@ -368,6 +382,7 @@ def start():
|
|||
|
||||
elif engineitem == 'virustotal':
|
||||
print('\033[94m[*] Searching VirusTotal. \033[0m')
|
||||
from theHarvester.discovery import virustotal
|
||||
search = virustotal.SearchVirustotal(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_hostnames())
|
||||
|
@ -377,6 +392,7 @@ def start():
|
|||
|
||||
elif engineitem == 'yahoo':
|
||||
print('\033[94m[*] Searching Yahoo. \033[0m')
|
||||
from theHarvester.discovery import yahoosearch
|
||||
search = yahoosearch.SearchYahoo(word, limit)
|
||||
search.process()
|
||||
hosts = search.get_hostnames()
|
||||
|
@ -393,6 +409,7 @@ def start():
|
|||
all_hosts = []
|
||||
try:
|
||||
print('\033[94m[*] Searching Baidu. \033[0m')
|
||||
from theHarvester.discovery import baidusearch
|
||||
search = baidusearch.SearchBaidu(word, limit)
|
||||
search.process()
|
||||
all_emails = filter(search.get_emails())
|
||||
|
@ -405,6 +422,7 @@ def start():
|
|||
pass
|
||||
try:
|
||||
print('\033[94m[*] Searching Bing. \033[0m')
|
||||
from theHarvester.discovery import bingsearch
|
||||
bingapi = 'no'
|
||||
search = bingsearch.SearchBing(word, limit, start)
|
||||
search.process(bingapi)
|
||||
|
@ -435,13 +453,17 @@ def start():
|
|||
db.store_all(word, uniquehosts, 'host', 'censys')
|
||||
db.store_all(word, uniqueips, 'ip', 'censys')
|
||||
|
||||
try:
|
||||
print('\033[94m[*] Searching CRT.sh. \033[0m')
|
||||
from theHarvester.discovery import crtsh
|
||||
search = crtsh.SearchCrtsh(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_data())
|
||||
all_hosts.extend(hosts)
|
||||
db = stash.stash_manager()
|
||||
db.store_all(word, all_hosts, 'host', 'CRTsh')
|
||||
except Exception:
|
||||
print(f'\033[93m[!] An timeout occurred with crtsh: cannot find {args.domain} \033[0m')
|
||||
|
||||
try:
|
||||
print('\033[94m[*] Searching DNSdumpster. \033[0m')
|
||||
|
@ -456,6 +478,7 @@ def start():
|
|||
print(f'\033[93m[!] An error occurred with dnsdumpster: {e} \033[0m')
|
||||
|
||||
print('\033[94m[*] Searching Dogpile. \033[0m')
|
||||
from theHarvester.discovery import dogpilesearch
|
||||
try:
|
||||
search = dogpilesearch.SearchDogpile(word, limit)
|
||||
search.process()
|
||||
|
@ -495,6 +518,7 @@ def start():
|
|||
except Exception:
|
||||
pass
|
||||
print('\033[94m[*] Searching Google. \033[0m')
|
||||
from theHarvester.discovery import googlesearch
|
||||
search = googlesearch.search_google(word, limit, start)
|
||||
search.process(google_dorking)
|
||||
emails = filter(search.get_emails())
|
||||
|
@ -546,6 +570,7 @@ def start():
|
|||
print(e)
|
||||
|
||||
print('\033[94m[*] Searching Linkedin. \033[0m')
|
||||
from theHarvester.discovery import linkedinsearch
|
||||
search = linkedinsearch.SearchLinkedin(word, limit)
|
||||
search.process()
|
||||
people = search.get_people()
|
||||
|
@ -561,6 +586,7 @@ def start():
|
|||
print(user)
|
||||
|
||||
print('\033[94m[*] Searching Netcraft. \033[0m')
|
||||
from theHarvester.discovery import netcraft
|
||||
search = netcraft.SearchNetcraft(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_hostnames())
|
||||
|
@ -588,6 +614,7 @@ def start():
|
|||
pass
|
||||
|
||||
print('\033[94m[*] Searching Threatcrowd. \033[0m')
|
||||
from theHarvester.discovery import threatcrowd
|
||||
try:
|
||||
search = threatcrowd.SearchThreatcrowd(word)
|
||||
search.process()
|
||||
|
@ -615,6 +642,7 @@ def start():
|
|||
|
||||
try:
|
||||
print('\033[94m[*] Searching Twitter. \033[0m')
|
||||
from theHarvester.discovery import twittersearch
|
||||
search = twittersearch.SearchTwitter(word, limit)
|
||||
search.process()
|
||||
people = search.get_people()
|
||||
|
@ -630,6 +658,7 @@ def start():
|
|||
print('\n[*] Virtual hosts:')
|
||||
print('------------------')
|
||||
for l in host_ip:
|
||||
from theHarvester.discovery import baidusearch
|
||||
search = bingsearch.SearchBing(l, limit, start)
|
||||
search.process_vhost()
|
||||
res = search.get_allhostnames()
|
||||
|
@ -643,6 +672,7 @@ def start():
|
|||
vhost = sorted(set(vhost))
|
||||
|
||||
print('\033[94m[*] Searching VirusTotal. \033[0m')
|
||||
from theHarvester.discovery import virustotal
|
||||
search = virustotal.SearchVirustotal(word)
|
||||
search.process()
|
||||
hosts = filter(search.get_hostnames())
|
||||
|
@ -652,6 +682,7 @@ def start():
|
|||
|
||||
try:
|
||||
print('\033[94m[*] Searching Yahoo. \033[0m')
|
||||
from theHarvester.discovery import yahoosearch
|
||||
search = yahoosearch.SearchYahoo(word, limit)
|
||||
search.process()
|
||||
hosts = search.get_hostnames()
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from theHarvester.lib.core import *
|
||||
import requests
|
||||
|
||||
|
||||
class SearchCrtsh:
|
||||
|
||||
def __init__(self, word):
|
||||
|
@ -18,8 +19,8 @@ def do_search(self):
|
|||
data = set([dct['name_value'][2:] if '*.' == dct['name_value'][:2] else dct['name_value'] for dct in content])
|
||||
return data
|
||||
return data
|
||||
except Exception as e:
|
||||
print(f'An exception has occurred in crtsh: {e}')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def process(self):
|
||||
print('\tSearching results.')
|
||||
|
|
Loading…
Reference in a new issue