Class: PacketGen::Plugin::SMB2::SessionSetup::Response

Inherits:
Base
  • Object
show all
Defined in:
lib/packetgen/plugin/smb2/session_setup/response.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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        BufferOffset           |           BufferLength        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Buffer (variable)                      |
+                                                               +
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Author:

  • Sylvain Daubert

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

define_smb2_pad_field

Instance Attribute Details

#bufferGSSAPI

Returns:



52
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 52

define_attr :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset.positive? }

#buffer_lengthInteger

The length of the #buffer field.

Returns:

  • (Integer)


49
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 49

define_attr :buffer_length, BinStruct::Int16le

#buffer_offsetInteger

The offset, from the beginning of the SMB2 header of the #buffer.

Returns:

  • (Integer)


45
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 45

define_attr :buffer_offset, BinStruct::Int16le, default: SMB2::HEADER_SIZE + 8

#flagsInteger

16-bit session flags

Returns:

  • (Integer)


41
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 41

define_bit_attr :flags, endian: :little, flags_rsv: 13, flags_encrypt_data: 1, lags_is_null: 1, flags_is_guest: 1

#flags_encrypt_data?Boolean

Returns:

  • (Boolean)


41
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 41

define_bit_attr :flags, endian: :little, flags_rsv: 13, flags_encrypt_data: 1, lags_is_null: 1, flags_is_guest: 1

#flags_is_guest?Boolean

Returns:

  • (Boolean)


41
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 41

define_bit_attr :flags, endian: :little, flags_rsv: 13, flags_encrypt_data: 1, lags_is_null: 1, flags_is_guest: 1

#flags_is_null?Boolean

Returns:

  • (Boolean)


41
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 41

define_bit_attr :flags, endian: :little, flags_rsv: 13, flags_encrypt_data: 1, lags_is_null: 1, flags_is_guest: 1

#flags_rsvInteger

13-bit reserved field

Returns:

  • (Integer)


41
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 41

define_bit_attr :flags, endian: :little, flags_rsv: 13, flags_encrypt_data: 1, lags_is_null: 1, flags_is_guest: 1

#structure_sizeInteger

16-bit session setup request structure size. Should be 9.

Returns:

  • (Integer)


28
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 28

define_attr :structure_size, BinStruct::Int16le, default: 9

Class Method Details

.protocol_nameString

Protocol name

Returns:

  • (String)


67
68
69
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 67

def self.protocol_name
  'SMB2::SessionSetup::Response'
end

Instance Method Details

#calc_lengthvoid

This method returns an undefined value.

Calculate and set #buffer_length and #buffer_offset fields.



56
57
58
59
60
61
62
63
# File 'lib/packetgen/plugin/smb2/session_setup/response.rb', line 56

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