class Rex::Proto::SMB::Constants

Constants

BATCH_OPLOCK
CAP_DFS

This server is DFS aware

CAP_LARGE_FILES

The server supports large files with 64 bit offsets

CAP_LARGE_READX
CAP_LARGE_WRITEX
CAP_LEVEL_II_OPLOCKS

The server supports level 2 oplocks

CAP_LOCK_AND_READ

The server supports the SMB_COM_LOCK_AND_READ SMB

CAP_MPX_MODE

The server supports SMB_COM_READ_MPX and SMB_COM_WRITE_MPX

CAP_NT_FIND
CAP_NT_SMBS

The server supports the SMBs particular to the NT LM 0.12 dialect

CAP_PASSTHRU
CAP_RAW_MODE

SMB Negotiate Capabilities The server supports SMB_COM_READ_RAW and SMB_COM_WRITE_RAW

CAP_RPC_REMOTE_APIS

The sever supports remote API requests via RPC

CAP_STATUS32

The server can respond with 32 bit status codes in Status.Status

CAP_UNICODE

The server supports Unicode strings

CAP_UNIX_EXTENSIONS
CREATE_ACCESS_CREATE
CREATE_ACCESS_EXIST
CREATE_ACCESS_OPENCREATE
CREATE_ACCESS_OVERCREATE
CREATE_ACCESS_OVEREXIST
CREATE_ACCESS_SUPERSEDE

Create Disposition

DIALECT

SMB Dialect Compatibility

EXCLUSIVE_OPLOCK
FILE_CASE_PRESERVED_NAMES
FILE_CREATE
FILE_DEVICE_8042_PORT
FILE_DEVICE_BATTERY
FILE_DEVICE_BEEP

Device Types

FILE_DEVICE_BUS_EXTENDER
FILE_DEVICE_CD_ROM
FILE_DEVICE_CD_ROM_FILE_SYSTEM
FILE_DEVICE_CONTROLLER
FILE_DEVICE_DFS
FILE_DEVICE_DISK
FILE_DEVICE_DISK_FILE_SYSTEM
FILE_DEVICE_FILE_SYSTEM
FILE_DEVICE_INPORT_PORT
FILE_DEVICE_IS_MOUNTED
FILE_DEVICE_KEYBOARD
FILE_DEVICE_MAILSLOT
FILE_DEVICE_MIDI_IN
FILE_DEVICE_MIDI_OUT
FILE_DEVICE_MODEM
FILE_DEVICE_MOUSE
FILE_DEVICE_MULTI_UNC_PROVIDER
FILE_DEVICE_NAMED_PIPE
FILE_DEVICE_NETWORK
FILE_DEVICE_NETWORK_BROWSER
FILE_DEVICE_NETWORK_FILE_SYSTEM
FILE_DEVICE_NETWORK_REDIRECTOR
FILE_DEVICE_NULL
FILE_DEVICE_PARALLEL_PORT
FILE_DEVICE_PHYSICAL_NETCARD
FILE_DEVICE_PRINTER
FILE_DEVICE_SCANNER
FILE_DEVICE_SCREEN
FILE_DEVICE_SERIAL_MOUSE_PORT
FILE_DEVICE_SERIAL_PORT
FILE_DEVICE_SOUND
FILE_DEVICE_STREAMS
FILE_DEVICE_TAPE
FILE_DEVICE_TAPE_FILE_SYSTEM
FILE_DEVICE_TRANSPORT
FILE_DEVICE_UNKNOWN
FILE_DEVICE_VDM
FILE_DEVICE_VIDEO
FILE_DEVICE_VIRTUAL_DISK
FILE_DEVICE_WAVE_IN
FILE_DEVICE_WAVE_OUT
FILE_FILE_COMPRESSION
FILE_FLOPPY_DISKETTE
FILE_OPEN
FILE_OPEN_IF
FILE_OVERWRITE
FILE_OVERWRITE_IF
FILE_PERSISTENT_ACLS
FILE_READ_ONLY_DEVICE
FILE_REMOTE_DEVICE
FILE_REMOVABLE_MEDIA

File and Device Attributes

FILE_SUPERSEDE

Dispositions, action to take if the file already exists or if the file is a new file and does not already exist

FILE_VIRTUAL_VOLUME
FILE_VOLUME_IS_COMPRESSED
FILE_VOLUME_QUOTAS
FILE_WRITE_ONE_MEDIA
FLAGS2_32_BIT_ERROR_CODES
FLAGS2_DFS_PATHNAMES
FLAGS2_EXTENDED_ATTRIBUTES
FLAGS2_EXTENDED_SECURITY
FLAGS2_IS_LONG_NAME
FLAGS2_LONG_PATH_COMPONENTS

NT Flags2 bits - cifs6.txt section 3.1.2

FLAGS2_READ_PERMIT_EXECUTE
FLAGS2_SMB_SECURITY_SIGNATURES
FLAGS2_SMB_SECURITY_SIGNATURES_REQUIRED
FLAGS2_UNICODE_STRINGS
FLAGS2_WIN2K_SIGNATURE
FLAGS_CASE_SENSITIVE
FLAGS_LOCK_SUPPORT
FLAGS_NOTIFY
FLAGS_OP_LOCKS
FLAGS_PATH_NORMALIZED
FLAGS_POSTED
FLAGS_REQ_RES

NT Flags bits - cifs6.txt section 3.1.1

FLAGS_RESERVED
LEVEL_II_OPLOCK
NBRAW_HDR_PKT

A raw NetBIOS session template

NBRAW_PKT
NEG_SECURITY_PASSWORD
NEG_SECURITY_SHARE

SMB Negotiate Security Modes

NETBIOS_REDIR

Wildcard NetBIOS name

NO_OPLOCK

OpLock Levels

NT_TRANSACT_CREATE

SMB_COM_NT_TRANSACT Subcommands

NT_TRANSACT_GET_USER_QUOTA
NT_TRANSACT_IOCTL
NT_TRANSACT_NOTIFY_CHANGE
NT_TRANSACT_QUERY_SECURITY_DESC
NT_TRANSACT_RENAME
NT_TRANSACT_SET_SECURITY_DESC
NT_TRANSACT_SET_USER_QUOTA
OPEN_ACCESS_EXEC
OPEN_ACCESS_READ

File Access

OPEN_ACCESS_READWRITE
OPEN_ACCESS_WRITE
OPEN_MODE_CREAT

Open Modes

OPEN_MODE_EXCL
OPEN_MODE_OPEN
OPEN_MODE_TRUNC
OPEN_SHARE_COMPAT

Shared Access

OPEN_SHARE_DENY_EXCL
OPEN_SHARE_DENY_NONE
OPEN_SHARE_DENY_READEXEC
OPEN_SHARE_DENY_WRITE
SMB2_HDR

The SMB2 header template

SMB2_OP_BREAK
SMB2_OP_CANCEL
SMB2_OP_CLOSE
SMB2_OP_CREATE
SMB2_OP_FIND
SMB2_OP_FLUSH
SMB2_OP_GETINFO
SMB2_OP_IOCTL
SMB2_OP_KEEPALIVE
SMB2_OP_LOCK
SMB2_OP_LOGOFF
SMB2_OP_NEGPROT

SMB Version 2 Commands

SMB2_OP_NOTIFY
SMB2_OP_READ
SMB2_OP_SESSSETUP
SMB2_OP_SETINFO
SMB2_OP_TCON
SMB2_OP_TDIS
SMB2_OP_WRITE
SMB_APPEND_ACCESS
SMB_BASE_HDR_PKT

A basic SMB template to read all responses

SMB_BASE_PKT
SMB_CLOSE_HDR_PKT

A SMB template for SMB Close requests

SMB_CLOSE_PKT
SMB_CLOSE_RES_HDR_PKT

A SMB template for SMB Close responses

SMB_CLOSE_RES_PKT
SMB_CLOSE_RES_WORD_COUNT
SMB_COM_CHECK_DIRECTORY
SMB_COM_CLOSE
SMB_COM_CLOSE_AND_TREE_DISC
SMB_COM_CLOSE_PRINT_FILE
SMB_COM_COPY
SMB_COM_CREATE
SMB_COM_CREATE_DIRECTORY

SMB Commands

SMB_COM_CREATE_NEW
SMB_COM_CREATE_TEMPORARY
SMB_COM_DELETE
SMB_COM_DELETE_DIRECTORY
SMB_COM_ECHO
SMB_COM_FIND
SMB_COM_FIND_CLOSE
SMB_COM_FIND_CLOSE2
SMB_COM_FIND_NOTIFY_CLOSE
SMB_COM_FIND_UNIQUE
SMB_COM_FLUSH
SMB_COM_GET_PRINT_QUEUE
SMB_COM_IOCTL
SMB_COM_IOCTL_SECONDARY
SMB_COM_LOCKING_ANDX
SMB_COM_LOCK_AND_READ
SMB_COM_LOCK_BYTE_RANGE
SMB_COM_LOGOFF_ANDX
SMB_COM_MOVE
SMB_COM_NEGOTIATE
SMB_COM_NEW_FILE_SIZE
SMB_COM_NO_ANDX_COMMAND
SMB_COM_NT_CANCEL
SMB_COM_NT_CREATE_ANDX
SMB_COM_NT_RENAME
SMB_COM_NT_TRANSACT
SMB_COM_NT_TRANSACT_SECONDARY
SMB_COM_OPEN
SMB_COM_OPEN_ANDX
SMB_COM_OPEN_PRINT_FILE
SMB_COM_PROCESS_EXIT
SMB_COM_QUERY_INFORMATION
SMB_COM_QUERY_INFORMATION2
SMB_COM_QUERY_INFORMATION_DISK
SMB_COM_QUERY_SERVER
SMB_COM_READ
SMB_COM_READ_ANDX
SMB_COM_READ_BULK
SMB_COM_READ_MPX
SMB_COM_READ_MPX_SECONDARY
SMB_COM_READ_RAW
SMB_COM_RENAME
SMB_COM_SEEK
SMB_COM_SESSION_SETUP_ANDX
SMB_COM_SET_INFORMATION
SMB_COM_SET_INFORMATION2
SMB_COM_TRANSACTION
SMB_COM_TRANSACTION2
SMB_COM_TRANSACTION2_SECONDARY
SMB_COM_TRANSACTION_SECONDARY
SMB_COM_TREE_CONNECT
SMB_COM_TREE_CONNECT_ANDX
SMB_COM_TREE_DISCONNECT
SMB_COM_UNLOCK_BYTE_RANGE
SMB_COM_WRITE
SMB_COM_WRITE_ANDX
SMB_COM_WRITE_AND_CLOSE
SMB_COM_WRITE_AND_UNLOCK
SMB_COM_WRITE_BULK
SMB_COM_WRITE_COMPLETE
SMB_COM_WRITE_MPX
SMB_COM_WRITE_MPX_SECONDARY
SMB_COM_WRITE_PRINT_FILE
SMB_COM_WRITE_RAW
SMB_CREATE_ANDX_RES_HDR_PKT

A SMB template for SMB Create ANDX responses

SMB_CREATE_ANDX_RES_PKT
SMB_CREATE_HDR_PKT

A SMB template for SMB Create requests

SMB_CREATE_PKT
SMB_CREATE_RES_HDR_PKT

A SMB template for SMB Create responses

SMB_CREATE_RES_PKT
SMB_DATA_TRANS2

A template for SMB_Data blocks of the SMB_COM_TRANSACTION2 requests

SMB_DELETE_ACCESS
SMB_DELETE_CHILD_ACCESS
SMB_DELETE_HDR_PKT

A SMB template for SMB Delete requests

SMB_DELETE_PKT
SMB_DELETE_RES_HDR_PKT

A SMB template for SMB Delete responses

SMB_DELETE_RES_PKT
SMB_ERROR_BUFFER_OVERFLOW
SMB_EXECUTE_ACCESS
SMB_EXT_FILE_ATTR_ARCHIVE
SMB_EXT_FILE_ATTR_COMPRESSED
SMB_EXT_FILE_ATTR_DIRECTORY
SMB_EXT_FILE_ATTR_HIDDEN
SMB_EXT_FILE_ATTR_NORMAL
SMB_EXT_FILE_ATTR_READONLY

SMB_EXT_FILE_ATTR msdn.microsoft.com/en-us/library/ee878573(prot.20).aspx

SMB_EXT_FILE_ATTR_SYSTEM
SMB_EXT_FILE_ATTR_TEMPORARY
SMB_EXT_FILE_BACKUP_SEMANTICS
SMB_EXT_FILE_DELETE_ON_CLOSE
SMB_EXT_FILE_NO_BUFFERING
SMB_EXT_FILE_POSIX_SEMANTICS
SMB_EXT_FILE_RANDOM_ACCESS
SMB_EXT_FILE_SEQUENTIAL_SCAN
SMB_EXT_FILE_WRITE_THROUGH
SMB_FIND_FILE_BOTH_DIRECTORY_INFO
SMB_FIND_FILE_BOTH_DIRECTORY_INFO_HDR

A template for SMB_FIND_FILE_BOTH_DIRECTORY_INFO Find information level

SMB_FIND_FILE_BOTH_DIRECTORY_INFO_HDR_LENGTH
SMB_FIND_FILE_DIRECTORY_INFO

SMB_COM_TRANS2 FIND_FIRST information levels

SMB_FIND_FILE_FULL_DIRECTORY_INFO
SMB_FIND_FILE_FULL_DIRECTORY_INFO_HDR

A template for SMB_FIND_FILE_FULL_DIRECTORY_INFO Find information level

SMB_FIND_FILE_FULL_DIRECTORY_INFO_HDR_LENGTH
SMB_FIND_FILE_NAMES_INFO
SMB_FIND_FILE_NAMES_INFO_HDR

A template for SMB_FIND_FILE_BOTH_DIRECTORY_INFO Find information level

SMB_FIND_FILE_NAMES_INFO_HDR_LENGTH
SMB_FIND_ID_BOTH_DIRECTORY_INFO
SMB_FIND_ID_FULL_DIRECTORY_INFO
SMB_HDR

The SMB header template

SMB_HDR_LENGTH
SMB_INFO_ALLOCATION

SMB_COM_TRANSACTION2 QUERY_FS_INFO information levels

SMB_INFO_IS_NAME_VALID
SMB_INFO_PASSTHROUGH
SMB_INFO_QUERY_ALL_EAS
SMB_INFO_QUERY_EAS_FROM_LIST
SMB_INFO_QUERY_EA_SIZE
SMB_INFO_STANDARD

SMB_COM_TRANSACTION2 QUERY_PATH_INFO information levels

SMB_INFO_VOLUME
SMB_NEGOTIATE_RES_WORD_COUNT

Word count values

SMB_NEG_HDR_PKT

A SMB template for SMB Dialect negotiation

SMB_NEG_PKT
SMB_NEG_RES_ERR_HDR_PKT

A SMB template for SMB Dialect negotiation responses (ERROR)

SMB_NEG_RES_ERR_PKT
SMB_NEG_RES_LM_HDR_PKT

A SMB template for SMB Dialect negotiation responses (LANMAN)

SMB_NEG_RES_LM_PKT
SMB_NEG_RES_NT_HDR_PKT

A SMB template for SMB Dialect negotiation responses (NTLM)

SMB_NEG_RES_NT_PKT
SMB_NTTRANS_HDR_PKT

A SMB template for SMB NTTransaction requests

SMB_NTTRANS_PKT
SMB_NTTRANS_RES_HDR_PKT

A SMB template for SMB NTTransaction responses

SMB_NTTRANS_RES_PKT
SMB_NTTRANS_SECONDARY_HDR_PKT

A SMB template for SMB NTTransaction_Secondary requests

SMB_NTTRANS_SECONDARY_PKT
SMB_NT_CREATE_ANDX_RES_WORD_COUNT
SMB_NT_STATUS_NOT_FOUND
SMB_OPEN_HDR_PKT

A SMB template for SMB OPEN requests

SMB_OPEN_PKT
SMB_OPEN_RES_HDR_PKT

A SMB template for SMB OPEN responses

SMB_OPEN_RES_PKT
SMB_QUERY_BASIC_MDC

SMB_COM_TRANSACTION2 MAX DATA COUNT information levels

SMB_QUERY_FILE_ALL_INFO
SMB_QUERY_FILE_ALT_NAME_INFO
SMB_QUERY_FILE_BASIC_INFO
SMB_QUERY_FILE_BASIC_INFO_ALIAS
SMB_QUERY_FILE_BASIC_INFO_HDR

A template for SMB_QUERY_FILE_BASIC_INFO query path information level

SMB_QUERY_FILE_BASIC_INFO_HDR_LENGTH
SMB_QUERY_FILE_COMPRESSION_INFO
SMB_QUERY_FILE_EA_INFO
SMB_QUERY_FILE_EA_INFO_ALIAS
SMB_QUERY_FILE_INTERNAL_INFO_ALIAS
SMB_QUERY_FILE_INTERNAL_INFO_MDC
SMB_QUERY_FILE_NAME_INFO
SMB_QUERY_FILE_NAME_INFO_ALIAS
SMB_QUERY_FILE_NETWORK_INFO_HDR

A template for SMB_QUERY_FILE_NETWORK_INFO query path information level

SMB_QUERY_FILE_NETWORK_INFO_HDR_LENGTH
SMB_QUERY_FILE_NETWORK_INFO_MDC
SMB_QUERY_FILE_NETWORK_OPEN_INFO
SMB_QUERY_FILE_STANDARD_INFO
SMB_QUERY_FILE_STANDARD_INFO_ALIAS
SMB_QUERY_FILE_STANDARD_INFO_HDR

A template for SMB_QUERY_FILE_STANDARD_INFO query path information level

SMB_QUERY_FILE_STANDARD_INFO_HDR_LENGTH
SMB_QUERY_FILE_STREAM_INFO
SMB_QUERY_FILE_UNIX_BASIC
SMB_QUERY_FS_ATTRIBUTE_INFO
SMB_QUERY_FS_DEVICE_INFO
SMB_QUERY_FS_SIZE_INFO
SMB_QUERY_FS_VOLUME_INFO
SMB_QUERY_STANDARD_MDC1
SMB_QUERY_STANDARD_MDC2
SMB_READ_ACCESS

Access Rights

SMB_READ_ANDX_RES_WORD_COUNT
SMB_READ_ATTRIBUTES_ACCESS
SMB_READ_CONTROL_ACCESS
SMB_READ_EA_ACCESS
SMB_READ_HDR_PKT

A SMB template for SMB Read requests

SMB_READ_PKT
SMB_READ_RES_HDR_PKT

A SMB template for SMB Read responses

SMB_READ_RES_HDR_PKT_LENGTH
SMB_READ_RES_PKT
SMB_RESOURCE_FILE_TYPE_BYTE_MODE_PIPE
SMB_RESOURCE_FILE_TYPE_COMM_DEVICE
SMB_RESOURCE_FILE_TYPE_DISK

SMB Resource types

SMB_RESOURCE_FILE_TYPE_MESSAGE_MODE_PIPE
SMB_RESOURCE_FILE_TYPE_PRINTER
SMB_SEARCH_HDR_PKT

A SMB template for SMB Search requests

SMB_SEARCH_PKT
SMB_SESSION_SETUP_ANDX_RES_WORD_COUNT
SMB_SETUP_GUEST

SMB Setup Actions

SMB_SETUP_LANMAN_HDR_PKT

A SMB template for SMB Session Setup requests (LANMAN)

SMB_SETUP_LANMAN_PKT
SMB_SETUP_NTLMV1_HDR_PKT

A SMB template for SMB Session Setup requests (NTLMV1)

SMB_SETUP_NTLMV1_PKT
SMB_SETUP_NTLMV2_HDR_PKT

A SMB template for SMB Session Setup requests (When extended security is being used)

SMB_SETUP_NTLMV2_PKT
SMB_SETUP_NTLMV2_RES_HDR_PKT

A SMB template for SMB Session Setup responses (When extended security is being used)

SMB_SETUP_NTLMV2_RES_PKT
SMB_SETUP_RES_HDR_PKT

A SMB template for SMB Session Setup responses (LANMAN/NTLMV1)

SMB_SETUP_RES_PKT
SMB_SETUP_USE_LANMAN_KEY
SMB_SET_FILE_BASIC_INFO_ALIAS
SMB_STATUS_ACCESS_DENIED
SMB_STATUS_LOGON_FAILURE
SMB_STATUS_MORE_PROCESSING_REQUIRED
SMB_STATUS_NO_SUCH_FILE
SMB_STATUS_OBJECT_NAME_NOT_FOUND
SMB_STATUS_SUCCESS

SMB Error Codes

SMB_SYNC_ACCESS
SMB_TRANS2_FIND_FIRST2_PARAMETERS

A template for SMB_Parameters blocks of the SMB_COM_TRANSACTION2 FIND_FIRST2 responses

SMB_TRANS2_FIND_FIRST2_RES_PARAMETERS

A template for SMB TRANS2_FIND_FIRST response parameters

SMB_TRANS2_HDR_PKT

A SMB template for SMB Transaction2 requests

SMB_TRANS2_PKT
SMB_TRANS2_QUERY_FILE_PARAMETERS

A template for SMB_Parameters blocks of the SMB_COM_TRANSACTION2 QUERY_FILE_INFO responses

SMB_TRANS2_QUERY_PATH_INFORMATION_RES_PARAMETERS

A template for SMB FIND_FIRST2 TRANS2 response parameters

SMB_TRANS2_QUERY_PATH_PARAMETERS

A template for SMB_Parameters blocks of the SMB_COM_TRANSACTION2 QUERY_PATH_INFO responses

SMB_TRANS2_RES_WORD_COUNT
SMB_TRANS_HDR_PKT

A SMB template for SMB Transaction requests

SMB_TRANS_PKT
SMB_TRANS_RES_HDR_PKT

A SMB template for SMB Transaction responses

SMB_TRANS_RES_PKT
SMB_TRANS_RES_PKT_LENGTH
SMB_TREE_CONN_ANDX_RES_PKT

A template for SMB Tree Connect commands in responses

SMB_TREE_CONN_ANDX_WORD_COUNT
SMB_TREE_CONN_HDR_PKT

A SMB template for SMB Tree Connect requests

SMB_TREE_CONN_PKT
SMB_TREE_CONN_RES_HDR_PKT

A SMB template for SMB Tree Connect requests

SMB_TREE_CONN_RES_PKT
SMB_TREE_DISCONN_HDR_PKT

A SMB template for SMB Tree Disconnect requests

SMB_TREE_DISCONN_PKT
SMB_TREE_DISCONN_RES_HDR_PKT

A SMB template for SMB Tree Disconnect requests

SMB_TREE_DISCONN_RES_PKT
SMB_WRITE_ACCESS
SMB_WRITE_ATTRIBUTES_ACCESS
SMB_WRITE_DAC_ACCESS
SMB_WRITE_EA_ACCESS
SMB_WRITE_HDR_PKT

A SMB template for SMB Write requests

SMB_WRITE_OWNER_ACCESS
SMB_WRITE_PKT
SMB_WRITE_RES_HDR_PKT

A SMB template for SMB Write responses

SMB_WRITE_RES_PKT
TRANS2_CREATE_DIRECTORY
TRANS2_FIND_FIRST2
TRANS2_FIND_NEXT2
TRANS2_FIND_NOTIFY_FIRST
TRANS2_FIND_NOTIFY_NEXT
TRANS2_FSCTL
TRANS2_GET_DFS_REFERRAL
TRANS2_IOCTL2
TRANS2_OPEN2

SMB_COM_TRANSACTION2 SubCommands

TRANS2_QUERY_FILE_INFO
TRANS2_QUERY_FS_INFO
TRANS2_QUERY_PATH_INFO
TRANS2_REPORT_DFS_INCONSISTENCY
TRANS2_SESSION_SETUP
TRANS2_SET_FILE_INFO
TRANS2_SET_FS_INFO
TRANS2_SET_PATH_INFO

Private Class Methods

make_nbs(template) click to toggle source

Create a NetBIOS session packet template

# File lib/rex/proto/smb/constants.rb, line 503
def self.make_nbs (template)
  Rex::Struct2::CStructTemplate.new(
    [ 'uint8',    'Type',             0 ],
    [ 'uint8',    'Flags',            0 ],
    [ 'uint16n',  'PayloadLen',       0 ],
    [ 'template', 'Payload',          template ]
  ).create_restraints(
    [ 'Payload', 'PayloadLen',  nil, true ]
  )
end