def METHOD_NAME(
    self,
    host: TargetHost,
    options: SNMPOptions,
    community_strings: Iterable[str],
    command: str,
    agent_binary_downloaded: Event,
    interrupt: Event,
) -> ExploiterResult:
    exploit_result = ExploiterResult(exploitation_success=False, propagation_success=False)
    for community_string in interruptible_iter(community_strings, interrupt):
        (
            exploit_result.exploitation_success,
            exploit_result.propagation_success,
        ) = self._exploit_client.exploit_host(
            host,
            community_string,
            command,
            agent_binary_downloaded,
            options,
        )
        if exploit_result.exploitation_success:
            break
    return exploit_result