diff --git a/lib/msf/core/exploit/dcerpc.rb b/lib/msf/core/exploit/dcerpc.rb index c86583bc32..0a55a44d56 100644 --- a/lib/msf/core/exploit/dcerpc.rb +++ b/lib/msf/core/exploit/dcerpc.rb @@ -50,7 +50,15 @@ module Exploit::Remote::DCERPC if datastore['DCERPCFakeMultiBind'] opts['fake_multi_bind'] = 1 - end + end + + if datastore['SMBUSER'] + opts['smb_user'] = datastore['SMBUSER'] + end + + if datastore['SMBPASS'] + opts['smb_pass'] = datastore['SMBPASS'] + end self.dcerpc = Rex::Proto::DCERPC::Client.new(h, dcerpc_socket(), opts) diff --git a/lib/msf/core/module/author.rb b/lib/msf/core/module/author.rb index bceaa765da..73b5aea395 100644 --- a/lib/msf/core/module/author.rb +++ b/lib/msf/core/module/author.rb @@ -20,8 +20,9 @@ class Msf::Module::Author 'anonymous' => 'anonymous-contributor@metasploit.com', 'stinko' => 'vinnie@metasploit.com', 'MC' => 'y0@w00t-shell.net', - 'cazz' => 'bmc@shmoo.com', - } + 'cazz' => 'bmc@shmoo.com', + 'pusscat' => 'pusscat@gmail.com', + } # # Class method that translates a string to an instance of the Author class, diff --git a/lib/rex/proto/dcerpc/client.rb b/lib/rex/proto/dcerpc/client.rb index 5cb3041320..35254e7e7b 100644 --- a/lib/rex/proto/dcerpc/client.rb +++ b/lib/rex/proto/dcerpc/client.rb @@ -15,7 +15,7 @@ require 'rex/proto/smb/exceptions' def initialize(handle, socket, useroptions = Hash.new) self.handle = handle self.socket = socket - self.options = { } # put default options here... + self.options = { 'smb_user' => '', 'smb_pass' => '' } # put default options here... self.options.merge!(useroptions) # we must have a valid handle, regardless of everything else @@ -95,9 +95,7 @@ require 'rex/proto/smb/exceptions' raise "ACK, how did we get a peerport other than 139 or 445? #{self.socket.peerport}" end smb.client.evasion_level = 0 - user = '' - pass = '' - smb.login('*SMBSERVER', user, pass) + smb.login('*SMBSERVER', self.options['smb_user'], self.options['smb_pass']) smb.connect('IPC$') f = smb.create_pipe(self.handle.options[0]) self.socket = f