Example #1
0
 def __init__(self, domains = None, massdns_bin = None,
              dnsserver = None, tmp_dir = None):
     self.domains = domains
     self.tmp_dir = tmp_dir
     self.dnsserver = dnsserver
     self.domaingen_output_path = os.path.join(tmp_dir,
                                             "domaingen_{}".format(utils.random_choices()))
     self.massdns_output_path = os.path.join(tmp_dir,
                                            "massdns_{}".format(utils.random_choices()))
     self.massdns_bin = massdns_bin
Example #2
0
    def not_found_domain_ips(self):
        if self._not_found_domain_ips is None:
            fake_domain = "at"+utils.random_choices(4) + "." + self.base_domain
            self._not_found_domain_ips = utils.get_ip(fake_domain)

            if self._not_found_domain_ips:
                logger.info("not_found_domain_ips  {} {}".format(fake_domain, self._not_found_domain_ips))

        return self._not_found_domain_ips
Example #3
0
    def __init__(self,
                 subdomains,
                 base_domain=None,
                 words=None,
                 massdns_bin=None,
                 dnsserver=None,
                 tmp_dir=None):
        self.subdomains = subdomains
        self.base_domain = base_domain
        self.words = words
        self.tmp_dir = tmp_dir
        self.dnsserver = dnsserver
        self.dnsgen_output_path = os.path.join(
            tmp_dir, "dnsgen_{}".format(utils.random_choices()))

        self.massdns_output_path = os.path.join(
            tmp_dir, "massdns_{}".format(utils.random_choices()))
        self.massdns_bin = massdns_bin
Example #4
0
    def set_wildcard_ip_set(self):
        cut_set = set()
        random_name = utils.random_choices(6)
        for domain in self.new_domain_set:
            cut_name = utils.domain.cut_first_name(domain)
            if cut_name:
                cut_set.add("{}.{}".format(random_name, cut_name))

        info_list = build_domain_info(cut_set)
        wildcard_ip_set = set()
        for info in info_list:
            wildcard_ip_set |= set(info.ip_list)

        self.wildcard_ip_set = wildcard_ip_set
        logger.info("start get wildcard_ip_set {}".format(
            len(self.wildcard_ip_set)))
Example #5
0
    def __init__(self,
                 domain,
                 brute_dict_path,
                 mode,
                 subfinder_bin=None,
                 tmp_dir=None):
        self.domain = domain
        self.brute_dict_path = brute_dict_path
        self.mode = mode
        self.tmp_dir = tmp_dir
        self.output_path = os.path.join(
            self.tmp_dir, "subfinder_{}".format(utils.random_choices()))

        self.subfinder_bin = subfinder_bin

        self.cmd = self._build_cmd()
Example #6
0
    def run_poc(self, plugin_name_list, targets):
        self.result = []
        npoc_conf.SAVE_TEXT_RESULT_FILENAME = ""
        random_file = os.path.join(
            self.tmp_dir, "npoc_result_{}.txt".format(utils.random_choices()))
        npoc_conf.SAVE_JSON_RESULT_FILENAME = random_file
        plugins = self.filter_plugin_by_name(plugin_name_list)

        runner = PluginRunner.PluginRunner(plugins=plugins,
                                           targets=targets,
                                           concurrency=self.concurrency)
        self.runner = runner
        runner.run()

        if not os.path.exists(random_file):
            return self.result

        for item in utils.load_file(random_file):
            self.result.append(json.loads(item))

        os.unlink(random_file)

        return self.result