metasploit-framework/modules/auxiliary/vsploit/pii/web_pii.rb

96 lines
2.4 KiB
Ruby

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# web site for more information on licensing and terms of use.
# http://metasploit.com/
##
require 'msf/core'
class Metasploit3 < Msf::Auxiliary
#
# This module acts as an compromised webserver distributing PII Data
#
include Msf::Exploit::Remote::HttpServer::HTML
include Msf::Auxiliary::PII
def initialize(info = {})
super(update_info(info,
'Name' => 'VSploit Web PII',
'Description' => 'This module emulates a webserver leaking PII data',
'License' => MSF_LICENSE,
'Author' => 'MJC',
'References' =>
[
[ 'URL', 'https://community.rapid7.com/community/metasploit/blog/2011/06/02/vsploit--virtualizing-exploitation-attributes-with-metasploit-framework']
],
'DefaultOptions' => { 'HTTP::server_name' => 'IIS'}
))
register_options(
[
OptBool.new('META_REFRESH', [ false, "Set page to auto refresh.", false]),
OptInt.new('REFRESH_TIME', [ false, "Set page refresh interval.", 15]),
OptInt.new('ENTRIES', [ false, "PII Entry Count", 1000])
],self.class)
end
def create_page
# Webpage Title
title = "vSploit PII Webserver"
sheep = <<-EOS
__________
< baaaaah! >
---------
\\
\\
,@;@,
;@;@( \\@;@;@;@;@;@,
/x @\\_|@;@;@;@;@;@;,
/ )@:@;@;@;@;@;@;@|)
*---;@;@;@;@;@;@;@;@;
';@;\;@;\;@;@
|| | \\ (
|| | // /
// ( // /
~~~~~ ~~~~
EOS
page = ""
page << "<html>\n<head>\n"
if datastore['META_REFRESH']
page << "<meta http-equiv=\"refresh\" content=\"#{datastore['REFRESH_TIME']}\">\n"
end
page << "<title>#{title}</title>\n</head>\n<body>\n"
page << "<pre>\n"
page << sheep
page << "Data Creation by: #{title}\n"
page << "Entries Per Page: #{datastore['ENTRIES']}\n"
if datastore['META_REFRESH']
page << "Refresh Interval: #{datastore['REFRESH_TIME']} Seconds\n"
end
# Start creating PII data
pii = create_pii()
page << "\n"
page << pii
page << "</pre>\n</body>\n</html>"
page
end
def on_request_uri(cli,request)
# Transmit the response to the client
res = create_page()
print_status("Leaking PII...")
send_response(cli, res, { 'Content-Type' => 'text/html' })
end
def run
exploit()
end
end