Session wrapper is a class that is being called when new session opens. This class contains all the necessary methods for working with the session. Session wrapper should be defined in the payload, but if not, the default one is used.
NOTE: We still highly advise you to use the default session wrapper that is provided by the HatSploit Framework.
Template
from hatsploit.lib.session import Session
class HatSploitSession(Session):
def __init__(self):
super().__init__({
'Post': "",
'Platform': Platform,
'Arch': Arch,
'Type': "",
'Host': "",
'Port': None
})
def open(self, client):
pass
def close(self):
pass
def heartbeat(self):
return False
def send_command(self, command, output=False):
return ""
def download(self, remote_file, local_path):
pass
def upload(self, local_file, remote_path):
pass
def interact(self):
pass
NOTE: All session wrappers should inherit from Session
, otherwise session wrapper won’t be imported.
Let’s go through all the necessary methods:
self.info
- Is a dictionary containing all necessary information about the session.self.open(client)
- Opens a session for a client.self.close()
- Closes session.self.heartbeat()
- Checks if session is alive.self.send_command(command, output)
- Send command to the session.self.download(remote_file, local_path)
- Download a file from the session.self.upload(local_file, remote_path)
- Upload a file to the session.self.interact()
- Interact with the session.