Parent

Class/Module Index [+]

Quicksearch

Rex::Proto::SMB::Crypt

Public Class Methods

is_signature_correct?(mackey, sequence_counter, data) click to toggle source
# File lib/rex/proto/smb/crypt.rb, line 27
def self.is_signature_correct?(mackey, sequence_counter, data)
        signature1 = data[18,8]
        signature2 = sign_smb_packet(mackey, sequence_counter, data.dup)[18,8]
        return signature1 == signature2
end
sign_smb_packet(mackey, sequence_counter, data) click to toggle source

Return a signed SMB packet

# File lib/rex/proto/smb/crypt.rb, line 17
def self.sign_smb_packet(mackey, sequence_counter, data)
        raise RuntimeError, "No OpenSSL support" if not @@loaded_openssl
        seq = Rex::Text::pack_int64le(sequence_counter)
        netbios_hdr = data.slice!(0,4)
        data[14,8] = seq
        signature = OpenSSL::Digest::MD5.digest(mackey + data)[0,8]
        data[14,8] = signature
        netbios_hdr + data
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.