Sha256: 5405a58ee7d6ae71d19706b73ab60ea279f69a421317f4c6f50a77eb0f0ed145

Contents?: true

Size: 1.45 KB

Versions: 22

Compression:

Stored size: 1.45 KB

Contents

module RubySMB
  module PeerInfo
    # Extract and store useful information about the peer/server from the
    # NTLM Type 2 (challenge) TargetInfo fields.
    #
    # @param target_info_str [String] the Target Info string
    def store_target_info(target_info_str)
      target_info = Net::NTLM::TargetInfo.new(target_info_str)
      {
        Net::NTLM::TargetInfo::MSV_AV_NB_COMPUTER_NAME  => :@default_name,
        Net::NTLM::TargetInfo::MSV_AV_NB_DOMAIN_NAME    => :@default_domain,
        Net::NTLM::TargetInfo::MSV_AV_DNS_COMPUTER_NAME => :@dns_host_name,
        Net::NTLM::TargetInfo::MSV_AV_DNS_DOMAIN_NAME   => :@dns_domain_name,
        Net::NTLM::TargetInfo::MSV_AV_DNS_TREE_NAME     => :@dns_tree_name
      }.each do |constant, attribute|
        if target_info.av_pairs[constant]
          value = target_info.av_pairs[constant].dup
          value.force_encoding('UTF-16LE')
          instance_variable_set(attribute, value.encode('UTF-8'))
        end
      end
    end

    # Extract the peer/server version number from the NTLM Type 2 (challenge)
    # Version field.
    #
    # @param version [String] the version number as a binary string
    # @return [String] the formatted version number (<major>.<minor>.<build>)
    def extract_os_version(version)
      begin
        os_version = RubySMB::NTLM::OSVersion.read(version)
      rescue IOError
        return ''
      end

      "#{os_version.major}.#{os_version.minor}.#{os_version.build}"
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
ruby_smb-3.3.13 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.12 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.11 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.10 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.9 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.7 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.6 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.5 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.4 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.3 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.2 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.1 lib/ruby_smb/peer_info.rb
ruby_smb-3.3.0 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.8 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.7 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.6 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.5 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.4 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.3 lib/ruby_smb/peer_info.rb
ruby_smb-3.2.2 lib/ruby_smb/peer_info.rb