Sha256: 9062df911cf3d55f0223c4544b594a55e039d6c2c36e557ae88a29c63bbee62a

Contents?: true

Size: 1.38 KB

Versions: 38

Compression:

Stored size: 1.38 KB

Contents

#!/usr/bin/ruby

# This example script is used for testing DCERPC WKST requests.
# It will attempt to retrieve configuration information of a remote computer/server.
# Example usage: ruby enum_domain_users.rb 192.168.172.138 msfadmin msfadmin MyDomain

require 'bundler/setup'
require 'ruby_smb'

address      = ARGV[0]
username     = ARGV[1]
password     = ARGV[2]
smb_versions = ARGV[3]&.split(',') || ['1','2','3']

sock = TCPSocket.new address, 445
dispatcher = RubySMB::Dispatcher::Socket.new(sock, read_timeout: 60)

client = RubySMB::Client.new(dispatcher, smb1: smb_versions.include?('1'), smb2: smb_versions.include?('2'), smb3: smb_versions.include?('3'), username: username, password: password)
protocol = client.negotiate
status = client.authenticate

puts "#{protocol} : #{status}"

tree = client.tree_connect("\\\\#{address}\\IPC$")
wkssvc = tree.open_file(filename: 'wkssvc', write: true, read: true)

puts('Binding to \\wkssvc...')
wkssvc.bind(endpoint: RubySMB::Dcerpc::Wkssvc)
puts('Bound to \\wkssvc')

puts('[+] WKSSVC Connect')

info = wkssvc.netr_wksta_get_info
platform = RubySMB::Dcerpc::Wkssvc::PLATFORM_ID[info.wki100_platform_id]
puts "Platform: #{platform || 'Unknown'}"
puts "Computer Name: #{info.wki100_computername.encode('utf-8')}"
puts "LAN Group: #{info.wki100_langroup.encode('utf-8')}"
puts "OS Version: #{info.wki100_ver_major}.#{info.wki100_ver_minor}"

client.disconnect!


Version data entries

38 entries across 38 versions & 1 rubygems

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