本文整理汇总了Python中impacket.smb3.SMB2SessionSetup方法的典型用法代码示例。如果您正苦于以下问题:Python smb3.SMB2SessionSetup方法的具体用法?Python smb3.SMB2SessionSetup怎么用?Python smb3.SMB2SessionSetup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类impacket.smb3
的用法示例。
在下文中一共展示了smb3.SMB2SessionSetup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: request_SMBv23
# 需要导入模块: from impacket import smb3 [as 别名]
# 或者: from impacket.smb3 import SMB2SessionSetup [as 别名]
def request_SMBv23(host, port=445):
# start client
smb_client = smb3.SMB3(host, host, sess_port=port)
# start: modified from login()
# https://github.com/SecureAuthCorp/impacket/blob/master/impacket/smb3.py
session_setup = smb3.SMB2SessionSetup()
if smb_client.RequireMessageSigning is True:
session_setup['SecurityMode'] = smb3.SMB2_NEGOTIATE_SIGNING_REQUIRED
else:
session_setup['SecurityMode'] = smb3.SMB2_NEGOTIATE_SIGNING_ENABLED
session_setup['Flags'] = 0
## NTLMSSP
blob = smb3.SPNEGO_NegTokenInit()
blob['MechTypes'] = [smb3.TypesMech['NTLMSSP - Microsoft NTLM Security Support Provider']]
auth = ntlm.getNTLMSSPType1(smb_client._Connection['ClientName'], '',
smb_client._Connection['RequireSigning'])
blob['MechToken'] = auth.getData()
session_setup['SecurityBufferLength'] = len(blob)
session_setup['Buffer'] = blob.getData()
packet = smb_client.SMB_PACKET()
packet['Command'] = smb3.SMB2_SESSION_SETUP
packet['Data'] = session_setup
packet_id = smb_client.sendSMB(packet)
smb_response = smb_client.recvSMB(packet_id)
if smb_client._Connection['Dialect'] == smb3.SMB2_DIALECT_311:
smb_client.__UpdatePreAuthHash(smb_response.rawData)
## NTLM challenge
if smb_response.isValidAnswer(smb3.STATUS_MORE_PROCESSING_REQUIRED):
session_setup_response = smb3.SMB2SessionSetup_Response(smb_response['Data'])
resp_token = smb3.SPNEGO_NegTokenResp(session_setup_response['Buffer'])
return resp_token['ResponseToken']
else:
return None