Skip to main content

Module smb2

Module smb2 

Source
Expand description

SMB2 protocol types, parsing, and serialization.

Implements the subset of MS-SMB2 needed for mount_smbfs / SMB clients: NEGOTIATE, SESSION_SETUP, TREE_CONNECT, CREATE, CLOSE, READ, WRITE, QUERY_DIRECTORY (FIND), QUERY_INFO, SET_INFO, LOGOFF, TREE_DISCONNECT.

Structs§

Smb2Header

Constants§

DELETE
FILE_ALL_INFORMATION
FILE_APPEND_DATA
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_TAG_INFORMATION
FILE_BASIC_INFORMATION
FILE_BOTH_DIRECTORY_INFORMATION
FILE_CREATE
FILE_DIRECTORY_FILE
FILE_DIRECTORY_INFORMATION
FILE_DISPOSITION_INFORMATION
FILE_EA_INFORMATION
FILE_FULL_DIRECTORY_INFORMATION
FILE_ID_BOTH_DIRECTORY_INFORMATION
FILE_ID_FULL_DIRECTORY_INFORMATION
FILE_INTERNAL_INFORMATION
FILE_LIST_DIRECTORY
FILE_NETWORK_OPEN_INFORMATION
FILE_NON_DIRECTORY_FILE
FILE_OPEN
FILE_OPEN_IF
FILE_OVERWRITE
FILE_OVERWRITE_IF
FILE_POSITION_INFORMATION
FILE_READ_ATTRIBUTES
FILE_READ_DATA
FILE_READ_EA
FILE_RENAME_INFORMATION
FILE_SHARE_DELETE
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_STANDARD_INFORMATION
FILE_STREAM_INFORMATION
FILE_SUPERSEDE
FILE_WRITE_ATTRIBUTES
FILE_WRITE_DATA
FILE_WRITE_EA
FS_ATTRIBUTE_INFORMATION
FS_FULL_SIZE_INFORMATION
FS_SECTOR_SIZE_INFORMATION
FS_SIZE_INFORMATION
FS_VOLUME_INFORMATION
GENERIC_ALL
GENERIC_READ
GENERIC_WRITE
MAXIMUM_ALLOWED
READ_CONTROL
SMB1_MAGIC
SMB2_0_INFO_FILE
SMB2_0_INFO_FILESYSTEM
SMB2_0_INFO_SECURITY
SMB2_CLOSE
SMB2_CREATE
SMB2_DIALECT_202
SMB2_DIALECT_210
SMB2_DIALECT_300
SMB2_DIALECT_302
SMB2_DIALECT_311
SMB2_FLAGS_SERVER_TO_REDIR
SMB2_FLUSH
SMB2_HEADER_SIZE
SMB2_IOCTL
SMB2_LOCK
SMB2_LOGOFF
SMB2_MAGIC
SMB2_NEGOTIATE
SMB2_QUERY_DIRECTORY
SMB2_QUERY_INFO
SMB2_READ
SMB2_SESSION_SETUP
SMB2_SET_INFO
SMB2_TREE_CONNECT
SMB2_TREE_DISCONNECT
SMB2_WRITE
STATUS_ACCESS_DENIED
STATUS_END_OF_FILE
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_MORE_PROCESSING
STATUS_NOT_SUPPORTED
STATUS_NO_MORE_FILES
STATUS_NO_SUCH_FILE
STATUS_OBJECT_NAME_COLLISION
STATUS_OBJECT_NAME_NOT_FOUND
STATUS_OBJECT_PATH_NOT_FOUND
STATUS_SUCCESS
SYNCHRONIZE

Functions§

asn1_context
asn1_octet_string
asn1_sequence
asn1_write_length
build_smb1_to_smb2_negotiate_response
Build an SMB2 NEGOTIATE response to an SMB1 negotiate request. This tells the client to upgrade from SMB1 to SMB2. Per MS-SMB2 3.3.5.3.1: the server responds with an SMB2 NEGOTIATE response with DialectRevision = 0x02FF (wildcard) to indicate that the client should re-negotiate using SMB2.
build_spnego_negotiate_token
Build a SPNEGO negTokenInit containing the NTLMSSP OID and the mechListMIC “not_defined_in_RFC4178@please_ignore”, matching the exact 74-byte blob that Samba sends in its negotiate responses.
filetime_to_unix
Unix timestamp from Windows FILETIME.
from_utf16le
Decode a UTF-16LE string from SMB wire format.
hex_dump
Format a hex dump of the first max_bytes bytes of data (for debug logging).
is_smb1_negotiate
Check if the given message bytes are an SMB1 negotiate request (magic \xFF SMB).
read_message
Read an SMB message from a TCP stream (NetBIOS framing). Returns the raw message bytes (without the 4-byte length prefix).
read_u16_le
read_u32_le
read_u64_le
spnego_accept_complete
Final SPNEGO accept-complete token.
to_utf16le
Encode a UTF-16LE string (for SMB wire format).
unix_to_filetime
Windows FILETIME (100-ns intervals since 1601-01-01) from Unix timestamp.
wrap_ntlmssp_in_spnego
Wrap NTLMSSP in a GSS/SPNEGO blob for SESSION_SETUP response.