mirror of
https://github.com/laramies/theHarvester.git
synced 2024-09-21 15:56:44 +08:00
commit
cbd701ef3f
|
@ -6,7 +6,7 @@
|
|||
* | |_| | | | __/ / __ / (_| | | \ V / __/\__ \ || __/ | *
|
||||
* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___||___/\__\___|_| *
|
||||
* *
|
||||
* theHarvester 3.0.6 v307 *
|
||||
* theHarvester 3.0.6 v308 *
|
||||
* Coded by Christian Martorella *
|
||||
* Edge-Security Research *
|
||||
* cmartorella@edge-security.com *
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
import requests
|
||||
import time
|
||||
|
||||
class search_intelx:
|
||||
|
||||
class SearchIntelx:
|
||||
|
||||
def __init__(self, word, limit):
|
||||
self.word = word
|
||||
|
@ -21,18 +22,21 @@ def do_search(self):
|
|||
try:
|
||||
user_agent = Core.get_user_agent()
|
||||
headers = {'User-Agent': user_agent, 'x-key': self.key}
|
||||
data = f'{{"term": "{self.word}", "maxresults": {self.limit}, "media": 0, "sort": 2 , "terminate": []}}'
|
||||
# data is json that corresponds to what we are searching for, sort:2 means sort by most relevant
|
||||
data = f'{{"term": "{self.word}", "maxresults": {self.limit}, "media": 0, "sort": 2 , "terminate": []}}'
|
||||
r = requests.post(f'{self.database}phonebook/search', data=data, headers=headers)
|
||||
|
||||
if r.status_code == 400:
|
||||
raise Exception('Invalid json was passed in.')
|
||||
time.sleep(1)
|
||||
|
||||
# grab uuid to send get request to fetch data
|
||||
uuid = r.json()['id']
|
||||
url = f'{self.database}phonebook/search/result?id={uuid}&offset=0&limit={self.limit}'
|
||||
r = requests.get(url, headers=headers)
|
||||
time.sleep(1)
|
||||
# to add in future grab status from r.text and check if more results can be gathered
|
||||
|
||||
# TODO: add in future grab status from r.text and check if more results can be gathered
|
||||
if r.status_code != 200:
|
||||
raise Exception('Error occurred while searching intelx.')
|
||||
self.results = r.json()
|
||||
|
@ -50,4 +54,3 @@ def get_emails(self):
|
|||
|
||||
def get_hostnames(self):
|
||||
return self.info[1]
|
||||
|
||||
|
|
10
lib/core.py
10
lib/core.py
|
@ -45,12 +45,12 @@ def intelx_key():
|
|||
def banner():
|
||||
print('\n\033[93m*******************************************************************')
|
||||
print("* _ _ _ *")
|
||||
print("* | |_| |__ ___ /\ /\__ _ _ ____ _____ ___| |_ ___ _ __ *")
|
||||
print("* | __| _ \ / _ \ / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *")
|
||||
print("* | |_| | | | __/ / __ / (_| | | \ V / __/\__ \ || __/ | *")
|
||||
print("* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___||___/\__\___|_| *")
|
||||
print(r"* | |_| |__ ___ /\ /\__ _ _ ____ _____ ___| |_ ___ _ __ *")
|
||||
print(r"* | __| _ \ / _ \ / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *")
|
||||
print(r"* | |_| | | | __/ / __ / (_| | | \ V / __/\__ \ || __/ | *")
|
||||
print(r"* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___||___/\__\___|_| *")
|
||||
print('* *')
|
||||
print('* theHarvester 3.0.6 v307 *')
|
||||
print('* theHarvester 3.0.6 v308 *')
|
||||
print('* Coded by Christian Martorella *')
|
||||
print('* Edge-Security Research *')
|
||||
print('* cmartorella@edge-security.com *')
|
||||
|
|
|
@ -246,7 +246,7 @@ def start():
|
|||
from discovery import intelxsearch
|
||||
# Import locally or won't work.
|
||||
try:
|
||||
search = intelxsearch.search_intelx(word, limit)
|
||||
search = intelxsearch.SearchIntelx(word, limit)
|
||||
search.process()
|
||||
emails = filter(search.get_emails())
|
||||
all_emails.extend(emails)
|
||||
|
@ -504,7 +504,7 @@ def start():
|
|||
from discovery import intelxsearch
|
||||
# Import locally or won't work.
|
||||
try:
|
||||
search = intelxsearch.search_intelx(word, limit)
|
||||
search = intelxsearch.SearchIntelx(word, limit)
|
||||
search.process()
|
||||
emails = filter(search.get_emails())
|
||||
all_emails.extend(emails)
|
||||
|
|
Loading…
Reference in a new issue