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
82 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 82 define_field :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset.positive? } |
#buffer_length ⇒ Integer
The length of the #buffer field.
75 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 75 define_field :buffer_length, PacketGen::Types::Int16le |
#buffer_offset ⇒ Integer
The offset, from the beginning of the SMB2 header of the #buffer.
71 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 71 define_field :buffer_offset, PacketGen::Types::Int16le, default: SMB2::HEADER_SIZE + 6 * 4 |
#cap_dfs ⇒ Boolean
Indicates if Distributed File system (DFS) is supported
63 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 63 define_bit_fields_on :capabilities, :cap_rsv, 31, :cap_dfs |
#cap_rsv ⇒ Boolean
31-bit reserved field
63 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 63 define_bit_fields_on :capabilities, :cap_rsv, 31, :cap_dfs |
#capabilities ⇒ Integer
32-bit capabilities field.
56 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 56 define_field :capabilities, PacketGen::Types::Int32le |
#channel ⇒ Integer
32-bit reserved field
67 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 67 define_field :channel, PacketGen::Types::Int32le |
#flags ⇒ Integer
8-bit flags for SMB 3 dialect.
43 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 43 define_field :flags, PacketGen::Types::Int8 |
#flags_binding? ⇒ Boolean
48 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 48 define_bit_fields_on :flags, :flags_rsv, 7, :flags_binding |
#flags_rsv ⇒ Integer
48 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 48 define_bit_fields_on :flags, :flags_rsv, 7, :flags_binding |
#prev_session_id ⇒ Integer
64-bit previously established session id
79 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 79 define_field :prev_session_id, PacketGen::Types::Int64le |
#security_mode ⇒ Integer
16-bit security mode field.
52 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 52 define_field :security_mode, PacketGen::Types::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_field :structure_size, PacketGen::Types::Int16le, default: 25 |
Class Method Details
.protocol_name ⇒ String
Protocol name
97 98 99 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 97 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.
86 87 88 89 90 91 92 93 |
# File 'lib/packetgen/plugin/smb2/session_setup/request.rb', line 86 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 |