Class: Msf::Ui::Console::CommandDispatcher::Post
- Inherits:
-
Object
- Object
- Msf::Ui::Console::CommandDispatcher::Post
- Includes:
- ModuleActionCommands, ModuleArgumentParsing, ModuleCommandDispatcher, ModuleOptionTabCompletion
- Defined in:
- lib/msf/ui/console/command_dispatcher/post.rb
Overview
Recon module command dispatcher.
Instance Attribute Summary
Attributes included from Msf::Ui::Console::CommandDispatcher
Attributes included from Rex::Ui::Text::DispatcherShell::CommandDispatcher
Instance Method Summary collapse
-
#cmd_rerun(*args) ⇒ Object
(also: #cmd_rexploit)
Reloads a post module and executes it.
-
#cmd_run(*args, action: nil, opts: {}) ⇒ Object
(also: #cmd_exploit)
Executes a post module.
- #cmd_run_help ⇒ Object (also: #cmd_exploit_help)
-
#commands ⇒ Object
Returns the hash of commands specific to post modules.
-
#name ⇒ Object
Returns the command dispatcher name.
Methods included from ModuleArgumentParsing
#append_datastore_option, #parse_check_opts, #parse_exploit_opts, #parse_opts, #parse_run_opts, #print_module_run_or_check_usage, #quote_whitespaced_value, #resembles_datastore_assignment?, #resembles_rhost_value?
Methods included from ModuleOptionTabCompletion
#option_values_actions, #option_values_dispatch, #option_values_encoders, #option_values_nops, #option_values_payloads, #option_values_sessions, #option_values_target_addrs, #option_values_target_ports, #option_values_targets, #tab_complete_datastore_names, #tab_complete_module_datastore_names, #tab_complete_option, #tab_complete_option_names, #tab_complete_option_values, #tab_complete_source_interface
Methods included from ModuleActionCommands
#action_commands, #cmd_action_help, #cmd_run_tabs, #do_action, #method_missing, #respond_to_missing?
Methods included from ModuleCommandDispatcher
#check_multiple, #check_progress, #check_show_progress, #check_simple, #cmd_check, #cmd_check_help, #cmd_reload, #cmd_reload_help, #mod, #mod=, #reload, #report_vuln
Methods included from Msf::Ui::Console::CommandDispatcher
#active_module, #active_module=, #active_session, #active_session=, #build_range_array, #docs_dir, #framework, #initialize, #load_config, #log_error, #remove_lines
Methods included from Rex::Ui::Text::DispatcherShell::CommandDispatcher
#cmd_help, #cmd_help_help, #cmd_help_tabs, #deprecated_cmd, #deprecated_commands, #deprecated_help, #docs_dir, #help_to_s, included, #initialize, #print, #print_error, #print_good, #print_line, #print_status, #print_warning, #tab_complete_directory, #tab_complete_filenames, #tab_complete_generic, #tab_complete_source_address, #unknown_command, #update_prompt
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Msf::Ui::Console::ModuleActionCommands
Instance Method Details
#cmd_rerun(*args) ⇒ Object Also known as: cmd_rexploit
Reloads a post module and executes it
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/msf/ui/console/command_dispatcher/post.rb', line 49 def cmd_rerun(*args) opts = {} if args.include?('-r') || args.include?('--reload-libs') driver.run_single('reload_lib -a') opts[:previously_reloaded] = true end # Stop existing job and reload the module if reload(true) cmd_run(*args, opts: opts) end end |
#cmd_run(*args, action: nil, opts: {}) ⇒ Object Also known as: cmd_exploit
Executes a post module
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/msf/ui/console/command_dispatcher/post.rb', line 74 def cmd_run(*args, action: nil, opts: {}) if (args.include?('-r') || args.include?('--reload-libs')) && !opts[:previously_reloaded] driver.run_single('reload_lib -a') end return false unless (args = parse_run_opts(args, action: action)) jobify = args[:jobify] # Always run passive modules in the background if (mod.passive) jobify = true end begin mod.run_simple( 'Action' => args[:action], 'Options' => args[:datastore_options], 'LocalInput' => driver.input, 'LocalOutput' => driver.output, 'RunAsJob' => jobify, 'Quiet' => args[:quiet] ) rescue ::Timeout::Error print_error("Post triggered a timeout exception") rescue ::Interrupt print_error("Post interrupted by the console user") rescue ::Exception => e print_error("Post failed: #{e.class} #{e}") if (e.class.to_s != 'Msf::OptionValidateError') print_error("Call stack:") e.backtrace.each do |line| break if line =~ /lib.msf.base.simple/ print_error(" #{line}") end end return false end if (jobify && mod.job_id) print_status("Post module running as background job #{mod.job_id}.") else print_status("Post module execution completed") end end |
#cmd_run_help ⇒ Object Also known as: cmd_exploit_help
64 65 66 67 68 69 |
# File 'lib/msf/ui/console/command_dispatcher/post.rb', line 64 def cmd_run_help print_module_run_or_check_usage( command: :run, description: 'Launches a post exploitation module.' ) end |
#commands ⇒ Object
Returns the hash of commands specific to post modules.
22 23 24 25 26 27 28 29 |
# File 'lib/msf/ui/console/command_dispatcher/post.rb', line 22 def commands super.merge({ "run" => "Launches the post exploitation module", "rerun" => "Reloads and launches the module", "exploit" => "This is an alias for the run command", "rexploit" => "This is an alias for the rerun command", }).merge( (mod ? mod.post_commands : {}) ) end |
#name ⇒ Object
Returns the command dispatcher name.
35 36 37 |
# File 'lib/msf/ui/console/command_dispatcher/post.rb', line 35 def name "Post" end |