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
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
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
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)))
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()
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