Class: SmbRpc::Samr::SamrSetInformationUser2Req

Inherits:
BinData::Record
  • Object
show all
Defined in:
lib/smbRpc/samr/setInformationUser.rb

Instance Method Summary collapse

Instance Method Details

#initialize_instanceObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/smbRpc/samr/setInformationUser.rb', line 13

def initialize_instance
  super
  userHandle.value = get_parameter(:handle)
  session_key = get_parameter(:session_key)
  password = get_parameter(:pass)

  if password.bytesize > 0
    buffer.ntOwfPassword.len = 16
    buffer.ntOwfPassword.maximumLength = 16
    buffer.ntPasswordPresent.value = 1
    buffer.whichFields.ntPasswordPresent.value = 1
    buffer.lmOwfPassword.len = 16
    buffer.lmOwfPassword.maximumLength = 16
    buffer.lmPasswordPresent.value = 1
    buffer.whichFields.lmPasswordPresent.value = 1
    buffer.ntOwfPasswordNdr.str = [Smbhash.ntlm_hash(password)].pack("H*").to_des_ecb_lm(session_key)
    buffer.lmOwfPasswordNdr.str = [Smbhash.lm_hash(password)].pack("H*").to_des_ecb_lm(session_key)
  end

  buffer.userAccountControl.value = get_parameter(:accControl)
  buffer.whichFields.userAccountControl.value = 1 if buffer.userAccountControl.value > 0
  request.pduHead.frag_length = self.num_bytes
  request.opnum.value = 58        		#SamrSetInformationUser2
end