Example #1
0
    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)
Example #2
0
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