def __init__(self, domain, config, args, PLUGINS_DIR, CORE_DIR): self.handler = SIGINT_handler() signal.signal(signal.SIGINT, self.handler.signal_handler) self.log = Output(args.log_filename, args.csv_filename, config['config']['error_file'], args.quiet) self.domain = domain.encode('idna').decode('utf-8') self.throttle = args.z / 1000.0 self.threads = args.t self.zone = args.zone self.retry = config['config']['retry'] if args.csv_filename: self.csv = True else: self.csv = False if args.deep: with open(args.deep, encoding='UTF-8') as f: self.deep_domains = [line.rstrip() for line in f] #self.deep_domains = map(unicode.strip, io.open(args.deep, encoding='utf-8', mode='r').readlines()) else: self.deep_domains = config["config"]["deep_domains"] self.timeout = args.p if args.dns: self.dns = args.dns else: self.dns = config['config']['dns_fallback'] if args.protocol: self.protocol = args.protocol else: self.protocol = config['config']['dns_fallback_protocol'] self.protocol = self.protocol.upper() if args.record: self.record = args.record else: self.record = config['config']['dns_fallback_record'] self.args = args self.config = config # TODO move wildcards to ScanList self.a_wildcard = self.aaaa_wildcard = self.txt_wildcard = self.mx_wildcard = self.cname_wildcard = [] self.sl = ScanList(args) # Mutex lock required to avoid issues with multiple threads working on the same object. self.mutex = Lock() self.f1 = '{:50}' self.f2 = '{:8}' self.f3 = '{:10}' self.f4 = '{:46}' self.log.normal("Scanning: %s" % domain, True)
from core.env import SIGINT_handler import signal from core.logger import Output from core.dnslookup import lookup NAME = 'microsoft' ARG_HELP = 'Microsoft tenant domain lookup' handler = SIGINT_handler() signal.signal(signal.SIGINT, handler.signal_handler) def execute(**kwargs): if handler.SIGINT: Output().warn("Aborted plugin: %s" % NAME, False) return None try: domain = kwargs['domain'].split('.') config = kwargs['config'] subfuz = kwargs['subfuz'] ms_targets = [domain[-2] + '.sharepoint.com', domain[-2] + '-my.sharepoint.com', domain[-2] + '-myfiles.sharepoint.com', domain[-2] + '-files.sharepoint.com', domain[-2] + '.onmicrosoft.com', '%s-%s.mail.protection.outlook.com' % (domain[-2], domain[-1])] for ms in ms_targets: ans = lookup(ms.encode('utf-8'), 'ANY', '8.8.8.8', 'UDP', subfuz.timeout) if ans: subfuz.parse_record(ans, ms) except: raise