Usage

module:

from hatsploit.lib.module.basic import *

class HatSploitModule(Module, Handler):
    ...

payload:

from hatsploit.lib.payload.basic import *

class HatSploitPayload(Payload, Handler):
    ...

Options

module:

  • payload - PayloadOption(None, "Payload to use.", True)
  • blinder - BooleanOption('no', "Start blind command injection.", False)
  • lhost - IPv4Option(TCPTools.get_local_host(), "Local host.", True)
  • lport - PortOption(8888, "Local port.", True)

payload:

  • encoder - EncoderOption(None, "Encoder to use.", False)
  • rhost - IPv4Option(TCPTools.get_local_host(), "Remote host.", True)
  • rport - PortOption(8888, "Remote port.", True)

Methods

  • self.module_handle(...) - Handle session for current module and payload.

required arguments:

  • sender - function that takes one argument and is used to exploit the vulnerability and send the payload.

NOTE: sender is a complete exploit. This function should take command or payload and execute it on target. This function can easily be called an entry point for handler.

optional arguments:

  • method - method to use, to send the payload (e.g. printf, bash_echo, echo, certutil, etc.)
  • concat - concatenation operator (e.g. &&)
  • linemax - maximum characters in the command.
  • location - if payload is sent to the filesystem, you can specify custom path. (e.g. /tmp or %TEMP%)
  • background - background operator (e.g. &)
  • on_session - function that takes no arguments and executed right after session was opened.

Example

This example below is a part of module, which exploits RCE vulnerability and passes the exploit to handler.

...

def exploit(self, command):
    ...

def run(self):
    self.module_handle(
        sender=self.exploit,
    )

After this, if exploit works, session should be opened.