(self)
| 5349 | self.dce = None |
| 5350 | |
| 5351 | def setupConnection(self): |
| 5352 | binding_string_nrpc = epm.hept_map(self.dcip, self.nrpc_uid, dataRepresentation=self.syntax, protocol='ncacn_ip_tcp') |
| 5353 | rpctransport = transport.DCERPCTransportFactory(binding_string_nrpc) |
| 5354 | dce = rpctransport.get_dce_rpc() |
| 5355 | dce.connect() |
| 5356 | dce.bind(nrpc.MSRPC_UUID_NRPC, transfer_syntax=uuid.bin_to_uuidtup(self.syntax)) |
| 5357 | |
| 5358 | resp = nrpc.hNetrServerReqChallenge(dce, self.primary_name, self.computer_name + '\x00', self.client_challenge) |
| 5359 | serverchall = resp["ServerChallenge"] |
| 5360 | sessionKey = nrpc.ComputeSessionKeyStrongKey(None, self.client_challenge, serverchall, self.computer_account_hash) |
| 5361 | clientcred = nrpc.ComputeNetlogonCredential(self.client_challenge, sessionKey) |
| 5362 | resp = nrpc.hNetrServerAuthenticate3(dce, self.primary_name + '\x00', self.computer_account_name + '\x00', |
| 5363 | nrpc.NETLOGON_SECURE_CHANNEL_TYPE.WorkstationSecureChannel, |
| 5364 | self.computer_name + '\x00', clientcred, 0x600FFFFF) |
| 5365 | |
| 5366 | dce.set_credentials(self.computer_account_name, "THIS_IS_IGNORED_IN_IMPACKET", self.computer_account_domain) |
| 5367 | dce.set_auth_type(rpcrt.RPC_C_AUTHN_NETLOGON) |
| 5368 | dce.set_auth_level(self.authn_level_packet) |
| 5369 | |
| 5370 | resp = dce.bind(nrpc.MSRPC_UUID_NRPC, alter=1, transfer_syntax=uuid.bin_to_uuidtup(self.syntax)) |
| 5371 | |
| 5372 | auth = nrpc.ComputeNetlogonAuthenticator(clientcred, sessionKey) |
| 5373 | |
| 5374 | dce.set_session_key(sessionKey) |
| 5375 | resp = nrpc.hNetrLogonGetCapabilities(dce, self.primary_name, self.computer_name, auth) |
| 5376 | self.authenticator = resp['ReturnAuthenticator'] |
| 5377 | self.dce = dce |
| 5378 | |
| 5379 | def logonUserAndGetSessionKey(self, authenticateMessage, serverChallenge): |
| 5380 | request = nrpc.NetrLogonSamLogonWithFlags() |
no test coverage detected