def parse_result(self, result): found_ips = re.search( "\\[\\*\\] IPs found: \\d*\\n-------------------\\n((.|\\n)*?)\\[\\*\\]", result, ) found_domains = re.search( "\\[\\*\\] Hosts found: \\d*\\n---------------------\\n((.|\\n)*)\\n\\[\\*\\]", result, ) if found_domains and found_domains.group(1): domains_ip = re.findall( "(.*):(\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b)?", found_domains.group(1), ) if domains_ip: for d in domains_ip: domain, ip = d yield Domain(fqdn=domain, ip=ip) if found_ips and found_ips.group(1): ips = re.findall( "(\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b)", found_ips.group(1)) if ips: for i in ips: yield IPv4(address=i)
def parse_result(self, result): results = [] found_domains = re.findall("(.*)\\[host\\] (.*) \\((.*)\\)", result) if not found_domains: return results for f in found_domains: _, domain, url = f results.append(Domain(fqdn=domain)) return results
def parse_result(self, result): links = re.findall("LINK->(.*)\\n", result) scripts = re.findall("SCRIPT-> (.*)\\n", result) if links: for link in links: yield Domain(fqdn=link) if scripts: for script in scripts: yield File(filename=script.split("/")[-1], url=script, extension="js")
def parse_result(self, result): urls_file = re.search("\\[\\+\\] URL's Discovered:.*\\n(.*).txt", result) dynamic_urls_file = re.search( "\\[\\+\\] Dynamic URL's Discovered:.*\\n(.*).txt", result ) form_urls_file = re.search( "\\[\\+\\] Form URL's Discovered:.*\\n(.*).txt", result ) dynamic_parameters_file = re.search( "\\[\\+\\] Unique Dynamic Parameters Discovered:.*\\n(.*).txt", result ) sub_domains_file = re.search( "\\[\\+\\] Sub-domains Discovered:.*\\n(.*).txt", result ) emails_file = re.search("\\[\\+\\] Emails Discovered:.*\\n(.*).txt", result) phones_file = re.search("\\[\\+\\] Phones Discovered:.*\\n(.*).txt", result) uris = [urls_file, dynamic_urls_file, form_urls_file, dynamic_parameters_file] for uri_path in uris: yield from self.return_uri(uri_path) if sub_domains_file and sub_domains_file.group(1): for line in self.read_file_line_by_line( "{}.txt".format(sub_domains_file.group(1)) ): yield Domain(address=line) if emails_file and emails_file.group(1): for line in self.read_file_line_by_line( "{}.txt".format(emails_file.group(1)) ): yield Email(address=line) if phones_file and phones_file.group(1): for line in self.read_file_line_by_line( "{}.txt".format(phones_file.group(1)) ): yield Phone(number=line)
def parse_result(self, result): found_domains = re.findall("\\[-\\] *(.*)", result) if found_domains: for f in found_domains: yield Domain(fqdn=f)
def parse_result(self, result): res = result.split("Total Unique Subdomains")[1] if res: domains = res.split("\n") for domain in domains[1:]: yield Domain(fqdn=domain[5:-4])
def parse_result(self, result): found_domains = re.findall("Found: (.*) \\[(.*)\\]\\n", result) if found_domains: for f in found_domains: domain, ip = f yield Domain(fqdn=domain, ip=ip)
def parse_result(self, result): found_domains = re.findall("Found: (.*) \\(Status:", result) if found_domains: for f in found_domains: yield Domain(fqdn=f)