def main(): PATHS.ROOT_PATH = module_path() PATHS.PLUGIN_PATH = os.path.join(PATHS.ROOT_PATH, "pocs") PATHS.OUTPUT_PATH = os.path.join(PATHS.ROOT_PATH, "output") PATHS.DATA_PATH = os.path.join(PATHS.ROOT_PATH, "data") patch_all() logger.info("Hello W12SCAN !") # domain域名整理(统一格式:无论是域名还是二级目录,右边没有 /),ip cidr模式识别,ip整理 # 访问redis获取目标 def redis_get(): list_name = "w12scan_scanned" while 1: target = redis_con.blpop(list_name)[1] scheduler.put_target(target) # redis_get() def debug_get(): target = "http://stun.tuniu.com" scheduler.put_target(target) def node_register(): first_blood = True while 1: if first_blood: dd = { "last_time": time.time(), "tasks": 0, "running": 0, "finished": 0 } redis_con.hmset(NODE_NAME, dd) first_blood = False else: redis_con.hset(NODE_NAME, "last_time", time.time()) time.sleep(50 * 5) scheduler = Schedular(threadnum=THREAD_NUM) scheduler.start() # 启动任务分发调度器 if DEBUG: func_target = debug_get else: func_target = redis_get # 与WEB的通信线程 node = threading.Thread(target=node_register) node.start() # 队列下发线程 t = threading.Thread(target=func_target, name='LoopThread') t.start() try: scheduler.run() except KeyboardInterrupt: logger.info("User exit")
def main(): PATHS.ROOT_PATH = moudle_path() print(PATHS.ROOT_PATH) PATHS.PLUGIN_PATH = os.path.join(PATHS.ROOT_PATH, "pocs") print(PATHS.PLUGIN_PATH) PATHS.OUTPUT_PATH = os.path.join(PATHS.ROOT_PATH, "output") print(PATHS.OUTPUT_PATH) PATHS.DATA_PATH = os.path.join(PATHS.ROOT_PATH, "data") print(PATHS.DATA_PATH) patch_all() logger.info("Hello W12SCAN !") # domain域名整理(统一格式:无论是域名还是二级目录,右边没有 /),ip cidr模式识别,ip整理 # 访问redis获取目标 schedular.start() # 启动任务分发调度器 if DEBUG: func_target = debug_get else: func_target = redis_get # 与WEB的通信线程 node = threading.Thread(target=node_register) node.start() # 队列下发线程 t = threading.Thread(target=func_target, name='LoopThread') t.start() try: schedular.run() except KeyboardInterrupt: logger.info("User exit")
def init(root, cmdline): cinit(autoreset=True) setPaths(root) banner() _init_conf() # 从config.py读取配置信息 _merge_options(cmdline) # 从cmdline读取配置 _set_conf() initKb() initPlugins() _init_stdout() patch_all()
def init(root, cmdline): # 一个命令行输入彩色文字的模块 cinit(autoreset=True) # 设置各种目录变量 setPaths(root) banner() _init_conf() # 从config.py读取配置信息 # 将命令行中的参数合并进 lib.core.data.conf AttribDict _merge_options(cmdline) # 从cmdline读取配置 # 配置监听接口和 代理 _set_conf() initKb() # 初始化插件 initPlugins() _init_stdout() patch_all()
def init(root): banner() _set_path(root) _init_kb() _init_plugins() patch_all()