MCPcopy
hub / github.com/fortra/impacket / setupConnection

Method setupConnection

impacket/smbserver.py:5351–5377  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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()

Callers 1

_ntlm_authMethod · 0.95

Calls 7

get_dce_rpcMethod · 0.45
connectMethod · 0.45
bindMethod · 0.45
set_credentialsMethod · 0.45
set_auth_typeMethod · 0.45
set_auth_levelMethod · 0.45
set_session_keyMethod · 0.45

Tested by

no test coverage detected