Files
metasploit-gs/scripts/meterpreter/multi_console_command.rb
T

82 lines
2.0 KiB
Ruby
Raw Normal View History

##
# WARNING: Metasploit no longer maintains or accepts meterpreter scripts.
# If you'd like to imporve this script, please try to port it as a post
# module instead. Thank you.
##
2010-05-03 17:13:09 +00:00
#
# Meterpreter script for running multiple console commands on a meterpreter session
# Provided by Carlos Perez at carlos_perez[at]darkoperator[dot]com
# Verion: 0.1
#
################## Variable Declarations ##################
@client = client
2010-05-03 17:13:09 +00:00
# Setting Arguments
@@exec_opts = Rex::Parser::Arguments.new(
2013-09-30 13:47:53 -05:00
"-h" => [ false,"Help menu." ],
"-cl" => [ true,"Commands to execute. The command must be enclosed in double quotes and separated by a comma."],
"-rc" => [ true,"Text file with list of commands, one per line."]
)
#Setting Argument variables
2013-11-22 12:47:04 +10:00
commands = nil
script = []
help = 0
################## Function Declarations ##################
# Function for running a list of commands stored in a array, returs string
def list_con_exec(cmdlst)
2013-09-30 13:47:53 -05:00
print_status("Running Command List ...")
cmdout = ""
cmdlst.each do |cmd|
next if cmd.strip.length < 1
next if cmd[0,1] == "#"
begin
print_status "\tRunning command #{cmd}"
@client.console.run_single(cmd)
rescue ::Exception => e
print_status("Error Running Command #{cmd}: #{e.class} #{e}")
end
end
cmdout
end
def usage
2013-09-30 13:47:53 -05:00
print_line("Console Multi Command Execution Meterpreter Script ")
print_line(@@exec_opts.usage)
raise Rex::Script::Completed
end
################## Main ##################
@@exec_opts.parse(args) { |opt, idx, val|
2013-09-30 13:47:53 -05:00
case opt
2013-09-17 10:42:58 -05:00
2013-09-30 13:47:53 -05:00
when "-cl"
commands = val.split(",")
when "-rc"
script = val
2016-04-20 08:11:34 -04:00
if not ::File.exist?(script)
2013-09-30 13:47:53 -05:00
raise "Command List File does not exists!"
else
2013-11-22 12:47:04 +10:00
commands = []
2013-09-30 13:47:53 -05:00
::File.open(script, "r").each_line do |line|
commands << line.chomp
end
end
2013-09-17 10:42:58 -05:00
2013-09-30 13:47:53 -05:00
when "-h"
help = 1
end
}
2013-11-22 12:47:04 +10:00
if args.length == 0 or help == 1 or commands.nil?
2013-09-30 13:47:53 -05:00
usage
else
2013-09-30 13:47:53 -05:00
list_con_exec(commands)
raise Rex::Script::Completed
end