Exemple #1
0
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)
Exemple #2
0
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()
Exemple #3
0
def test_get_skip_ports_empty():
    ArgHandler.parse_arguments(["-T", "127.0.0.1"])
    assert not ArgHandler.get_skip_ports()