from abc import ABCMeta, abstractmethod

__author__ = 'itamar'


class HostExploiter(object):
    __metaclass__ = ABCMeta
    _target_os_type = []

    def is_os_supported(self, host):
        return host.os.get('type') in self._target_os_type

    @abstractmethod
    def exploit_host(self, host, depth=-1, src_path=None):
        raise NotImplementedError()

from win_ms08_067 import Ms08_067_Exploiter
from wmiexec import WmiExploiter
from smbexec import SmbExploiter
from rdpgrinder import RdpExploiter
from sshexec import SSHExploiter
from shellshock import ShellShockExploiter
from sambacry import SambaCryExploiter