예제 #1
0
파일: srv.py 프로젝트: harry1080/OneForAll
    def brute(self):
        """
        枚举域名的SRV记录
        """
        names_path = data_storage_path.joinpath('srv_names.json')
        with open(names_path) as fp:
            names_dict = json.load(fp)
        query_map = map(lambda name: name + self.domain, names_dict)

        tasks = []
        for query in query_map:
            tasks.append(self.query(query))
        task_group = asyncio.gather(*tasks, loop=self.loop)
        self.loop.run_until_complete(asyncio.gather(task_group))
        self.loop.close()
        results = task_group.result()
        for result in results:
            if result:
                for answer in result:
                    subdomain = utils.match_subdomain(self.domain, answer.host)
                    if subdomain:
                        self.subdomains = self.subdomains.union(subdomain)
                    else:
                        logger.log('DEBUG', f'{answer.host}不是{self.domain}的子域')
        if not len(self.subdomains):
            logger.log('DEBUG', f'没有找到{self.domain}的SRV记录')
예제 #2
0
파일: srv.py 프로젝트: tanw923/OneForAll
    def gen_names(self):
        path = data_storage_path.joinpath('srv_prefixes.json')
        with open(path) as file:
            prefixes = json.load(file)
        names = map(lambda prefix: prefix + self.domain, prefixes)

        for name in names:
            self.names_que.put(name)
예제 #3
0
파일: srv.py 프로젝트: loecho-sec/OneForAll
    def brute(self):
        """
        枚举域名的SRV记录
        """
        path = data_storage_path.joinpath('srv_prefixes.json')
        with open(path) as file:
            prefixes = json.load(file)
        names = map(lambda prefix: prefix + self.domain, prefixes)

        tasks = []
        for name in names:
            tasks.append(self.query(name))
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)
        group = asyncio.gather(*tasks)
        results = loop.run_until_complete(group)
        for answer in results:
            if answer is None:
                continue
            for item in answer:
                subdomains = utils.match_subdomain(self.domain, str(item))
                self.subdomains = self.subdomains.union(subdomains)
        if not len(self.subdomains):
            logger.log('DEBUG', f'没有找到{self.domain}的SRV记录')