Пример #1
0
def before_scan():
    while redis_conn.llen("before_scan"):
        task_unit = json.loads(redis_conn.lpop("before_scan"))
        task_id = task_unit['task_id']
        task_name = task_unit['task_name']
        target = task_unit['target']
        tag_name = task_unit['tag_name']
        scan_init.delay(task_name, task_id, target, tag_name)
Пример #2
0
def scheduler_bbscan_scan_init():
    while redis_conn.llen("BBScan_init"):
        _ = json.loads(redis_conn.lpop("BBScan_init"))
        task_name = _["task_name"]
        task_id = _["task_id"]
        target = _["target"]
        tag_name = _["tag_name"]
        spider_init.delay(task_name, task_id, target, tag_name)
Пример #3
0
def scheduler_port_scan_second():
    while redis_conn.llen("Nmap_Second"):
        port_object = json.loads(redis_conn.lpop("Nmap_Second"))
        hostname = port_object['hostname']
        ip = port_object['ip']
        tag_name = port_object['tag_name']
        ports = port_object['ports']
        task_name = port_object['task_name']
        task_id = port_object['task_id']
        if ports:
            nmap_scan.delay(hostname, ip, ports, task_name, task_id, tag_name)
Пример #4
0
def scheduler_port_scan_first():
    while redis_conn.llen("Task_Port_Scan"):
        port_object = json.loads(redis_conn.lpop('Task_Port_Scan'))
        task_name = port_object["task_name"]
        task_id = port_object["task_id"]
        tag_name = port_object["tag_name"]
        hostname = port_object["hostname"]
        ip = port_object["ip"]
        ports = port_object["ports"]
        if ports:  # 设置了端口之后,对端口进行扫描
            # chain(masscan_scan.s(target, task_name, task_id, ports) | nmap_scan.s()).apply_async()
            masscan_scan.delay(hostname, ip, task_name, task_id, ports,
                               tag_name)
Пример #5
0
def scheduler_bbscan_scan_first():
    while redis_conn.llen("BBScan_First"):
        try:
            http_object = json.loads(
                redis_conn.lpop("BBScan_First"))  # 获取第一步待扫描的内容
            scheme = http_object['scheme']
            ip = http_object['ip']
            port = http_object['port']
            header = http_object['banner'].split("\r\n\r\n\r\n")[0]
            content = http_object['banner'].split("\r\n\r\n\r\n")[1]
            status_code = http_object['status_code']
            task_name = http_object['task_name']
            task_id = http_object['task_id']
            tag_name = http_object['tag_name']

            m = re.search('<title>(.*?)</title>', content)
            title = m.group(1) if m else ''
            bbscan_parse_uri.delay(scheme, ip, port, title, content,
                                   status_code, header, task_name, task_id,
                                   tag_name)
        except:
            log.error("scheduler_bbscan_scan_first", exc_info=True)
Пример #6
0
def scheduler_poc_scan():
    while redis_conn.llen("Task_Poc_Scan"):
        poc_object = json.loads(redis_conn.lpop("Task_Poc_Scan"))
        task_name = poc_object["task_name"]
        task_id = poc_object["task_id"]
        tag_name = poc_object["tag_name"]
        hostname = poc_object["hostname"]
        port = poc_object["port"]
        pocs = poc_object["pocs"]
        pocs = pocs.split(',') if isinstance(pocs, str) else pocs
        service = poc_object['service']
        # service = poc_object['service'] or 'http'
        # log.info("subscribe: pocs is %s:%s" % (pocs, type(pocs)))
        #
        # try:
        # 	service = poc_object['service']
        # except:
        # 	service = 'http'
        log.info('target is %s service is %s' %
                 (hostname + ':' + str(port), service))
        if service and pocs:  # 识别出来的服务,比如http,https
            for poc in pocs:
                vuln_scan.delay(hostname, port, service, poc, task_id,
                                task_name, tag_name)