Advertisement
Guest User

Untitled

a guest
Jan 20th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.98 KB | None | 0 0
  1. require 'rubygems'
  2. require 'net/ldap'
  3.  
  4. def get_sid_string(data)
  5.   sid = []
  6.   sid << data[0].to_s
  7.  
  8.   rid = ""
  9.   (6).downto(1) do |i|
  10.     rid += byte2hex(data[i,1][0])
  11.   end
  12.   sid << rid.to_i.to_s
  13.  
  14.   sid += data.unpack("bbbbbbbbV*")[8..-1]
  15.   "S-" + sid.join('-')
  16. end
  17.  
  18. def byte2hex(b)
  19.   ret = '%x' % (b.to_i & 0xff)
  20.   ret = '0' + ret if ret.length < 2
  21.   ret
  22. end
  23.  
  24. ldap = Net::LDAP.new :host => "192.168.55.55",
  25.     :port => 389,
  26.     :auth => {
  27.         :method => :simple,
  28.         :username => "adam@foo.local",
  29.         :password => "secret"
  30.     }
  31.  
  32. filter = Net::LDAP::Filter.eq( "cn", "Adam*" )
  33. treebase = "dc=foo,dc=local"
  34.  
  35. ldap.search( :base => treebase, :filter => filter ) do |entry|
  36.   puts "DN: #{entry.dn}"
  37.   entry.each do |attribute, values|
  38.   next if attribute.to_s != "objectguid"
  39.     puts "   #{attribute}:"
  40.     values.each do |value|
  41.       puts "      --->#{value.bytes}"
  42.       puts "      --->#{value}"
  43.     end
  44.         puts "      --->#{get_sid_string(attribute.to_s)}"
  45.   end
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement