Land #2098 - Catch Rex::ArgumentParseError

unstable
sinn3r 2013-07-11 11:38:03 -05:00
commit b5d59980d2
1 changed files with 9 additions and 6 deletions

15
msfcli
View File

@ -141,8 +141,12 @@ exploit.init_ui(
mode = ARGV.pop || 'h' mode = ARGV.pop || 'h'
# Import options # Import options
exploit.datastore.import_options_from_s(ARGV.join('_|_'), '_|_') begin
exploit.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
rescue Rex::ArgumentParseError => e
puts "[!] Error: #{e.message}\n\n"
exit
end
# Initialize associated modules # Initialize associated modules
payload = nil payload = nil
@ -152,21 +156,21 @@ nop = nil
if (exploit.datastore['PAYLOAD']) if (exploit.datastore['PAYLOAD'])
payload = $framework.payloads.create(exploit.datastore['PAYLOAD']) payload = $framework.payloads.create(exploit.datastore['PAYLOAD'])
if (payload != nil) if (payload != nil)
payload.datastore.import_options_from_s(ARGV.join('_|_'), '_|_') payload.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
end end
end end
if (exploit.datastore['ENCODER']) if (exploit.datastore['ENCODER'])
encoder = $framework.encoders.create(exploit.datastore['ENCODER']) encoder = $framework.encoders.create(exploit.datastore['ENCODER'])
if (encoder != nil) if (encoder != nil)
encoder.datastore.import_options_from_s(ARGV.join('_|_'), '_|_') encoder.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
end end
end end
if (exploit.datastore['NOP']) if (exploit.datastore['NOP'])
nop = $framework.nops.create(exploit.datastore['NOP']) nop = $framework.nops.create(exploit.datastore['NOP'])
if (nop != nil) if (nop != nil)
nop.datastore.import_options_from_s(ARGV.join('_|_'), '_|_') nop.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
end end
end end
@ -178,7 +182,6 @@ case mode.downcase
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(payload, Indent)) if payload $stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(payload, Indent)) if payload
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(encoder, Indent)) if encoder $stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(encoder, Indent)) if encoder
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(nop, Indent)) if nop $stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(nop, Indent)) if nop
when "o" when "o"
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(exploit, Indent)) $stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(exploit, Indent))
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(payload, Indent)) if payload $stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(payload, Indent)) if payload