4361 lines
187 KiB
HTML
4361 lines
187 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>
|
||
Class: Msf::RPC::RPC_Module
|
||
|
||
— Documentation by YARD 0.9.37
|
||
|
||
</title>
|
||
|
||
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
|
||
|
||
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
|
||
|
||
<script type="text/javascript">
|
||
pathId = "Msf::RPC::RPC_Module";
|
||
relpath = '../../';
|
||
</script>
|
||
|
||
|
||
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
||
|
||
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
||
|
||
|
||
</head>
|
||
<body>
|
||
<div class="nav_wrap">
|
||
<iframe id="nav" src="../../class_list.html?1"></iframe>
|
||
<div id="resizer"></div>
|
||
</div>
|
||
|
||
<div id="main" tabindex="-1">
|
||
<div id="header">
|
||
<div id="menu">
|
||
|
||
<a href="../../_index.html">Index (R)</a> »
|
||
<span class='title'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span> » <span class='title'><span class='object_link'><a href="../RPC.html" title="Msf::RPC (module)">RPC</a></span></span>
|
||
»
|
||
<span class="title">RPC_Module</span>
|
||
|
||
</div>
|
||
|
||
<div id="search">
|
||
|
||
<a class="full_list_link" id="class_list_link"
|
||
href="../../class_list.html">
|
||
|
||
<svg width="24" height="24">
|
||
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
||
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
||
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
||
</svg>
|
||
</a>
|
||
|
||
</div>
|
||
<div class="clear"></div>
|
||
</div>
|
||
|
||
<div id="content"><h1>Class: Msf::RPC::RPC_Module
|
||
|
||
|
||
|
||
</h1>
|
||
<div class="box_info">
|
||
|
||
<dl>
|
||
<dt>Inherits:</dt>
|
||
<dd>
|
||
<span class="inheritName"><span class='object_link'><a href="RPC_Base.html" title="Msf::RPC::RPC_Base (class)">RPC_Base</a></span></span>
|
||
|
||
<ul class="fullTree">
|
||
<li>Object</li>
|
||
|
||
<li class="next"><span class='object_link'><a href="RPC_Base.html" title="Msf::RPC::RPC_Base (class)">RPC_Base</a></span></li>
|
||
|
||
<li class="next">Msf::RPC::RPC_Module</li>
|
||
|
||
</ul>
|
||
<a href="#" class="inheritanceTree">show all</a>
|
||
|
||
</dd>
|
||
</dl>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<dl>
|
||
<dt>Defined in:</dt>
|
||
<dd>lib/msf/core/rpc/v10/rpc_module.rb</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<h2>Instance Attribute Summary</h2>
|
||
|
||
<h3 class="inherited">Attributes inherited from <span class='object_link'><a href="RPC_Base.html" title="Msf::RPC::RPC_Base (class)">RPC_Base</a></span></h3>
|
||
<p class="inherited"><span class='object_link'><a href="RPC_Base.html#framework-instance_method" title="Msf::RPC::RPC_Base#framework (method)">#framework</a></span>, <span class='object_link'><a href="RPC_Base.html#job_status_tracker-instance_method" title="Msf::RPC::RPC_Base#job_status_tracker (method)">#job_status_tracker</a></span>, <span class='object_link'><a href="RPC_Base.html#service-instance_method" title="Msf::RPC::RPC_Base#service (method)">#service</a></span>, <span class='object_link'><a href="RPC_Base.html#tokens-instance_method" title="Msf::RPC::RPC_Base#tokens (method)">#tokens</a></span>, <span class='object_link'><a href="RPC_Base.html#users-instance_method" title="Msf::RPC::RPC_Base#users (method)">#users</a></span></p>
|
||
|
||
|
||
|
||
<h2>
|
||
Instance Method Summary
|
||
<small><a href="#" class="summary_toggle">collapse</a></small>
|
||
</h2>
|
||
|
||
<ul class="summary">
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_ack-instance_method" title="#rpc_ack (instance method)">#<strong>rpc_ack</strong>(uuid) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'></div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_architectures-instance_method" title="#rpc_architectures (instance method)">#<strong>rpc_architectures</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of architecture names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_auxiliary-instance_method" title="#rpc_auxiliary (instance method)">#<strong>rpc_auxiliary</strong> ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of auxiliary module names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_check-instance_method" title="#rpc_check (instance method)">#<strong>rpc_check</strong>(mtype, mname, opts) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Runs the check method of a module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_compatible_evasion_payloads-instance_method" title="#rpc_compatible_evasion_payloads (instance method)">#<strong>rpc_compatible_evasion_payloads</strong>(mname) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the compatible payloads for a specific evasion module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_compatible_payloads-instance_method" title="#rpc_compatible_payloads (instance method)">#<strong>rpc_compatible_payloads</strong>(mname) ⇒ Hash </a>
|
||
|
||
|
||
|
||
(also: #rpc_compatible_exploit_payloads)
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the compatible payloads for a specific exploit.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_compatible_sessions-instance_method" title="#rpc_compatible_sessions (instance method)">#<strong>rpc_compatible_sessions</strong>(mname) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the compatible sessions for a specific post module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_encode-instance_method" title="#rpc_encode (instance method)">#<strong>rpc_encode</strong>(data, encoder, options) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Encodes data with an encoder.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_encode_formats-instance_method" title="#rpc_encode_formats (instance method)">#<strong>rpc_encode_formats</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of encoding formats.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_encoders-instance_method" title="#rpc_encoders (instance method)">#<strong>rpc_encoders</strong>(module_info = nil, arch = nil) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of encoder module names or a hash with encoder module names as keys to hashes that contain the module information fields requested.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_encryption_formats-instance_method" title="#rpc_encryption_formats (instance method)">#<strong>rpc_encryption_formats</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of encryption format names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_evasion-instance_method" title="#rpc_evasion (instance method)">#<strong>rpc_evasion</strong> ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of evasion module names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_executable_formats-instance_method" title="#rpc_executable_formats (instance method)">#<strong>rpc_executable_formats</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of executable format names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_execute-instance_method" title="#rpc_execute (instance method)">#<strong>rpc_execute</strong>(mtype, mname, opts) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Executes a module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_exploits-instance_method" title="#rpc_exploits (instance method)">#<strong>rpc_exploits</strong> ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of exploit names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_info-instance_method" title="#rpc_info (instance method)">#<strong>rpc_info</strong>(mtype, mname) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the metadata for a module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_info_html-instance_method" title="#rpc_info_html (instance method)">#<strong>rpc_info_html</strong>(mtype, mname) ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns detailed information about a module in HTML.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_nops-instance_method" title="#rpc_nops (instance method)">#<strong>rpc_nops</strong>(module_info = nil, arch = nil) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of NOP module names or a hash with NOP module names as keys to hashes that contain the module information fields requested.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_options-instance_method" title="#rpc_options (instance method)">#<strong>rpc_options</strong>(mtype, mname) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the module’s datastore options.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_payloads-instance_method" title="#rpc_payloads (instance method)">#<strong>rpc_payloads</strong>(module_info = nil, arch = nil) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of payload module names or a hash with payload module names as keys to hashes that contain the module information fields requested.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_platforms-instance_method" title="#rpc_platforms (instance method)">#<strong>rpc_platforms</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of platform names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_post-instance_method" title="#rpc_post (instance method)">#<strong>rpc_post</strong> ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of post module names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_results-instance_method" title="#rpc_results (instance method)">#<strong>rpc_results</strong>(uuid) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>TODO: expand these to take a list of UUIDs or stream with event data if required for performance.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_running_stats-instance_method" title="#rpc_running_stats (instance method)">#<strong>rpc_running_stats</strong> ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the currently running module stats in each state.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_search-instance_method" title="#rpc_search (instance method)">#<strong>rpc_search</strong>(match) ⇒ hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>returns a list of module names that match the search string.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_target_compatible_evasion_payloads-instance_method" title="#rpc_target_compatible_evasion_payloads (instance method)">#<strong>rpc_target_compatible_evasion_payloads</strong>(mname, target) ⇒ Hash </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the compatible target-specific payloads for an evasion module.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_target_compatible_payloads-instance_method" title="#rpc_target_compatible_payloads (instance method)">#<strong>rpc_target_compatible_payloads</strong>(mname, target) ⇒ Hash </a>
|
||
|
||
|
||
|
||
(also: #rpc_target_compatible_exploit_payloads)
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns the compatible target-specific payloads for an exploit.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rpc_transform_formats-instance_method" title="#rpc_transform_formats (instance method)">#<strong>rpc_transform_formats</strong> ⇒ Array<String> </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Returns a list of transform format names.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="RPC_Base.html" title="Msf::RPC::RPC_Base (class)">RPC_Base</a></span></h3>
|
||
<p class="inherited"><span class='object_link'><a href="RPC_Base.html#error-instance_method" title="Msf::RPC::RPC_Base#error (method)">#error</a></span>, <span class='object_link'><a href="RPC_Base.html#initialize-instance_method" title="Msf::RPC::RPC_Base#initialize (method)">#initialize</a></span></p>
|
||
<div id="constructor_details" class="method_details_list">
|
||
<h2>Constructor Details</h2>
|
||
|
||
<p class="notice">This class inherits a constructor from <span class='object_link'><a href="RPC_Base.html#initialize-instance_method" title="Msf::RPC::RPC_Base#initialize (method)">Msf::RPC::RPC_Base</a></span></p>
|
||
|
||
</div>
|
||
|
||
|
||
<div id="instance_method_details" class="method_details_list">
|
||
<h2>Instance Method Details</h2>
|
||
|
||
|
||
<div class="method_details first">
|
||
<h3 class="signature first" id="rpc_ack-instance_method">
|
||
|
||
#<strong>rpc_ack</strong>(uuid) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
563
|
||
564
|
||
565</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 563</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_ack'>rpc_ack</span><span class='lparen'>(</span><span class='id identifier rubyid_uuid'>uuid</span><span class='rparen'>)</span>
|
||
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>success</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='op'>!</span><span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_ack'>ack</span><span class='lparen'>(</span><span class='id identifier rubyid_uuid'>uuid</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_architectures-instance_method">
|
||
|
||
#<strong>rpc_architectures</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of architecture names.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.architectures</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of architecture names, for example: ["x64"]</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
610
|
||
611
|
||
612
|
||
613</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 610</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_architectures'>rpc_architectures</span>
|
||
<span class='id identifier rubyid_supported_archs'>supported_archs</span> <span class='op'>=</span> <span class='const'>ARCH_ALL</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
|
||
<span class='id identifier rubyid_supported_archs'>supported_archs</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_auxiliary-instance_method">
|
||
|
||
#<strong>rpc_auxiliary</strong> ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of auxiliary module names. The ‘auxiliary/’ prefix will not be included.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.auxiliary</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of auxiliary module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<string>] Auxiliary module names, for example: ['vsploit/pii/web_pii']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
37
|
||
38
|
||
39</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 37</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_auxiliary'>rpc_auxiliary</span>
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_auxiliary'>auxiliary</span><span class='period'>.</span><span class='id identifier rubyid_module_refnames'>module_refnames</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_check-instance_method">
|
||
|
||
#<strong>rpc_check</strong>(mtype, mname, opts) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Runs the check method of a module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mtype</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module type. Supported types include (case-sensitive):</p>
|
||
<ul><li>
|
||
<p>exploit</p>
|
||
</li><li>
|
||
<p>auxiliary</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module name. For example: 'windows/smb/ms08_067_netapi'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>opts</span>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Options for the module (such as datastore options).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'></span>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (either wrong type or name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
525
|
||
526
|
||
527
|
||
528
|
||
529
|
||
530
|
||
531
|
||
532
|
||
533
|
||
534
|
||
535</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 525</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_check'>rpc_check</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_mod'>mod</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='kw'>case</span> <span class='id identifier rubyid_mtype'>mtype</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__check_exploit'>_check_exploit</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__check_auxiliary'>_check_auxiliary</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='int'>500</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Module Type: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_mtype'>mtype</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_compatible_evasion_payloads-instance_method">
|
||
|
||
#<strong>rpc_compatible_evasion_payloads</strong>(mname) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the compatible payloads for a specific evasion module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.compatible_evasion_payloads</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/windows_defender_exe</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Evasion module name. For example: 'windows/windows_defender_exe'</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The evasion module's compatible payloads. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'payloads' [Array<String>] A list of payloads.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (wrong name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
332
|
||
333
|
||
334
|
||
335
|
||
336
|
||
337
|
||
338
|
||
339
|
||
340
|
||
341
|
||
342</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 332</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_compatible_evasion_payloads'>rpc_compatible_evasion_payloads</span><span class='lparen'>(</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>evasion</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_compatible_payloads'>compatible_payloads</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_compatible_payloads-instance_method">
|
||
|
||
#<strong>rpc_compatible_payloads</strong>(mname) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
<span class="aliases">Also known as:
|
||
<span class="names"><span id='rpc_compatible_exploit_payloads-instance_method'>rpc_compatible_exploit_payloads</span></span>
|
||
</span>
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the compatible payloads for a specific exploit.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.compatible_payloads</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/smb/ms08_067_netapi</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Exploit module name. For example: 'windows/smb/ms08_067_netapi'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The exploit's compatible payloads. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'payloads' [Array<string>] A list of payloads. For example: ['generic/custom']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (wrong name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
310
|
||
311
|
||
312
|
||
313
|
||
314
|
||
315
|
||
316
|
||
317
|
||
318
|
||
319</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 310</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_compatible_payloads'>rpc_compatible_payloads</span><span class='lparen'>(</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_compatible_payloads'>compatible_payloads</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_compatible_sessions-instance_method">
|
||
|
||
#<strong>rpc_compatible_sessions</strong>(mname) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the compatible sessions for a specific post module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.compatible_sessions</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/wlan/wlan_profile</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Post module name. For example: 'windows/wlan/wlan_profile'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The post module's compatible sessions. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'sessions' [Array<Integer>] A list of session IDs.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (wrong name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
353
|
||
354
|
||
355
|
||
356
|
||
357
|
||
358
|
||
359
|
||
360
|
||
361
|
||
362
|
||
363
|
||
364
|
||
365
|
||
366
|
||
367
|
||
368
|
||
369
|
||
370</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 353</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_compatible_sessions'>rpc_compatible_sessions</span><span class='lparen'>(</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_mname'>mname</span><span class='period'>.</span><span class='id identifier rubyid_start_with?'>start_with?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit/</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_mname'>mname</span><span class='period'>.</span><span class='id identifier rubyid_start_with?'>start_with?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary/</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>post</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span> <span class='symbol'>:compatible_sessions</span>
|
||
<span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='int'>500</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Cannot determine compatible sessions for non-local module: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_mname'>mname</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sessions</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_compatible_sessions'>compatible_sessions</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_encode-instance_method">
|
||
|
||
#<strong>rpc_encode</strong>(data, encoder, options) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Encodes data with an encoder.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='comment'># This will encode 'AAAA' with shikata_ga_nai, and prints the following:
|
||
</span><span class='comment'># unsigned char buf[] =
|
||
</span><span class='comment'># "\xba\x9e\xb5\x91\x66\xdb\xd2\xd9\x74\x24\xf4\x5f\x29\xc9\xb1"
|
||
</span><span class='comment'># "\x01\x31\x57\x15\x03\x57\x15\x83\xc7\x04\xe2\x6b\xf4\xd0\x27";
|
||
</span><span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.encode</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>AAAA</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>x86/shikata_ga_nai</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>format</span><span class='tstring_end'>'</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>c</span><span class='tstring_end'>'</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>encoded</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>data</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Data to encode.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>encoder</span>
|
||
|
||
|
||
<span class='type'>(<tt>encoder</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Encoder module name. For example: 'x86/single_byte'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>options</span>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Encoding options, such as:</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="tag_title">Options Hash (<tt>options</tt>):</p>
|
||
<ul class="option">
|
||
|
||
<li>
|
||
<span class="name">'format'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Encoding format.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'badchars'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Bad characters.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'platform'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Platform.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'arch'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Architecture.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'ecount'</span>
|
||
<span class="type">(<tt>Integer</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Number of times to encode.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'inject'</span>
|
||
<span class="type">(<tt>TrueClass</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>To enable injection.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'template'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>The template file (an executable).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'template_path'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Template path.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<span class="name">'addshellcode'</span>
|
||
<span class="type">(<tt>String</tt>)</span>
|
||
<span class="default">
|
||
|
||
</span>
|
||
|
||
— <div class='inline'>
|
||
<p>Custom shellcode.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'></span>
|
||
|
||
|
||
|
||
|
||
<div class='inline'>
|
||
<p>The encoded data. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'encoded' [String] The encoded data in the format you specify.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Error could be one of these:</p>
|
||
<ul><li>
|
||
<p>500 Invalid format</p>
|
||
</li><li>
|
||
<p>500 Failure to encode</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
652
|
||
653
|
||
654
|
||
655
|
||
656
|
||
657
|
||
658
|
||
659
|
||
660
|
||
661
|
||
662
|
||
663
|
||
664
|
||
665
|
||
666
|
||
667
|
||
668
|
||
669
|
||
670
|
||
671
|
||
672
|
||
673
|
||
674
|
||
675
|
||
676
|
||
677
|
||
678
|
||
679
|
||
680
|
||
681
|
||
682
|
||
683
|
||
684
|
||
685
|
||
686
|
||
687
|
||
688
|
||
689
|
||
690
|
||
691
|
||
692
|
||
693
|
||
694
|
||
695
|
||
696
|
||
697
|
||
698
|
||
699
|
||
700
|
||
701
|
||
702
|
||
703
|
||
704
|
||
705
|
||
706
|
||
707
|
||
708
|
||
709
|
||
710
|
||
711
|
||
712
|
||
713
|
||
714
|
||
715
|
||
716
|
||
717
|
||
718
|
||
719
|
||
720
|
||
721
|
||
722
|
||
723
|
||
724
|
||
725
|
||
726
|
||
727</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 652</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_encode'>rpc_encode</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_encoder'>encoder</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
||
<span class='comment'># Load supported formats
|
||
</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Buffer.html" title="Msf::Simple::Buffer (module)">Buffer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_transform_formats'><span class='object_link'><a href="../Simple/Buffer.html#transform_formats-class_method" title="Msf::Simple::Buffer.transform_formats (method)">transform_formats</a></span></span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/EXE.html" title="Msf::Util::EXE (module)">EXE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_to_executable_fmt_formats'><span class='object_link'><a href="../Util/EXE/ClassMethods.html#to_executable_fmt_formats-instance_method" title="Msf::Util::EXE::ClassMethods#to_executable_fmt_formats (method)">to_executable_fmt_formats</a></span></span>
|
||
|
||
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_fmt'>fmt</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>format</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_fmt'>fmt</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='int'>500</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Format: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_fmt'>fmt</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_badchars'>badchars</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>badchars</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_badchars'>badchars</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>badchars</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>platform</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Module.html" title="Msf::Module (class)">Module</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Module/PlatformList.html" title="Msf::Module::PlatformList (class)">PlatformList</a></span></span><span class='period'>.</span><span class='id identifier rubyid_transform'><span class='object_link'><a href="../Module/PlatformList.html#transform-class_method" title="Msf::Module::PlatformList.transform (method)">transform</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>platform</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>arch</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>arch</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_ecount'>ecount</span> <span class='op'>=</span> <span class='int'>1</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ecount</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_ecount'>ecount</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ecount</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_exeopts'>exeopts</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
||
<span class='symbol'>:inject</span> <span class='op'>=></span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>inject</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
||
<span class='symbol'>:template</span> <span class='op'>=></span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>altexe</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
||
<span class='symbol'>:template_path</span> <span class='op'>=></span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exedir</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='rbrace'>}</span>
|
||
|
||
<span class='comment'># If we were given addshellcode for a win32 payload,
|
||
</span> <span class='comment'># create a double-payload; one running in one thread, one running in the other
|
||
</span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>addshellcode</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_buf'>buf</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/EXE.html" title="Msf::Util::EXE (module)">EXE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_win32_rwx_exec_thread'><span class='object_link'><a href="../Util/EXE/Windows/Common/ClassMethods.html#win32_rwx_exec_thread-instance_method" title="Msf::Util::EXE::Windows::Common::ClassMethods#win32_rwx_exec_thread (method)">win32_rwx_exec_thread</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_buf'>buf</span><span class='comma'>,</span><span class='int'>0</span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>end</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>addshellcode</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_binmode'>binmode</span>
|
||
<span class='id identifier rubyid_buf'>buf</span> <span class='op'><<</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span>
|
||
<span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_enc'>enc</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_encoders'>encoders</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_encoder'>encoder</span><span class='rparen'>)</span>
|
||
|
||
<span class='kw'>begin</span>
|
||
<span class='comment'># Imports options
|
||
</span> <span class='id identifier rubyid_enc'>enc</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
||
|
||
<span class='id identifier rubyid_raw'>raw</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_unpack'>unpack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>C*</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>C*</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
|
||
<span class='int'>1</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_ecount'>ecount</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_iteration'>iteration</span><span class='op'>|</span>
|
||
<span class='comment'># Encode it up
|
||
</span> <span class='id identifier rubyid_raw'>raw</span> <span class='op'>=</span> <span class='id identifier rubyid_enc'>enc</span><span class='period'>.</span><span class='id identifier rubyid_encode'>encode</span><span class='lparen'>(</span><span class='id identifier rubyid_raw'>raw</span><span class='comma'>,</span> <span class='id identifier rubyid_badchars'>badchars</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_platform'>platform</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/EXE.html" title="Msf::Util::EXE (module)">EXE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_to_executable_fmt'><span class='object_link'><a href="../Util/EXE/ClassMethods.html#to_executable_fmt-instance_method" title="Msf::Util::EXE::ClassMethods#to_executable_fmt (method)">to_executable_fmt</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='comma'>,</span> <span class='id identifier rubyid_arch'>arch</span><span class='comma'>,</span> <span class='id identifier rubyid_platform'>platform</span><span class='comma'>,</span> <span class='id identifier rubyid_raw'>raw</span><span class='comma'>,</span> <span class='id identifier rubyid_fmt'>fmt</span><span class='comma'>,</span> <span class='id identifier rubyid_exeopts'>exeopts</span><span class='rparen'>)</span>
|
||
|
||
<span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_output'>output</span>
|
||
<span class='id identifier rubyid_fmt'>fmt</span> <span class='op'>||=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ruby</span><span class='tstring_end'>"</span></span>
|
||
<span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Buffer.html" title="Msf::Simple::Buffer (module)">Buffer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_transform'><span class='object_link'><a href="../Simple/Buffer.html#transform-class_method" title="Msf::Simple::Buffer.transform (method)">transform</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_raw'>raw</span><span class='comma'>,</span> <span class='id identifier rubyid_fmt'>fmt</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='comment'># How to warn?
|
||
</span> <span class='comment'>#if exeopts[:fellback]
|
||
</span> <span class='comment'># $stderr.puts(OutError + "Warning: Falling back to default template: #{exeopts[:fellback]}")
|
||
</span> <span class='comment'>#end
|
||
</span>
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>encoded</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_output'>output</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
||
<span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='int'>500</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_enc'>enc</span><span class='period'>.</span><span class='id identifier rubyid_refname'>refname</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_encode_formats-instance_method">
|
||
|
||
#<strong>rpc_encode_formats</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of encoding formats.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.encode_formats</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Encoding formats.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
620
|
||
621
|
||
622
|
||
623</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 620</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_encode_formats'>rpc_encode_formats</span>
|
||
<span class='comment'># Supported formats
|
||
</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Buffer.html" title="Msf::Simple::Buffer (module)">Buffer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_transform_formats'><span class='object_link'><a href="../Simple/Buffer.html#transform_formats-class_method" title="Msf::Simple::Buffer.transform_formats (method)">transform_formats</a></span></span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/EXE.html" title="Msf::Util::EXE (module)">EXE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_to_executable_fmt_formats'><span class='object_link'><a href="../Util/EXE/ClassMethods.html#to_executable_fmt_formats-instance_method" title="Msf::Util::EXE::ClassMethods#to_executable_fmt_formats (method)">to_executable_fmt_formats</a></span></span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_encoders-instance_method">
|
||
|
||
#<strong>rpc_encoders</strong>(module_info = nil, arch = nil) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of encoder module names or a hash with encoder module names as keys to hashes that contain the module information fields requested. The ‘encoder/’ prefix will not be included.</p>
|
||
|
||
<p>If this is nil, then only module names are returned. Default: nil the module must support. The module need only support one of the architectures to be included, not all architectures. Default: nil</p>
|
||
|
||
<p>If module_info is not nil, encoder module names as keys to hashes that contain the requested module information fields. It contains the following key:</p>
|
||
|
||
<pre class="code ruby"><code class="ruby">* 'modules' [Hash] for example:
|
||
{"x86/unicode_upper"=>{"name"=>"Alpha2 Alphanumeric Unicode Uppercase Encoder", "rank"=>"Manual"}}
|
||
</code></pre>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.encoders</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>module_info</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of module information field names.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>arch</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of one or more architectures that</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>If module_info is nil, a list of encoder module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<String>] Encoder module names, for example: ['x86/unicode_upper']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
116
|
||
117
|
||
118
|
||
119
|
||
120
|
||
121
|
||
122
|
||
123
|
||
124
|
||
125
|
||
126
|
||
127
|
||
128
|
||
129
|
||
130
|
||
131
|
||
132
|
||
133
|
||
134
|
||
135
|
||
136
|
||
137
|
||
138</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 116</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_encoders'>rpc_encoders</span><span class='lparen'>(</span><span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_map!'>map!</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_arch_filter'>arch_filter</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>?</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_encoders'>encoders</span><span class='period'>.</span><span class='id identifier rubyid_each_module'>each_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Arch</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_arch_filter'>arch_filter</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_mod'>mod</span><span class='op'>|</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'><<</span> <span class='id identifier rubyid_name'>name</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer.html" title="Msf::Serializer (module)">Serializer</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer/Json.html" title="Msf::Serializer::Json (class)">Json</a></span></span><span class='period'>.</span><span class='id identifier rubyid_dump_module'><span class='object_link'><a href="../Serializer/Json.html#dump_module-class_method" title="Msf::Serializer::Json.dump_module (method)">dump_module</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>symbolize_names:</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_data'>data</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_encryption_formats-instance_method">
|
||
|
||
#<strong>rpc_encryption_formats</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of encryption format names.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.encryption_formats</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of encryption format names, for example: ["aes256"]</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
590
|
||
591
|
||
592</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 590</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_encryption_formats'>rpc_encryption_formats</span>
|
||
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Buffer.html" title="Msf::Simple::Buffer (module)">Buffer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_encryption_formats'><span class='object_link'><a href="../Simple/Buffer.html#encryption_formats-class_method" title="Msf::Simple::Buffer.encryption_formats (method)">encryption_formats</a></span></span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_evasion-instance_method">
|
||
|
||
#<strong>rpc_evasion</strong> ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of evasion module names. The ‘evasion/’ prefix will not be included.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.evasion</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of evasion module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<string>] Evasion names, for example: ['windows/windows_defender_exe']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
26
|
||
27
|
||
28</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 26</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_evasion'>rpc_evasion</span>
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_evasion'>evasion</span><span class='period'>.</span><span class='id identifier rubyid_module_refnames'>module_refnames</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_executable_formats-instance_method">
|
||
|
||
#<strong>rpc_executable_formats</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of executable format names.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.executable_formats</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of executable format names, for example: ["exe"]</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
572
|
||
573
|
||
574</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 572</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_executable_formats'>rpc_executable_formats</span>
|
||
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/EXE.html" title="Msf::Util::EXE (module)">EXE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_to_executable_fmt_formats'><span class='object_link'><a href="../Util/EXE/ClassMethods.html#to_executable_fmt_formats-instance_method" title="Msf::Util::EXE::ClassMethods#to_executable_fmt_formats (method)">to_executable_fmt_formats</a></span></span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_execute-instance_method">
|
||
|
||
#<strong>rpc_execute</strong>(mtype, mname, opts) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<div class="note notetag">
|
||
<strong>Note:</strong>
|
||
<div class='inline'>
|
||
<p>If you get exploit sessions via the RPC service, know that only the RPC clients have access to those sessions. Framework msfconsole will not be able to use or even see these sessions, because it belongs to a different framework instance. However, this restriction does not apply to the database.</p>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<p>Executes a module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='comment'># Starts a windows/meterpreter/reverse_tcp on port 6669
|
||
</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>LHOST</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.0.0.0</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>LPORT</span><span class='tstring_end'>'</span></span><span class='op'>=></span><span class='int'>6669</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>PAYLOAD</span><span class='tstring_end'>'</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/meterpreter/reverse_tcp</span><span class='tstring_end'>'</span></span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.execute</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>multi/handler</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mtype</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module type. Supported types include (case-sensitive):</p>
|
||
<ul><li>
|
||
<p>exploit</p>
|
||
</li><li>
|
||
<p>auxiliary</p>
|
||
</li><li>
|
||
<p>post</p>
|
||
</li><li>
|
||
<p>payload</p>
|
||
</li><li>
|
||
<p>evasion</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module name. For example: 'windows/smb/ms08_067_netapi'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>opts</span>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Options for the module (such as datastore options).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>It contains the following keys:</p>
|
||
<ul><li>
|
||
<p>'job_id' [Integer] Job ID.</p>
|
||
</li><li>
|
||
<p>'uuid' [String] UUID.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (either wrong type or name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
498
|
||
499
|
||
500
|
||
501
|
||
502
|
||
503
|
||
504
|
||
505
|
||
506
|
||
507
|
||
508
|
||
509
|
||
510
|
||
511
|
||
512
|
||
513
|
||
514</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 498</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_execute'>rpc_execute</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_mod'>mod</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
|
||
<span class='kw'>case</span> <span class='id identifier rubyid_mtype'>mtype</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__run_exploit'>_run_exploit</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__run_auxiliary'>_run_auxiliary</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payload</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__run_payload'>_run_payload</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>post</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__run_post'>_run_post</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>evasion</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid__run_evasion'>_run_evasion</span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_exploits-instance_method">
|
||
|
||
#<strong>rpc_exploits</strong> ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of exploit names. The ‘exploit/’ prefix will not be included.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.exploits</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of exploit names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<string>] Exploit names, for example: ['windows/wins/ms04_045_wins']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
15
|
||
16
|
||
17</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 15</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_exploits'>rpc_exploits</span>
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_exploits'>exploits</span><span class='period'>.</span><span class='id identifier rubyid_module_refnames'>module_refnames</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_info-instance_method">
|
||
|
||
#<strong>rpc_info</strong>(mtype, mname) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the metadata for a module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='comment'># This gives us the metadata of ms08_067_netapi
|
||
</span><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.info</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/smb/ms08_067_netapi</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mtype</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module type. Supported types include (case-sensitive):</p>
|
||
<ul><li>
|
||
<p>exploit</p>
|
||
</li><li>
|
||
<p>auxiliary</p>
|
||
</li><li>
|
||
<p>post</p>
|
||
</li><li>
|
||
<p>nop</p>
|
||
</li><li>
|
||
<p>payload</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module name. For example: 'windows/wlan/wlan_profile'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The module's metadata. The exact keys you will get depends on the module.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (either the wrong type or name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
217
|
||
218
|
||
219
|
||
220
|
||
221
|
||
222
|
||
223
|
||
224
|
||
225
|
||
226
|
||
227
|
||
228
|
||
229
|
||
230
|
||
231
|
||
232
|
||
233
|
||
234
|
||
235
|
||
236
|
||
237
|
||
238
|
||
239
|
||
240
|
||
241
|
||
242
|
||
243
|
||
244
|
||
245
|
||
246
|
||
247
|
||
248
|
||
249
|
||
250
|
||
251
|
||
252
|
||
253
|
||
254
|
||
255
|
||
256
|
||
257
|
||
258
|
||
259
|
||
260
|
||
261
|
||
262
|
||
263
|
||
264
|
||
265
|
||
266
|
||
267
|
||
268
|
||
269
|
||
270
|
||
271
|
||
272
|
||
273
|
||
274
|
||
275
|
||
276
|
||
277
|
||
278
|
||
279
|
||
280
|
||
281</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 217</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_info'>rpc_info</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='id identifier rubyid_module_short_info'>module_short_info</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>description</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Rex.html" title="Rex (module)">Rex</a></span></span><span class='op'>::</span><span class='const'>Text</span><span class='period'>.</span><span class='id identifier rubyid_compress'>compress</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_description'>description</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>license</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_license'>license</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>filepath</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_file_path'>file_path</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>arch</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>platform</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='period'>.</span><span class='id identifier rubyid_platforms'>platforms</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:realname</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_realname'>realname</span> <span class='op'>:</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>authors</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_author'>author</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='op'>|</span> <span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>privileged</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_privileged?'>privileged?</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>check</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_has_check?'>has_check?</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default_options</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_default_options'>default_options</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>notes</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_notes'>notes</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>references</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_references'>references</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_r'>r</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>references</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_ctx_id'>ctx_id</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_ctx_val'>ctx_val</span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span> <span class='op'>||</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>evasion</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>targets</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_targets'>targets</span><span class='period'>.</span><span class='id identifier rubyid_each_index'>each_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>targets</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_targets'>targets</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_default_target'>default_target</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default_target</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_default_target'>default_target</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='comment'># Some modules are a combination, which means they are actually aggressive
|
||
</span> <span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>stance</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_stance'>stance</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>aggressive</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>aggressive</span><span class='tstring_end'>'</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>passive</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary</span><span class='tstring_end'>'</span></span> <span class='op'>||</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>post</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>actions</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_actions'>actions</span><span class='period'>.</span><span class='id identifier rubyid_each_index'>each_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>actions</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_actions'>actions</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_default_action'>default_action</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default_action</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_default_action'>default_action</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auxiliary</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>stance</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_passive?'>passive?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>passive</span><span class='tstring_end'>'</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>aggressive</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_each_key'>each_key</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_o'>o</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>type</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>required</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_required'>required</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>advanced</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_advanced'>advanced</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>desc</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_desc'>desc</span>
|
||
<span class='rbrace'>}</span>
|
||
|
||
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span> <span class='kw'>unless</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>enums</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_enums'>enums</span> <span class='kw'>if</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_enums'>enums</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>></span> <span class='int'>1</span>
|
||
<span class='kw'>end</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>options</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_info_html-instance_method">
|
||
|
||
#<strong>rpc_info_html</strong>(mtype, mname) ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns detailed information about a module in HTML.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.info_html</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/smb/ms08_067_netapi</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>HTML file.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
197
|
||
198
|
||
199
|
||
200</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 197</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_info_html'>rpc_info_html</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util.html" title="Msf::Util (module)">Util</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Util/DocumentGenerator.html" title="Msf::Util::DocumentGenerator (module)">DocumentGenerator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_get_module_document'><span class='object_link'><a href="../Util/DocumentGenerator.html#get_module_document-class_method" title="Msf::Util::DocumentGenerator.get_module_document (method)">get_module_document</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_nops-instance_method">
|
||
|
||
#<strong>rpc_nops</strong>(module_info = nil, arch = nil) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of NOP module names or a hash with NOP module names as keys to hashes that contain the module information fields requested. The ‘nop/’ prefix will not be included.</p>
|
||
|
||
<p>If this is nil, then only module names are returned. Default: nil the module must support. The module need only support one of the architectures to be included, not all architectures. Default: nil</p>
|
||
|
||
<p>If module_info is not nil, NOP module names as keys to hashes that contain the requested module information fields. It contains the following key:</p>
|
||
|
||
<pre class="code ruby"><code class="ruby">* 'modules' [Hash] for example:
|
||
{"x86/single_byte"=>{"name"=>"Single Byte", "rank"=>"Normal"}}
|
||
</code></pre>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.nops</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>module_info</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of module information field names.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>arch</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of one or more architectures that</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>If module_info is nil, a list of NOP module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<String>] NOP module names, for example: ['x86/single_byte']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
157
|
||
158
|
||
159
|
||
160
|
||
161
|
||
162
|
||
163
|
||
164
|
||
165
|
||
166
|
||
167
|
||
168
|
||
169
|
||
170
|
||
171
|
||
172
|
||
173
|
||
174
|
||
175
|
||
176
|
||
177
|
||
178
|
||
179</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 157</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_nops'>rpc_nops</span><span class='lparen'>(</span><span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_map!'>map!</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_arch_filter'>arch_filter</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>?</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_nops'>nops</span><span class='period'>.</span><span class='id identifier rubyid_each_module'>each_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Arch</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_arch_filter'>arch_filter</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_mod'>mod</span><span class='op'>|</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'><<</span> <span class='id identifier rubyid_name'>name</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer.html" title="Msf::Serializer (module)">Serializer</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer/Json.html" title="Msf::Serializer::Json (class)">Json</a></span></span><span class='period'>.</span><span class='id identifier rubyid_dump_module'><span class='object_link'><a href="../Serializer/Json.html#dump_module-class_method" title="Msf::Serializer::Json.dump_module (method)">dump_module</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>symbolize_names:</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_data'>data</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_options-instance_method">
|
||
|
||
#<strong>rpc_options</strong>(mtype, mname) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the module’s datastore options.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.options</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/smb/ms08_067_netapi</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mtype</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module type. Supported types include (case-sensitive):</p>
|
||
<ul><li>
|
||
<p>exploit</p>
|
||
</li><li>
|
||
<p>auxiliary</p>
|
||
</li><li>
|
||
<p>post</p>
|
||
</li><li>
|
||
<p>nop</p>
|
||
</li><li>
|
||
<p>payload</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module name. For example: 'windows/wlan/wlan_profile'.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The module's datastore options. This will actually give you each option's data type, requirement state, basic/advanced type, description, default value, etc.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (either wrong type or name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
450
|
||
451
|
||
452
|
||
453
|
||
454
|
||
455
|
||
456
|
||
457
|
||
458
|
||
459
|
||
460
|
||
461
|
||
462
|
||
463
|
||
464
|
||
465
|
||
466
|
||
467
|
||
468
|
||
469
|
||
470
|
||
471
|
||
472
|
||
473
|
||
474</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 450</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_options'>rpc_options</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span> <span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='id identifier rubyid_mtype'>mtype</span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_each_key'>each_key</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_o'>o</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>type</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>required</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_required'>required</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>advanced</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_advanced'>advanced</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>evasion</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_evasion'>evasion</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>desc</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_desc'>desc</span>
|
||
<span class='rbrace'>}</span>
|
||
|
||
<span class='kw'>if</span><span class='lparen'>(</span><span class='kw'>not</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span><span class='lparen'>(</span><span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_enums'>enums</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>></span> <span class='int'>1</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>enums</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_o'>o</span><span class='period'>.</span><span class='id identifier rubyid_enums'>enums</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_payloads-instance_method">
|
||
|
||
#<strong>rpc_payloads</strong>(module_info = nil, arch = nil) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of payload module names or a hash with payload module names as keys to hashes that contain the module information fields requested. The ‘payload/’ prefix will not be included.</p>
|
||
|
||
<p>If this is nil, then only module names are returned. Default: nil the module must support. The module need only support one of the architectures to be included, not all architectures. Default: nil</p>
|
||
|
||
<p>If module_info is not nil, payload module names as keys to hashes that contain the requested module information fields. It contains the following key:</p>
|
||
|
||
<pre class="code ruby"><code class="ruby">* 'modules' [Hash] for example:
|
||
{"windows/x64/shell_reverse_tcp"=>{"name"=>"Windows x64 Command Shell, Reverse TCP Inline"}
|
||
</code></pre>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.payloads</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>module_info</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of module information field names.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>arch</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Comma-separated list of one or more architectures that</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>If module_info is nil, a list of payload module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<String>] Payload module names, for example: ['windows/x64/shell_reverse_tcp']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
59
|
||
60
|
||
61
|
||
62
|
||
63
|
||
64
|
||
65
|
||
66
|
||
67
|
||
68
|
||
69
|
||
70
|
||
71
|
||
72
|
||
73
|
||
74
|
||
75
|
||
76
|
||
77
|
||
78
|
||
79
|
||
80
|
||
81
|
||
82
|
||
83
|
||
84
|
||
85
|
||
86
|
||
87
|
||
88
|
||
89
|
||
90
|
||
91
|
||
92
|
||
93
|
||
94
|
||
95
|
||
96
|
||
97</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 59</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_payloads'>rpc_payloads</span><span class='lparen'>(</span><span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_module_info_contains_size'>module_info_contains_size</span> <span class='op'>=</span> <span class='kw'>false</span>
|
||
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_map!'>map!</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_module_info_contains_size'>module_info_contains_size</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='symbol'>:size</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>unless</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_arch'>arch</span> <span class='op'>=</span> <span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>,</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_arch_filter'>arch_filter</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>?</span> <span class='id identifier rubyid_arch'>arch</span> <span class='op'>:</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_payloads'>payloads</span><span class='period'>.</span><span class='id identifier rubyid_each_module'>each_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Arch</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='id identifier rubyid_arch_filter'>arch_filter</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_mod'>mod</span><span class='op'>|</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
||
<span class='id identifier rubyid_data'>data</span> <span class='op'><<</span> <span class='id identifier rubyid_name'>name</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_module_instance'>module_instance</span> <span class='op'>=</span> <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
||
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_module_info_contains_size'>module_info_contains_size</span> <span class='op'>&&</span> <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_method_defined?'>method_defined?</span><span class='lparen'>(</span><span class='symbol'>:generate</span><span class='rparen'>)</span>
|
||
<span class='comment'># Unless the size field is specified in module_info, modify the generate
|
||
</span> <span class='comment'># method for the module instance in order to skip payload generation when
|
||
</span> <span class='comment'># the size method is called by Msf::Serializer::Json.dump_module, thus
|
||
</span> <span class='comment'># reducing the processing time.
|
||
</span> <span class='kw'>class</span> <span class='op'><<</span> <span class='id identifier rubyid_module_instance'>module_instance</span>
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_generate'>generate</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer.html" title="Msf::Serializer (module)">Serializer</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Serializer/Json.html" title="Msf::Serializer::Json (class)">Json</a></span></span><span class='period'>.</span><span class='id identifier rubyid_dump_module'><span class='object_link'><a href="../Serializer/Json.html#dump_module-class_method" title="Msf::Serializer::Json.dump_module (method)">dump_module</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_module_instance'>module_instance</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>symbolize_names:</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_tmp_mod_info'>tmp_mod_info</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_data'>data</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_platforms-instance_method">
|
||
|
||
#<strong>rpc_platforms</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of platform names.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.platforms</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of platform names, for example: ["linux"]</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
599
|
||
600
|
||
601
|
||
602
|
||
603</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 599</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_platforms'>rpc_platforms</span>
|
||
<span class='id identifier rubyid_supported_platforms'>supported_platforms</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Module.html" title="Msf::Module (class)">Module</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Module/Platform.html" title="Msf::Module::Platform (class)">Platform</a></span></span><span class='period'>.</span><span class='id identifier rubyid_subclasses'>subclasses</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_supported_platforms'>supported_platforms</span> <span class='op'><<</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_realname'>realname</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span> <span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_supported_platforms'>supported_platforms</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_post-instance_method">
|
||
|
||
#<strong>rpc_post</strong> ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of post module names. The ‘post/’ prefix will not be included.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.post</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of post module names. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'modules' [Array<string>] Post module names, for example: ['windows/wlan/wlan_profile']</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
187
|
||
188
|
||
189</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 187</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_post'>rpc_post</span>
|
||
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>modules</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_post'>post</span><span class='period'>.</span><span class='id identifier rubyid_module_refnames'>module_refnames</span> <span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_results-instance_method">
|
||
|
||
#<strong>rpc_results</strong>(uuid) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>TODO: expand these to take a list of UUIDs or stream with event data if required for performance</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
539
|
||
540
|
||
541
|
||
542
|
||
543
|
||
544
|
||
545
|
||
546
|
||
547
|
||
548
|
||
549
|
||
550
|
||
551
|
||
552
|
||
553
|
||
554
|
||
555
|
||
556
|
||
557
|
||
558
|
||
559
|
||
560
|
||
561</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 539</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_results'>rpc_results</span><span class='lparen'>(</span><span class='id identifier rubyid_uuid'>uuid</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span><span class='lparen'>(</span><span class='id identifier rubyid_uuid'>uuid</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span>
|
||
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>status</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>errored</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>error</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
|
||
<span class='kw'>else</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:result</span><span class='rbracket'>]</span> <span class='op'>&&</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:result</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>1</span>
|
||
<span class='comment'># A hash of one IP => result
|
||
</span> <span class='comment'># TODO: make hashes of IP => result the normal case
|
||
</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>status</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>completed</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>result</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:result</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='rbrace'>}</span>
|
||
<span class='kw'>else</span>
|
||
<span class='comment'># Either singular check code or multiple hosts
|
||
</span> <span class='comment'># TODO: combine underlying code so that nothing returns a bare CheckCode anymore
|
||
</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>status</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>completed</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>result</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:result</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_running?'>running?</span> <span class='id identifier rubyid_uuid'>uuid</span>
|
||
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>status</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>running</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span>
|
||
<span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_waiting?'>waiting?</span> <span class='id identifier rubyid_uuid'>uuid</span>
|
||
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>status</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ready</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='int'>404</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Results not found for module instance </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_uuid'>uuid</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_running_stats-instance_method">
|
||
|
||
#<strong>rpc_running_stats</strong> ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the currently running module stats in each state.</p>
|
||
|
||
<p>@exampleHere’s how you would use this from the client:</p>
|
||
|
||
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.running_stats</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
</code></pre>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Running module stats that contain the following keys:</p>
|
||
<ul><li>
|
||
<p>'waiting' [Array<string>] The uuids of modules waiting to be kicked off.</p>
|
||
</li><li>
|
||
<p>'running' [Array<string>] The uuids of modules currently in progress.</p>
|
||
</li><li>
|
||
<p>'results' [Array<string>] The uuids of module run/check results.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
427
|
||
428
|
||
429
|
||
430
|
||
431
|
||
432
|
||
433</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 427</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_running_stats'>rpc_running_stats</span>
|
||
<span class='lbrace'>{</span>
|
||
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>waiting</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_waiting_ids'>waiting_ids</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>running</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_running_ids'>running_ids</span><span class='comma'>,</span>
|
||
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>results</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_job_status_tracker'>job_status_tracker</span><span class='period'>.</span><span class='id identifier rubyid_result_ids'>result_ids</span>
|
||
<span class='rbrace'>}</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_search-instance_method">
|
||
|
||
#<strong>rpc_search</strong>(match) ⇒ <tt>hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>returns a list of module names that match the search string.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.search</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>smb type:exploit</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>match</span>
|
||
|
||
|
||
<span class='type'>(<tt>string</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>the search string.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>a list of modules. it contains the following key:</p>
|
||
<ul><li>
|
||
<p>'type' [string] The module type (exploit, auxiliary, post, payload, etc.)</p>
|
||
</li><li>
|
||
<p>'name' [string] The module name</p>
|
||
</li><li>
|
||
<p>'fullname' [string] The full module path</p>
|
||
</li><li>
|
||
<p>'rank' [string] The module rank (excellent, great, good, normal, etc.)</p>
|
||
</li><li>
|
||
<p>'disclosuredate' [string] The module disclosure date (YYYY-MM-DD)</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
294
|
||
295
|
||
296
|
||
297
|
||
298
|
||
299
|
||
300</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 294</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_search'>rpc_search</span><span class='lparen'>(</span><span class='id identifier rubyid_match'>match</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_matches'>matches</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_match'>match</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_m'>m</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_matches'>matches</span> <span class='op'><<</span> <span class='id identifier rubyid_module_short_info'>module_short_info</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='id identifier rubyid_matches'>matches</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_target_compatible_evasion_payloads-instance_method">
|
||
|
||
#<strong>rpc_target_compatible_evasion_payloads</strong>(mname, target) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the compatible target-specific payloads for an evasion module.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.target_compatible_evasion_payloads</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/windows_defender_exe</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Evasion module name. For example: windows/windows_defender_exe</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>target</span>
|
||
|
||
|
||
<span class='type'>(<tt>Integer</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A specific target the evasion module provides.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The evasion module's target-specific payloads. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'payloads' [Array<String>] A list of payloads.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (wrong name)</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
407
|
||
408
|
||
409
|
||
410
|
||
411
|
||
412
|
||
413
|
||
414
|
||
415
|
||
416
|
||
417</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 407</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_target_compatible_evasion_payloads'>rpc_target_compatible_evasion_payloads</span><span class='lparen'>(</span><span class='id identifier rubyid_mname'>mname</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>evasion</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TARGET</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_compatible_payloads'>compatible_payloads</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_target_compatible_payloads-instance_method">
|
||
|
||
#<strong>rpc_target_compatible_payloads</strong>(mname, target) ⇒ <tt>Hash</tt>
|
||
|
||
|
||
|
||
<span class="aliases">Also known as:
|
||
<span class="names"><span id='rpc_target_compatible_exploit_payloads-instance_method'>rpc_target_compatible_exploit_payloads</span></span>
|
||
</span>
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns the compatible target-specific payloads for an exploit.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='comment'># Find all the compatible payloads for target 1 (Windows 2000 Universal)
|
||
</span><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.target_compatible_payloads</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windows/smb/ms08_067_netapi</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='int'>1</span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>mname</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Exploit module name. For example: 'windows/smb/ms08_067_netapi'</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
|
||
<span class='name'>target</span>
|
||
|
||
|
||
<span class='type'>(<tt>Integer</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A specific target the exploit module provides.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Hash</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The exploit's target-specific payloads. It contains the following key:</p>
|
||
<ul><li>
|
||
<p>'payloads' [Array<string>] A list of payloads.</p>
|
||
</li></ul>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="Exception.html" title="Msf::RPC::Exception (class)">Msf::RPC::Exception</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Module not found (wrong name).</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
383
|
||
384
|
||
385
|
||
386
|
||
387
|
||
388
|
||
389
|
||
390
|
||
391
|
||
392
|
||
393</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 383</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_target_compatible_payloads'>rpc_target_compatible_payloads</span><span class='lparen'>(</span><span class='id identifier rubyid_mname'>mname</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid__find_module'>_find_module</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exploit</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='id identifier rubyid_mname'>mname</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TARGET</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
|
||
<span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_compatible_payloads'>compatible_payloads</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>payloads</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_res'>res</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rpc_transform_formats-instance_method">
|
||
|
||
#<strong>rpc_transform_formats</strong> ⇒ <tt>Array<String></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a list of transform format names.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<div class="examples">
|
||
<h4 class="tag_title">Examples:</h4>
|
||
|
||
|
||
<h5 class="example_title"><div class='inline'>
|
||
<p>Here's how you would use this from the client:</p>
|
||
</div></h5>
|
||
|
||
<pre class="example code"><code><span class='id identifier rubyid_rpc'>rpc</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>module.transform_formats</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
||
|
||
</div>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array<String></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A list of transform format names, for example: ["powershell"]</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
581
|
||
582
|
||
583</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_module.rb', line 581</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_transform_formats'>rpc_transform_formats</span>
|
||
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Buffer.html" title="Msf::Simple::Buffer (module)">Buffer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_transform_formats'><span class='object_link'><a href="../Simple/Buffer.html#transform_formats-class_method" title="Msf::Simple::Buffer.transform_formats (method)">transform_formats</a></span></span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div id="footer">
|
||
Generated on Fri May 8 17:03:29 2026 by
|
||
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
||
0.9.37 (ruby-3.1.5).
|
||
</div>
|
||
|
||
</div>
|
||
</body>
|
||
</html> |