theHarvester/discovery/constants.py

70 lines
1.9 KiB
Python
Raw Normal View History

2018-12-30 10:29:25 +08:00
"""
2019-01-11 11:56:49 +08:00
Module that contains constants used across plugins.
Contains list of API keys, user agents, and a function to get random delay and user agent.
As well as a defined User Agent for Google Search.
2018-12-30 10:29:25 +08:00
User-Agents from: https://github.com/tamimibrahim17/List-of-user-agents
"""
import random
2019-01-11 11:56:49 +08:00
2018-12-30 10:29:25 +08:00
googleUA = "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36"
bingAPI_key = ''
googleCSEAPI_key = ''
googleCSE_id = ''
hunterAPI_key = ''
securityTrailsAPI_key = ''
2019-01-11 10:09:47 +08:00
shodanAPI_key = 'oCiMsgM6rQWqiTvPxFHYcExlZgg7wvTt' # This is the default key.
2018-12-30 10:29:25 +08:00
def filter(lst):
"""
Method that filters list
:param lst: list to be filtered
:return: new filtered list
"""
2019-01-11 10:09:47 +08:00
lst = set(lst) # Remove duplicates.
2018-12-30 10:29:25 +08:00
new_lst = []
for item in lst:
2019-01-02 10:38:59 +08:00
item = str(item)
2018-12-30 10:29:25 +08:00
if (item[0].isalpha() or item[0].isdigit()) and ('xxx' not in item) and ('..' not in item):
if '252f' in item:
item = item.replace('252f', '')
2019-01-02 10:38:59 +08:00
if '2F' in item:
item = item.replace('2F', '')
if '2f' in item:
item = item.replace('2f', '')
new_lst.append(item.lower())
2018-12-30 10:29:25 +08:00
return new_lst
def getDelay():
return random.randint(1, 3) - .5
def search(text):
2019-01-11 10:09:47 +08:00
# Helper function to check if Google has blocked traffic.
2018-12-30 10:29:25 +08:00
for line in text.strip().splitlines():
if 'This page appears when Google automatically detects requests coming from your computer network' in line:
print('\tGoogle is blocking your IP due to too many automated requests, wait or change your IP')
return True
return False
class MissingKey(Exception):
def __init__(self, identity_flag):
2019-01-11 11:56:49 +08:00
if identity_flag:
2019-01-13 05:49:05 +08:00
self.message = '\n\033[93m[!] Missing API key.\n \033[0m'
2018-12-30 10:29:25 +08:00
else:
2019-01-13 05:49:05 +08:00
self.message = '\n\033[93m[!] Missing CSE id.\n \033[0m'
2018-12-30 10:29:25 +08:00
def __str__(self):
return self.message