added check
git-svn-id: file:///home/svn/incoming/trunk@2756 4d416f70-5f16-0410-b530-b9f4589650daunstable
parent
91e8ca14d1
commit
17b00814c6
|
@ -5,19 +5,20 @@ module CommandDispatcher
|
||||||
|
|
||||||
class Exploit
|
class Exploit
|
||||||
|
|
||||||
|
include Msf::Ui::Console::ModuleCommandDispatcher
|
||||||
|
|
||||||
@@exploit_opts = Rex::Parser::Arguments.new(
|
@@exploit_opts = Rex::Parser::Arguments.new(
|
||||||
"-e" => [ true, "The payload encoder to use. If none is specified, ENCODER is used." ],
|
"-e" => [ true, "The payload encoder to use. If none is specified, ENCODER is used." ],
|
||||||
"-h" => [ false, "Help banner." ],
|
"-h" => [ false, "Help banner." ],
|
||||||
"-n" => [ true, "The NOP generator to use. If none is specified, NOP is used." ],
|
"-n" => [ true, "The NOP generator to use. If none is specified, NOP is used." ],
|
||||||
"-o" => [ true, "A comma separated list of options in VAR=VAL format." ],
|
"-o" => [ true, "A comma separated list of options in VAR=VAL format." ],
|
||||||
"-p" => [ true, "The payload to use. If none is specified, PAYLOAD is used." ],
|
"-p" => [ true, "The payload to use. If none is specified, PAYLOAD is used." ],
|
||||||
"-t" => [ true, "The target index to use." ],
|
"-t" => [ true, "The target index to use. If none is specified, TARGET is used." ],
|
||||||
"-z" => [ true, "Do not interact with the session after successful exploitation." ])
|
"-z" => [ true, "Do not interact with the session after successful exploitation." ])
|
||||||
|
|
||||||
include Msf::Ui::Console::ModuleCommandDispatcher
|
|
||||||
|
|
||||||
def commands
|
def commands
|
||||||
{
|
{
|
||||||
|
"check" => "Check to see if a target is vulnerable",
|
||||||
"exploit" => "Launch an exploit attempt",
|
"exploit" => "Launch an exploit attempt",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -26,10 +27,49 @@ class Exploit
|
||||||
"Exploit"
|
"Exploit"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Checks to see if a target is vulnerable
|
||||||
|
#
|
||||||
|
def cmd_check(*args)
|
||||||
|
begin
|
||||||
|
code = mod.check
|
||||||
|
|
||||||
|
if (code)
|
||||||
|
stat = '[*]'
|
||||||
|
|
||||||
|
if (code == Msf::Exploit::CheckCode::Vulnerable)
|
||||||
|
stat = '[+]'
|
||||||
|
end
|
||||||
|
|
||||||
|
print_line(stat + ' ' + code[1])
|
||||||
|
else
|
||||||
|
print_error(
|
||||||
|
"Check failed: The state could not be determined.")
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
log_error("Check failed: #{$!}.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# Launches an exploitation attempt
|
# Launches an exploitation attempt
|
||||||
#
|
#
|
||||||
def cmd_exploit(*args)
|
def cmd_exploit(*args)
|
||||||
|
payload = mod.datastore['PAYLOAD']
|
||||||
|
encoder = mod.datastore['ENCODER']
|
||||||
|
target = mod.datastore['TARGET']
|
||||||
|
nop = mod.datastore['NOP']
|
||||||
|
|
||||||
|
@@exploit_opts.parse(args) { |opt, idx, val|
|
||||||
|
case opt
|
||||||
|
when '-h'
|
||||||
|
print(
|
||||||
|
"Usage: exploit [options]\n\n" +
|
||||||
|
"Launches an exploitation attempt.\n" +
|
||||||
|
@@exploit_opts.usage)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,13 +7,13 @@ module CommandDispatcher
|
||||||
|
|
||||||
class Nop
|
class Nop
|
||||||
|
|
||||||
|
include Msf::Ui::Console::ModuleCommandDispatcher
|
||||||
|
|
||||||
@@generate_opts = Rex::Parser::Arguments.new(
|
@@generate_opts = Rex::Parser::Arguments.new(
|
||||||
"-b" => [ true, "The list of characters to avoid: '\\x00\\xff'" ],
|
"-b" => [ true, "The list of characters to avoid: '\\x00\\xff'" ],
|
||||||
"-h" => [ false, "Help banner." ],
|
"-h" => [ false, "Help banner." ],
|
||||||
"-t" => [ true, "The output type: ruby, perl, c, or raw." ])
|
"-t" => [ true, "The output type: ruby, perl, c, or raw." ])
|
||||||
|
|
||||||
include Msf::Ui::Console::ModuleCommandDispatcher
|
|
||||||
|
|
||||||
def commands
|
def commands
|
||||||
{
|
{
|
||||||
"generate" => "Generates a NOP sled",
|
"generate" => "Generates a NOP sled",
|
||||||
|
|
|
@ -7,6 +7,8 @@ module CommandDispatcher
|
||||||
|
|
||||||
class Payload
|
class Payload
|
||||||
|
|
||||||
|
include Msf::Ui::Console::ModuleCommandDispatcher
|
||||||
|
|
||||||
@@generate_opts = Rex::Parser::Arguments.new(
|
@@generate_opts = Rex::Parser::Arguments.new(
|
||||||
"-b" => [ true, "The list of characters to avoid: '\\x00\\xff'" ],
|
"-b" => [ true, "The list of characters to avoid: '\\x00\\xff'" ],
|
||||||
"-e" => [ true, "The name of the encoder module to use." ],
|
"-e" => [ true, "The name of the encoder module to use." ],
|
||||||
|
@ -15,8 +17,6 @@ class Payload
|
||||||
"-s" => [ true, "NOP sled length." ],
|
"-s" => [ true, "NOP sled length." ],
|
||||||
"-t" => [ true, "The output type: ruby, perl, c, or raw." ])
|
"-t" => [ true, "The output type: ruby, perl, c, or raw." ])
|
||||||
|
|
||||||
include Msf::Ui::Console::ModuleCommandDispatcher
|
|
||||||
|
|
||||||
def commands
|
def commands
|
||||||
{
|
{
|
||||||
"generate" => "Generates a payload",
|
"generate" => "Generates a payload",
|
||||||
|
|
|
@ -31,6 +31,10 @@ class Exploits::Test::Multi::Aggressive < Msf::Exploit::Remote
|
||||||
'DefaultTarget' => 0))
|
'DefaultTarget' => 0))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check
|
||||||
|
return Exploit::CheckCode::Vulnerable
|
||||||
|
end
|
||||||
|
|
||||||
def exploit
|
def exploit
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue