Skip to content

Commit 1644a1e

Browse files
committed
Change how we populate workgroup/domain data
1 parent 95294b0 commit 1644a1e

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

lib/rex/proto/smb/client.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,13 @@ def session_setup_no_ntlmssp(user = '', pass = '', domain = '', do_recv = true)
760760

761761
self.peer_native_os = info[0]
762762
self.peer_native_lm = info[1]
763-
self.default_domain = info[2]
763+
#
764+
# if the PC belongs to a domain, this value is already populated
765+
# if it is not populated, we're in a workgroup and need to pupulate it now
766+
#
767+
if self.default_domain.nil?
768+
self.default_domain = info[2]
769+
end
764770

765771
return ack
766772
end
@@ -906,7 +912,13 @@ def session_setup_with_ntlmssp(user = '', pass = '', domain = '', name = nil, do
906912
#dns name
907913
self.dns_host_name = blob_data[:dns_host_name] || ''
908914
#dns domain
909-
self.dns_domain_name = blob_data[:dns_domain_name] || ''
915+
if blob_data[:default_name] != blob_data[:default_domain]
916+
# We're in a domain; get the domain name now
917+
self.default_domain = blob_data[:default_domain] || ''
918+
else
919+
# We're in a workgroup; workgroup names come later in the handshake
920+
self.default_domain = nil
921+
end
910922

911923
type3 = @ntlm_client.init_context([blob].pack('m'))
912924
type3_blob = type3.serialize

0 commit comments

Comments
 (0)