示例#1
0
def build_domain_info():
    t1 = time.time()
    d1 = ["dsf.freebuf.com","fdsf.freebuf.com","fsdf.freebuf.com","www.freebuf.com","www.freebuf.com","www.freebuf.com","www.freebuf.com","www.freebuf.com"]
    d2 = d1.copy() + d1.copy() + d1.copy() + d1.copy()

    services.build_domain_info(d2, concurrency=10)
    t2 = time.time()
    print(t2 - t1)
示例#2
0
    def build_domain_info(self, domains):
        """
        构建domain_info_list 带去重功能
        """
        fake_list = []
        domains_set = set()
        for item in domains:
            domain = item
            if isinstance(item, dict):
                domain = item["domain"]

            domain = domain.lower().strip()
            if domain in domains_set:
                continue
            domains_set.add(domain)

            if utils.check_domain_black(domain):
                continue

            fake = {
                "domain": domain,
                "type": "CNAME",
                "record": [],
                "ips": []
            }
            fake_info = modules.DomainInfo(**fake)
            if fake_info not in self.domain_info_list:
                fake_list.append(fake_info)

        if self.task_tag == "monitor":
            return fake_list
        domain_info_list = services.build_domain_info(fake_list)

        return domain_info_list
示例#3
0
    def domain_data(self):
        if self._domain_data is None:
            _domain_data = services.build_domain_info(["www.baidu.com", "www.qq.com"])
            domain_data = []
            for x in _domain_data:
                domain_data.append(x.dump_json(flag=False))
            self._domain_data = domain_data

        return self._domain_data
示例#4
0
    def ip_data(self):
        if self._ip_data is None:
            _ip_data = services.build_domain_info(
                ["www.baidu.com", "www.qq.com"])
            ip_data = []
            for x in services.port_scan(["1.1.1.1"]):
                x["geo_asn"] = {
                    "number": 13335,
                    "organization": "Cloudflare, Inc."
                }
                ip_data.append(x)
            self._ip_data = ip_data

        return self._ip_data
示例#5
0
    def test_scan_port_skip(self):
        scan_port_option = {
            "ports": ScanPortType.TEST,
            "service_detect": False,
            "os_detect": False,
            "skip_scan_cdn_ip": True  # 跳过扫描CDN IP
        }
        domain_info = services.build_domain_info(
            ['www.taobao.com', 'www.aliyun.com'], concurrency=10)
        self.assertTrue(len(domain_info) == 2)

        ip_info_list = scan_port(domain_info, scan_port_option)
        for info in ip_info_list:
            self.assertTrue(info.cdn_name)
            self.assertTrue(len(info.port_info_list) == 2)
示例#6
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)))
示例#7
0
    def test_scan_port(self):
        scan_port_option = {
            "ports": ScanPortType.TEST,
            "service_detect": False,
            "os_detect": False,
            "skip_scan_cdn_ip": False  # 跳过扫描CDN IP
        }
        domain_info = services.build_domain_info(
            ['join.lianjia.com', 'gzh.qq.com'], concurrency=10)
        print(domain_info)

        self.assertTrue(len(domain_info) == 2)

        ip_info_list = scan_port(domain_info, scan_port_option)
        print(ip_info_list)
        for info in ip_info_list:
            self.assertTrue(info.cdn_name)