Land #10519, Add msfvenom -l archs like -l platforms
parent
6f42bcafcf
commit
4d785c4fea
50
msfvenom
50
msfvenom
|
@ -63,12 +63,13 @@ def parse_args(args)
|
|||
opt = OptionParser.new
|
||||
banner = "MsfVenom - a Metasploit standalone payload generator.\n"
|
||||
banner << "Also a replacement for msfpayload and msfencode.\n"
|
||||
banner << "Usage: #{$0} [options] <var=val>"
|
||||
banner << "Usage: #{$0} [options] <var=val>\n"
|
||||
banner << "Example: #{$0} -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe"
|
||||
opt.banner = banner
|
||||
opt.separator('')
|
||||
opt.separator('Options:')
|
||||
|
||||
opt.on('-l', '--list <type>', Array, 'List all modules for [type]. Types are: payloads, encoders, nops, platforms, formats, all') do |l|
|
||||
opt.on('-l', '--list <type>', Array, 'List all modules for [type]. Types are: payloads, encoders, nops, platforms, archs, formats, all') do |l|
|
||||
if l.to_s.empty?
|
||||
l = ["all"]
|
||||
end
|
||||
|
@ -100,7 +101,7 @@ def parse_args(args)
|
|||
opts[:smallest] = true
|
||||
end
|
||||
|
||||
opt.on('-a', '--arch <arch>', String, 'The architecture to use for --payload and --encoders') do |a|
|
||||
opt.on('-a', '--arch <arch>', String, 'The architecture to use for --payload and --encoders (use --list archs to list)') do |a|
|
||||
opts[:arch] = a
|
||||
end
|
||||
|
||||
|
@ -232,6 +233,44 @@ def dump_platforms
|
|||
"\n" + tbl.to_s + "\n"
|
||||
end
|
||||
|
||||
def dump_archs
|
||||
init_framework(:module_types => [])
|
||||
supported_archs = ARCH_ALL.dup
|
||||
|
||||
tbl = Rex::Text::Table.new(
|
||||
'Indent' => 4,
|
||||
'Header' => "Framework Architectures [--arch <value>]",
|
||||
'Columns' =>
|
||||
[
|
||||
"Name",
|
||||
])
|
||||
|
||||
supported_archs.sort.each do |name|
|
||||
tbl << [name]
|
||||
end
|
||||
|
||||
"\n" + tbl.to_s + "\n"
|
||||
end
|
||||
|
||||
def dump_archs
|
||||
init_framework(:module_types => [])
|
||||
supported_archs = ARCH_ALL.dup
|
||||
|
||||
tbl = Rex::Text::Table.new(
|
||||
'Indent' => 4,
|
||||
'Header' => "Framework Architectures [--arch <value>]",
|
||||
'Columns' =>
|
||||
[
|
||||
"Name",
|
||||
])
|
||||
|
||||
supported_archs.sort.each do |name|
|
||||
tbl << [name]
|
||||
end
|
||||
|
||||
"\n" + tbl.to_s + "\n"
|
||||
end
|
||||
|
||||
def dump_formats
|
||||
init_framework(:module_types => [])
|
||||
tbl1 = Rex::Text::Table.new(
|
||||
|
@ -341,6 +380,8 @@ if generator_opts[:list]
|
|||
$stdout.puts dump_nops
|
||||
when "platforms", "dump_platform"
|
||||
$stdout.puts dump_platforms
|
||||
when "archs", "dump_arch"
|
||||
$stdout.puts dump_archs
|
||||
when "formats", "format", "f"
|
||||
$stdout.puts dump_formats
|
||||
when "all", "a"
|
||||
|
@ -351,9 +392,10 @@ if generator_opts[:list]
|
|||
$stdout.puts dump_encoders
|
||||
$stdout.puts dump_nops
|
||||
$stdout.puts dump_platforms
|
||||
$stdout.puts dump_archs
|
||||
$stdout.puts dump_formats
|
||||
else
|
||||
$stderr.puts "Invalid type (#{mod}). These are valid: payloads, encoders, nops, platforms, formats, all"
|
||||
$stderr.puts "Invalid type (#{mod}). These are valid: payloads, encoders, nops, platforms, archs, formats, all"
|
||||
end
|
||||
end
|
||||
exit(0)
|
||||
|
|
Loading…
Reference in New Issue