本文整理汇总了Python中impacket.smb3.SMB2_SESSION_SETUP属性的典型用法代码示例。如果您正苦于以下问题:Python smb3.SMB2_SESSION_SETUP属性的具体用法?Python smb3.SMB2_SESSION_SETUP怎么用?Python smb3.SMB2_SESSION_SETUP使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类impacket.smb3
的用法示例。
在下文中一共展示了smb3.SMB2_SESSION_SETUP属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from impacket import smb3 [as 别名]
# 或者: from impacket.smb3 import SMB2_SESSION_SETUP [as 别名]
def __init__(self,config):
Thread.__init__(self)
self.daemon = True
self.server = 0
#Config object
self.config = config
#Current target IP
self.target = None
#Targets handler
self.targetprocessor = self.config.target
#Username we auth as gets stored here later
self.authUser = None
self.proxyTranslator = None
# Here we write a mini config for the server
smbConfig = ConfigParser.ConfigParser()
smbConfig.add_section('global')
smbConfig.set('global','server_name','server_name')
smbConfig.set('global','server_os','UNIX')
smbConfig.set('global','server_domain','WORKGROUP')
smbConfig.set('global','log_file','smb.log')
smbConfig.set('global','credentials_file','')
if self.config.smb2support is True:
smbConfig.set("global", "SMB2Support", "True")
else:
smbConfig.set("global", "SMB2Support", "False")
if self.config.outputFile is not None:
smbConfig.set('global','jtr_dump_path',self.config.outputFile)
# IPC always needed
smbConfig.add_section('IPC$')
smbConfig.set('IPC$','comment','')
smbConfig.set('IPC$','read only','yes')
smbConfig.set('IPC$','share type','3')
smbConfig.set('IPC$','path','')
# Change address_family to IPv6 if this is configured
if self.config.ipv6:
SMBSERVER.address_family = socket.AF_INET6
# changed to dereference configuration interfaceIp
self.server = SMBSERVER((config.interfaceIp,445), config_parser = smbConfig)
logging.getLogger('impacket.smbserver').setLevel(logging.CRITICAL)
self.server.processConfigFile()
self.origSmbComNegotiate = self.server.hookSmbCommand(smb.SMB.SMB_COM_NEGOTIATE, self.SmbComNegotiate)
self.origSmbSessionSetupAndX = self.server.hookSmbCommand(smb.SMB.SMB_COM_SESSION_SETUP_ANDX, self.SmbSessionSetupAndX)
self.origSmbNegotiate = self.server.hookSmb2Command(smb3.SMB2_NEGOTIATE, self.SmbNegotiate)
self.origSmbSessionSetup = self.server.hookSmb2Command(smb3.SMB2_SESSION_SETUP, self.SmbSessionSetup)
# Let's use the SMBServer Connection dictionary to keep track of our client connections as well
#TODO: See if this is the best way to accomplish this
# changed to dereference configuration interfaceIp
self.server.addConnection('SMBRelay', config.interfaceIp, 445)
### SMBv2 Part #################################################################
示例2: request_SMBv23
# 需要导入模块: from impacket import smb3 [as 别名]
# 或者: from impacket.smb3 import SMB2_SESSION_SETUP [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