def __execute_modules(target: Target): """ Run Modules against the Target :param target: Target object to scan """ global LOADED_MODULES global logger # Order according to priority LOADED_MODULES = sorted(LOADED_MODULES, key=operator.attrgetter('priority'), reverse=True) # Add null service and port to ensure that the Hostname/Geo modules always run # TODO: Convert to InitModules EventQueue.push("", 0) # Get the current event from the Queue while EventQueue.events_in_queue(): current_event = EventQueue.pop() logger.info("Processing {SERVICE}:{PORT}".format( SERVICE=current_event.service, PORT=current_event.port)) if current_event.port not in ArgHandler.get_skip_ports(): # Iterate through every single instance of our modules for module in LOADED_MODULES: # Check if we can run it run_state = module.can_execute_module() if run_state is ModuleExecuteState.CanExecute: ip = str(target.ip) if module.should_execute(current_event.service, current_event.port): print( utils.normal_message(), "Executing {PROGRAM}".format(PROGRAM=module.name)) module.execute(ip, current_event.port)
def test_get_multiple_skip_ports(): ArgHandler.parse_arguments(["-T", "127.0.0.1", "--skip-ports", "80", "8080"]) assert 80 in ArgHandler.get_skip_ports() assert 8080 in ArgHandler.get_skip_ports()
def test_get_skip_ports_empty(): ArgHandler.parse_arguments(["-T", "127.0.0.1"]) assert not ArgHandler.get_skip_ports()