Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import typing as T
- import re
- import multiprocessing as mp
- import threading
- import queue
- import os
- if not os.path.isdir('results'):
- os.mkdir('results')
- class Config(T.TypedDict):
- name: str
- file: str
- match: T.Pattern
- class Check:
- __regex_configs: T.List[Config] = [
- {
- 'file': 'aws.txt',
- 'name': 'AWS Key',
- 'match': r'AKIA[0-9A-Z]{16}'
- },
- {
- 'file': 'twilio.txt',
- 'name': 'Twilio',
- 'match': r'AC[a-z0-9]{32}'
- },
- {
- 'file': 'sendgrid.txt',
- 'name': 'Sendgrid SMTP',
- 'match': r'smtp\.sendgrid\.net'
- },
- {
- 'file': 'nexmo.txt',
- 'name': 'Nexmo',
- 'match': r'NEXMO_|nexmo_|VONAGE_|vonage_'
- },
- {
- 'file': 'office365.txt',
- 'name': 'Office365 SMTP',
- 'match': r'smtp\.office365\.com'
- },
- {
- 'file': 'aws_smtp.txt',
- 'name': 'AWS SMTP',
- 'match': r'email-smtp\.'
- }
- ]
- def __init__(self) -> None:
- pass
- def validate(self, url: str, body: str) -> T.List[str]:
- found: T.List[str] = []
- for config in self.__regex_configs:
- if re.search(config.get('match'), body):
- found.append(
- config.get('name')
- )
- with open('results/' + config.get('file'), mode='a') as file:
- file.write(url + '\n')
- return found
- class Scanner:
- def __init__(self) -> None:
- self.__urls: T.List[str] = []
- self.__check = Check()
- self.__paths: T.List[str] = None
- self.__queue = queue.Queue()
- self.__thread: int = mp.cpu_count()
- self.__threads: T.List[threading.Thread] = []
- def set_urls(self, urls: T.List[str]):
- not_valid_urls = 0
- for url in urls:
- if '://' not in url:
- url = 'http://' + url
- if url.endswith('/'):
- url = url[:-1]
- if not '.' in url:
- not_valid_urls += 1
- else:
- self.__urls.append(
- url
- )
- if not_valid_urls:
- print(f'Removed {not_valid_urls} not valid url')
- print(f'Found {len(self.__urls)} valid url')
- def set_paths(self, paths: T.List[str]):
- self.__paths = paths
- def create_tasks(self):
- for url in self.__urls:
- for path in self.__paths:
- self.__queue.put(
- f'{url}{path}'
- )
- print(f'Created {self.__queue.qsize()} tasks')
- def start(self):
- print('Starting scan')
- for i in range(self.__thread):
- th = threading.Thread(target=self.scan)
- self.__threads.append(
- th
- )
- for i in self.__threads:
- i.start()
- for i in self.__threads:
- i.join()
- print('Done scanning :)')
- def check(self, target: str):
- try:
- resp = requests.get(
- url=target,
- headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'},
- allow_redirects=False,
- verify=False,
- timeout=10
- )
- check = self.__check.validate(target, resp.text)
- if check:
- for found in check:
- print(f'{target} > Found {found}')
- else:
- print(f'{target} > Can\'t found anything')
- except Exception as err:
- print(f'{target} > {err}')
- def scan(self):
- while not self.__queue.empty():
- url = self.__queue.get()
- self.check(url)
- self.__queue.task_done()
- class GeneratePaths:
- __paths: T.List[str] = [
- '/', '/config/'
- ]
- __files: T.List[str] = [
- 'config', 'dev', 'test',
- 'development', 'staging', 'aws',
- 's3', 'env', 'default',
- 'prod', 'credentials', 'settings',
- 'configuration', 'info', 'phpinfo', 'php-info',
- ]
- __extensions: T.List[str] = [
- '.ts', '.js', '.json',
- '.yaml', '.yml', 'php', 'py', 'txt', 'md',
- ]
- __additionals: T.List[str] = [
- '/.env', '/.aws/credentials', '/wp-config.php.bak', '/wp-config.php.old', '/wp-config.php-backup', '.wp-config.php.swo', '/wp-config.php.swp', '.wp-config.swp', '#wp-config.php#', 'backup.wp-config.php', '/wp-config', '/wp-config - Copy.php', '/wp-config copy.php', '/wp-config_backup', '/wp-config_good', '/wp-config-backup', '/wp-config-backup.php', '/wp-config-backup.txt', '/wp-config-backup1.txt', '/wp-config-good', '/wp-config-sample.php', '/wp-config-sample.php.bak', '/wp-config-sample.php~', '/wp-config.backup', '/wp-config.bak', '/wp-config.bkp', '/wp-config.cfg', '/wp-config.conf', '/wp-config.data', '/wp-config.dump', '/wp-config.good', '/wp-config.htm', '/wp-config.html', '/wp-config.inc', '/wp-config.local.php', '/wp-config.old', '/wp-config.old.old', '/wp-config.ORG', '/wp-config.orig', '/wp-config.original', '/wp-config.php', '/wp-config.php_', '/wp-config.php__', '/wp-config.php______', '/wp-config.php__olds', '/wp-config.php_1', '/wp-config.php_backup', '/wp-config.php_bak', '/wp-config.php_bk', '/wp-config.php_new', '/wp-config.php_old', '/wp-config.php_old2017', '/wp-config.php_old2018', '/wp-config.php_old2019', '/wp-config.php_old2020', '/wp-config.php_orig', '/wp-config.php_original', '/wp-config.php-', '/wp-config.php-backup', '/wp-config.php-bak', '/wp-config.php-n', '/wp-config.php-o', '/wp-config.php-old', '/wp-config.php-original', '/wp-config.php-save', '/wp-config.php-work', '/wp-config.php.0', '/wp-config.php.1', '/wp-config.php.2', '/wp-config.php.3', '/wp-config.php.4', '/wp-config.php.5', '/wp-config.php.6', '/wp-config.php.7', '/wp-config.php.8', '/wp-config.php.9', '/wp-config.php.a', '/wp-config.php.aws', '/wp-config.php.azure', '/wp-config.php.b', '/wp-config.php.backup', '/wp-config.php.backup.txt', '/wp-config.php.bak', '/wp-config.php.bak1', '/wp-config.php.bk', '/wp-config.php.bkp', '/wp-config.php.c', '/wp-config.php.com', '/wp-config.php.cust', '/wp-config.php.dev', '/wp-config.php.disabled', '/wp-config.php.dist', '/wp-config.php.dump', '/wp-config.php.html', '/wp-config.php.in', '/wp-config.php.inc', '/wp-config.php.local', '/wp-config.php.maj', '/wp-config.php.new', '/wp-config.php.old', '/wp-config.php.org', '/wp-config.php.orig', '/wp-config.php.original', '/wp-config.php.php-bak', '/wp-config.php.prod', '/wp-config.php.production', '/wp-config.php.sample', '/wp-config.php.save', '/wp-config.php.save.1', '/wp-config.php.stage', '/wp-config.php.staging', '/wp-config.php.swn', '/wp-config.php.swo', '/wp-config.php.swp', '/wp-config.php.tar', '/wp-config.php.temp', '/wp-config.php.tmp', '/wp-config.php.txt', '/wp-config.php.uk', '/wp-config.php.us', '/wp-config.php=', '/wp-config.php~', '/wp-config.php~~~', '/wp-config.php1', '/wp-config.phpa', '/wp-config.phpb', '/wp-config.phpbak', '/wp-config.phpc', '/wp-config.phpd', '/wp-config.phpn', '/wp-config.phpnew', '/wp-config.phpold', '/wp-config.phporiginal', '/wp-config.phptmp', '/wp-config.prod.php.txt', '/wp-config.save', '/wp-config.tar', '/wp-config.temp', '/wp-config.txt', '/wp-config.zip', '/wp-config~', '/wp-configbak', '/admin/wp-config.php.bak', '/admin/wp-config.php.old', '/admin/wp-config.php-backup', '.admin/wp-config.php.swo', '/admin/wp-config.php.sadmin/wp', '.admin/wp-config.sadmin/wp', '#admin/wp-config.php#', 'backup.admin/wp-config.php', '/admin/wp-config', '/admin/wp-config - Copy.php', '/admin/wp-config copy.php', '/admin/wp-config_backup', '/admin/wp-config_good', '/admin/wp-config-backup', '/admin/wp-config-backup.php', '/admin/wp-config-backup.txt', '/admin/wp-config-backup1.txt', '/admin/wp-config-good', '/admin/wp-config-sample.php', '/admin/wp-config-sample.php.bak', '/admin/wp-config-sample.php~', '/admin/wp-config.backup', '/admin/wp-config.bak', '/admin/wp-config.bkp', '/admin/wp-config.cfg', '/admin/wp-config.conf', '/admin/wp-config.data', '/admin/wp-config.dump', '/admin/wp-config.good', '/admin/wp-config.htm', '/admin/wp-config.html', '/admin/wp-config.inc', '/admin/wp-config.local.php', '/admin/wp-config.old', '/admin/wp-config.old.old', '/admin/wp-config.ORG', '/admin/wp-config.orig', '/admin/wp-config.original', '/admin/wp-config.php', '/admin/wp-config.php_', '/admin/wp-config.php__', '/admin/wp-config.php______', '/admin/wp-config.php__olds', '/admin/wp-config.php_1', '/admin/wp-config.php_backup', '/admin/wp-config.php_bak', '/admin/wp-config.php_bk', '/admin/wp-config.php_new', '/admin/wp-config.php_old', '/admin/wp-config.php_old2017', '/admin/wp-config.php_old2018', '/admin/wp-config.php_old2019', '/admin/wp-config.php_old2020', '/admin/wp-config.php_orig', '/admin/wp-config.php_original', '/admin/wp-config.php-', '/admin/wp-config.php-backup', '/admin/wp-config.php-bak', '/admin/wp-config.php-n', '/admin/wp-config.php-o', '/admin/wp-config.php-old', '/admin/wp-config.php-original', '/admin/wp-config.php-save', '/admin/wp-config.php-work', '/admin/wp-config.php.0', '/admin/wp-config.php.1', '/admin/wp-config.php.2', '/admin/wp-config.php.3', '/admin/wp-config.php.4', '/admin/wp-config.php.5', '/admin/wp-config.php.6', '/admin/wp-config.php.7', '/admin/wp-config.php.8', '/admin/wp-config.php.9', '/admin/wp-config.php.a', '/admin/wp-config.php.aws', '/admin/wp-config.php.azure', '/admin/wp-config.php.b', '/admin/wp-config.php.backup', '/admin/wp-config.php.backup.txt', '/admin/wp-config.php.bak', '/admin/wp-config.php.bak1', '/admin/wp-config.php.bk', '/admin/wp-config.php.bkp', '/admin/wp-config.php.c', '/admin/wp-config.php.com', '/admin/wp-config.php.cust', '/admin/wp-config.php.dev', '/admin/wp-config.php.disabled', '/admin/wp-config.php.dist', '/admin/wp-config.php.dump', '/admin/wp-config.php.html', '/admin/wp-config.php.in', '/admin/wp-config.php.inc', '/admin/wp-config.php.local', '/admin/wp-config.php.maj', '/admin/wp-config.php.new', '/admin/wp-config.php.old', '/admin/wp-config.php.org', '/admin/wp-config.php.orig', '/admin/wp-config.php.original', '/admin/wp-config.php.php-bak', '/admin/wp-config.php.prod', '/admin/wp-config.php.production', '/admin/wp-config.php.sample', '/admin/wp-config.php.save', '/admin/wp-config.php.save.1', '/admin/wp-config.php.stage', '/admin/wp-config.php.staging', '/admin/wp-config.php.swn', '/admin/wp-config.php.swo', '/admin/wp-config.php.sadmin/wp', '/admin/wp-config.php.tar', '/admin/wp-config.php.temp', '/admin/wp-config.php.tmp', '/admin/wp-config.php.txt', '/admin/wp-config.php.uk', '/admin/wp-config.php.us', '/admin/wp-config.php=', '/admin/wp-config.php~', '/admin/wp-config.php~~~', '/admin/wp-config.php1', '/admin/wp-config.phpa', '/admin/wp-config.phpb', '/admin/wp-config.phpbak', '/admin/wp-config.phpc', '/admin/wp-config.phpd', '/admin/wp-config.phpn', '/admin/wp-config.phpnew', '/admin/wp-config.phpold', '/admin/wp-config.phporiginal', '/admin/wp-config.phptmp', '/admin/wp-config.prod.php.txt', '/admin/wp-config.save', '/admin/wp-config.tar', '/admin/wp-config.temp', '/admin/wp-config.txt', '/admin/wp-config.zip', '/admin/wp-config~', '/admin/wp-configbak', '/wp-config.php.sav', '/wp-config.php.copy', '/wp-config.php.tmp', '/wp-config.php.txt', '/wp-config.php.back', '/wp-config.php.zip', '/wp-config.php.test', '/wp-config.php.tgz', '/wp-config.php.temp', '/wp-config.php.tar.gz', '/wp-config.php.bakup', '/wp-config.php.war', '/wp-config.php.tar', '/wp-config.php.saved', '/wp-config.php.sav', '/wp-config.php.pas', '/wp-config.php.ini', '/wp-config.php.jar', '/wp-config.php.default', '/wp-config.php.db', '/wp-config.php.dat', '/wp-config.php.core', '/wp-config.php.conf',
- '/wp/wp-config.php.bak', '/wp/wp-config.php.old', '/wp/wp-config.php-backup', '.wp/wp-config.php.swo', '/wp/wp-config.php.swp/wp', '.wp/wp-config.swp/wp', '#wp/wp-config.php#', 'backup.wp/wp-config.php', '/wp/wp-config', '/wp/wp-config - Copy.php', '/wp/wp-config copy.php', '/wp/wp-config_backup', '/wp/wp-config_good', '/wp/wp-config-backup', '/wp/wp-config-backup.php', '/wp/wp-config-backup.txt', '/wp/wp-config-backup1.txt', '/wp/wp-config-good', '/wp/wp-config-sample.php', '/wp/wp-config-sample.php.bak', '/wp/wp-config-sample.php~', '/wp/wp-config.backup', '/wp/wp-config.bak', '/wp/wp-config.bkp', '/wp/wp-config.cfg', '/wp/wp-config.conf', '/wp/wp-config.data', '/wp/wp-config.dump', '/wp/wp-config.good', '/wp/wp-config.htm', '/wp/wp-config.html', '/wp/wp-config.inc', '/wp/wp-config.local.php', '/wp/wp-config.old', '/wp/wp-config.old.old', '/wp/wp-config.ORG', '/wp/wp-config.orig', '/wp/wp-config.original', '/wp/wp-config.php', '/wp/wp-config.php_', '/wp/wp-config.php__', '/wp/wp-config.php______', '/wp/wp-config.php__olds', '/wp/wp-config.php_1', '/wp/wp-config.php_backup', '/wp/wp-config.php_bak', '/wp/wp-config.php_bk', '/wp/wp-config.php_new', '/wp/wp-config.php_old', '/wp/wp-config.php_old2017', '/wp/wp-config.php_old2018', '/wp/wp-config.php_old2019', '/wp/wp-config.php_old2020', '/wp/wp-config.php_orig', '/wp/wp-config.php_original', '/wp/wp-config.php-', '/wp/wp-config.php-backup', '/wp/wp-config.php-bak', '/wp/wp-config.php-n', '/wp/wp-config.php-o', '/wp/wp-config.php-old', '/wp/wp-config.php-original', '/wp/wp-config.php-save', '/wp/wp-config.php-work', '/wp/wp-config.php.0', '/wp/wp-config.php.1', '/wp/wp-config.php.2', '/wp/wp-config.php.3', '/wp/wp-config.php.4', '/wp/wp-config.php.5', '/wp/wp-config.php.6', '/wp/wp-config.php.7', '/wp/wp-config.php.8', '/wp/wp-config.php.9', '/wp/wp-config.php.a', '/wp/wp-config.php.aws', '/wp/wp-config.php.azure', '/wp/wp-config.php.b', '/wp/wp-config.php.backup', '/wp/wp-config.php.backup.txt', '/wp/wp-config.php.bak', '/wp/wp-config.php.bak1', '/wp/wp-config.php.bk', '/wp/wp-config.php.bkp', '/wp/wp-config.php.c', '/wp/wp-config.php.com', '/wp/wp-config.php.cust', '/wp/wp-config.php.dev', '/wp/wp-config.php.disabled', '/wp/wp-config.php.dist', '/wp/wp-config.php.dump', '/wp/wp-config.php.html', '/wp/wp-config.php.in', '/wp/wp-config.php.inc', '/wp/wp-config.php.local', '/wp/wp-config.php.maj', '/wp/wp-config.php.new', '/wp/wp-config.php.old', '/wp/wp-config.php.org', '/wp/wp-config.php.orig', '/wp/wp-config.php.original', '/wp/wp-config.php.php-bak', '/wp/wp-config.php.prod', '/wp/wp-config.php.production', '/wp/wp-config.php.sample', '/wp/wp-config.php.save', '/wp/wp-config.php.save.1', '/wp/wp-config.php.stage', '/wp/wp-config.php.staging', '/wp/wp-config.php.swn', '/wp/wp-config.php.swo', '/wp/wp-config.php.swp/wp', '/wp/wp-config.php.tar', '/wp/wp-config.php.temp', '/wp/wp-config.php.tmp', '/wp/wp-config.php.txt', '/wp/wp-config.php.uk', '/wp/wp-config.php.us', '/wp/wp-config.php=', '/wp/wp-config.php~', '/wp/wp-config.php~~~', '/wp/wp-config.php1', '/wp/wp-config.phpa', '/wp/wp-config.phpb', '/wp/wp-config.phpbak', '/wp/wp-config.phpc', '/wp/wp-config.phpd', '/wp/wp-config.phpn', '/wp/wp-config.phpnew', '/wp/wp-config.phpold', '/wp/wp-config.phporiginal', '/wp/wp-config.phptmp', '/wp/wp-config.prod.php.txt', '/wp/wp-config.save', '/wp/wp-config.tar', '/wp/wp-config.temp', '/wp/wp-config.txt', '/wp/wp-config.zip', '/wp/wp-config~', '/wp/wp-configbak', '/wordpress/wp-config.php.bak', '/wordpress/wp-config.php.old', '/wordpress/wp-config.php-backup', '.wordpress/wp-config.php.swo', '/wordpress/wp-config.php.swordpress/wp', '.wordpress/wp-config.swordpress/wp', '#wordpress/wp-config.php#', 'backup.wordpress/wp-config.php', '/wordpress/wp-config', '/wordpress/wp-config - Copy.php', '/wordpress/wp-config copy.php', '/wordpress/wp-config_backup', '/wordpress/wp-config_good', '/wordpress/wp-config-backup', '/wordpress/wp-config-backup.php', '/wordpress/wp-config-backup.txt', '/wordpress/wp-config-backup1.txt', '/wordpress/wp-config-good', '/wordpress/wp-config-sample.php', '/wordpress/wp-config-sample.php.bak', '/wordpress/wp-config-sample.php~', '/wordpress/wp-config.backup', '/wordpress/wp-config.bak', '/wordpress/wp-config.bkp', '/wordpress/wp-config.cfg', '/wordpress/wp-config.conf', '/wordpress/wp-config.data', '/wordpress/wp-config.dump', '/wordpress/wp-config.good', '/wordpress/wp-config.htm', '/wordpress/wp-config.html', '/wordpress/wp-config.inc', '/wordpress/wp-config.local.php', '/wordpress/wp-config.old', '/wordpress/wp-config.old.old', '/wordpress/wp-config.ORG', '/wordpress/wp-config.orig', '/wordpress/wp-config.original', '/wordpress/wp-config.php', '/wordpress/wp-config.php_', '/wordpress/wp-config.php__', '/wordpress/wp-config.php______', '/wordpress/wp-config.php__olds', '/wordpress/wp-config.php_1', '/wordpress/wp-config.php_backup', '/wordpress/wp-config.php_bak', '/wordpress/wp-config.php_bk', '/wordpress/wp-config.php_new', '/wordpress/wp-config.php_old', '/wordpress/wp-config.php_old2017', '/wordpress/wp-config.php_old2018', '/wordpress/wp-config.php_old2019', '/wordpress/wp-config.php_old2020', '/wordpress/wp-config.php_orig', '/wordpress/wp-config.php_original', '/wordpress/wp-config.php-', '/wordpress/wp-config.php-backup', '/wordpress/wp-config.php-bak', '/wordpress/wp-config.php-n', '/wordpress/wp-config.php-o', '/wordpress/wp-config.php-old', '/wordpress/wp-config.php-original', '/wordpress/wp-config.php-save', '/wordpress/wp-config.php-work', '/wordpress/wp-config.php.0', '/wordpress/wp-config.php.1', '/wordpress/wp-config.php.2', '/wordpress/wp-config.php.3', '/wordpress/wp-config.php.4', '/wordpress/wp-config.php.5', '/wordpress/wp-config.php.6', '/wordpress/wp-config.php.7', '/wordpress/wp-config.php.8', '/wordpress/wp-config.php.9', '/wordpress/wp-config.php.a', '/wordpress/wp-config.php.aws', '/wordpress/wp-config.php.azure', '/wordpress/wp-config.php.b', '/wordpress/wp-config.php.backup', '/wordpress/wp-config.php.backup.txt', '/wordpress/wp-config.php.bak', '/wordpress/wp-config.php.bak1', '/wordpress/wp-config.php.bk', '/wordpress/wp-config.php.bkp', '/wordpress/wp-config.php.c', '/wordpress/wp-config.php.com', '/wordpress/wp-config.php.cust', '/wordpress/wp-config.php.dev', '/wordpress/wp-config.php.disabled', '/wordpress/wp-config.php.dist', '/wordpress/wp-config.php.dump', '/wordpress/wp-config.php.html', '/wordpress/wp-config.php.in', '/wordpress/wp-config.php.inc', '/wordpress/wp-config.php.local', '/wordpress/wp-config.php.maj', '/wordpress/wp-config.php.new', '/wordpress/wp-config.php.old', '/wordpress/wp-config.php.org', '/wordpress/wp-config.php.orig', '/wordpress/wp-config.php.original', '/wordpress/wp-config.php.php-bak', '/wordpress/wp-config.php.prod', '/wordpress/wp-config.php.production', '/wordpress/wp-config.php.sample', '/wordpress/wp-config.php.save', '/wordpress/wp-config.php.save.1', '/wordpress/wp-config.php.stage', '/wordpress/wp-config.php.staging', '/wordpress/wp-config.php.swn', '/wordpress/wp-config.php.swo', '/wordpress/wp-config.php.swordpress/wp', '/wordpress/wp-config.php.tar', '/wordpress/wp-config.php.temp', '/wordpress/wp-config.php.tmp', '/wordpress/wp-config.php.txt', '/wordpress/wp-config.php.uk', '/wordpress/wp-config.php.us', '/wordpress/wp-config.php=', '/wordpress/wp-config.php~', '/wordpress/wp-config.php~~~', '/wordpress/wp-config.php1', '/wordpress/wp-config.phpa', '/wordpress/wp-config.phpb', '/wordpress/wp-config.phpbak', '/wordpress/wp-config.phpc', '/wordpress/wp-config.phpd', '/wordpress/wp-config.phpn', '/wordpress/wp-config.phpnew', '/wordpress/wp-config.phpold', '/wordpress/wp-config.phporiginal', '/wordpress/wp-config.phptmp', '/wordpress/wp-config.prod.php.txt', '/wordpress/wp-config.save', '/wordpress/wp-config.tar', '/wordpress/wp-config.temp', '/wordpress/wp-config.txt', '/wordpress/wp-config.zip', '/wordpress/wp-config~', '/wordpress/wp-configbak'
- ]
- def __init__(self) -> None:
- self.__generated: T.List[str] = []
- def merge_paths(self):
- for path in self.__paths:
- for file in self.__files:
- for extension in self.__extensions:
- self.__generated.append(
- f'{path}{file}{extension}'
- )
- for additional in self.__additionals:
- self.__generated.append(
- additional
- )
- def get_paths(self) -> T.List[str]:
- return self.__generated
- def main():
- try:
- paths = GeneratePaths()
- paths.merge_paths()
- scan = Scanner()
- scan.set_paths(paths=paths.get_paths())
- urls = open(input('List Urls ? '), mode='r').read().splitlines()
- scan.set_urls(urls=urls)
- scan.create_tasks()
- scan.start()
- except FileNotFoundError as err:
- print(err)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment