MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / _sendSMBMessage_SMB1

Method _sendSMBMessage_SMB1

pager_lib/smb/base.py:1784–1807  ·  view source on GitHub ↗
(self, smb_message)

Source from the content-addressed store, hash-verified

1782 #
1783
1784 def _sendSMBMessage_SMB1(self, smb_message):
1785 if smb_message.mid == 0:
1786 smb_message.mid = self._getNextMID_SMB1()
1787 if not smb_message.uid:
1788 smb_message.uid = self.uid
1789 if self.is_signing_active:
1790 smb_message.flags2 |= SMB_FLAGS2_SMB_SECURITY_SIGNATURE
1791
1792 # Increment the next_signing_id as described in [MS-CIFS] 3.2.4.1.3
1793 smb_message.security = self.next_signing_id
1794 self.next_signing_id += 2 # All our defined messages currently have responses, so always increment by 2
1795 raw_data = smb_message.encode()
1796
1797 md = ntlm.MD5(self.signing_session_key)
1798 if self.signing_challenge_response:
1799 md.update(self.signing_challenge_response)
1800 md.update(raw_data)
1801 signature = md.digest()[:8]
1802
1803 self.log.debug('MID is %d. Signing ID is %d. Signature is %s. Total raw message is %d bytes', smb_message.mid, smb_message.security, binascii.hexlify(signature), len(raw_data))
1804 smb_message.raw_data = raw_data[:14] + signature + raw_data[22:]
1805 else:
1806 smb_message.raw_data = smb_message.encode()
1807 self.sendNMBMessage(smb_message.raw_data)
1808
1809 def _getNextMID_SMB1(self):
1810 self.mid += 1

Callers

nothing calls this directly

Calls 6

_getNextMID_SMB1Method · 0.95
debugMethod · 0.80
sendNMBMessageMethod · 0.80
encodeMethod · 0.45
updateMethod · 0.45
digestMethod · 0.45

Tested by

no test coverage detected