Class: PacketGen::Plugin::SMB2::SessionSetup::Request
- Defined in:
- lib/packetgen/plugin/smb2/session_setup/request.rb
Overview
SMB2 SessionSetup request structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| StructureSize | Flags | SecurityMode |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Channel |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BufferOffset | BufferLength |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PreviousSessionId |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Buffer (variable) |
+ +
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Constant Summary collapse
- SECURITY_MODES =
Security modes
Negotiate::Request::SECURITY_MODES
Instance Attribute Summary collapse
- #buffer ⇒ GSSAPI
-
#buffer_length ⇒ Integer
The length of the #buffer field.
-
#buffer_offset ⇒ Integer
The offset, from the beginning of the SMB2 header of the #buffer.
-
#cap_dfs ⇒ Boolean
Indicates if Distributed File system (DFS) is supported.
-
#cap_rsv ⇒ Boolean
31-bit reserved field.
-
#capabilities ⇒ Integer
32-bit capabilities field.
-
#channel ⇒ Integer
32-bit reserved field.
-
#flags ⇒ Integer
8-bit flags for SMB 3 dialect.
- #flags_binding? ⇒ Boolean
- #flags_rsv ⇒ Integer
-
#prev_session_id ⇒ Integer
64-bit previously established session id.
-
#security_mode ⇒ Integer
16-bit security mode field.
-
#structure_size ⇒ Integer
16-bit session setup request structure size.
Class Method Summary collapse
-
.protocol_name ⇒ String
Protocol name.
Instance Method Summary collapse
-
#calc_length ⇒ void
Calculate and set #buffer_length and #buffer_offset fields.
Methods inherited from Base
Instance Attribute Details
#buffer ⇒ GSSAPI
80 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 80 define_attr :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset.positive? } |
#buffer_length ⇒ Integer
The length of the #buffer field.
73 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 73 define_attr :buffer_length, BinStruct::Int16le |
#buffer_offset ⇒ Integer
The offset, from the beginning of the SMB2 header of the #buffer.
69 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 69 define_attr :buffer_offset, BinStruct::Int16le, default: SMB2::HEADER_SIZE + (6 * 4) |
#cap_dfs ⇒ Boolean
Indicates if Distributed File system (DFS) is supported
61 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 61 define_bit_attr :capabilities, endian: :little, cap_rsv: 31, cap_dfs: 1 |
#cap_rsv ⇒ Boolean
31-bit reserved field
61 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 61 define_bit_attr :capabilities, endian: :little, cap_rsv: 31, cap_dfs: 1 |
#capabilities ⇒ Integer
32-bit capabilities field.
61 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 61 define_bit_attr :capabilities, endian: :little, cap_rsv: 31, cap_dfs: 1 |
#channel ⇒ Integer
32-bit reserved field
65 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 65 define_attr :channel, BinStruct::Int32le |
#flags ⇒ Integer
8-bit flags for SMB 3 dialect.
47 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 47 define_bit_attr :flags, flags_rsv: 7, flags_binding: 1 |
#flags_binding? ⇒ Boolean
47 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 47 define_bit_attr :flags, flags_rsv: 7, flags_binding: 1 |
#flags_rsv ⇒ Integer
47 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 47 define_bit_attr :flags, flags_rsv: 7, flags_binding: 1 |
#prev_session_id ⇒ Integer
64-bit previously established session id
77 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 77 define_attr :prev_session_id, BinStruct::Int64le |
#security_mode ⇒ Integer
16-bit security mode field.
51 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 51 define_attr :security_mode, BinStruct::Int8Enum, enum: SECURITY_MODES |
#structure_size ⇒ Integer
16-bit session setup request structure size. Should be 25.
39 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 39 define_attr :structure_size, BinStruct::Int16le, default: 25 |
Class Method Details
.protocol_name ⇒ String
Protocol name
95 96 97 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 95 def self.protocol_name 'SMB2::SessionSetup::Request' end |
Instance Method Details
#calc_length ⇒ void
This method returns an undefined value.
Calculate and set #buffer_length and #buffer_offset fields.
84 85 86 87 88 89 90 91 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 84 def calc_length self.buffer_length = self[:buffer].sz self.buffer_offset = if self.buffer_length.zero? 0 else SMB2.new.sz + offset_of(:buffer) end end |