Files
metasploit-gs/api/Msf/MCP/Metasploit/JsonRpcClient.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

1597 lines
37 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Msf::MCP::Metasploit::JsonRpcClient
&mdash; 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::MCP::Metasploit::JsonRpcClient";
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 (J)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../../Msf.html" title="Msf (module)">Msf</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../MCP.html" title="Msf::MCP (module)">MCP</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Metasploit.html" title="Msf::MCP::Metasploit (module)">Metasploit</a></span></span>
&raquo;
<span class="title">JsonRpcClient</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::MCP::Metasploit::JsonRpcClient
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Msf::MCP::Metasploit::JsonRpcClient</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/mcp/metasploit/jsonrpc_client.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>JSON-RPC 2.0 client for Metasploit Framework Implements bearer token authentication for the Metasploit JSON-RPC API Endpoint: /api/v1/json-rpc (default port 8081) See: lib/msf/core/rpc/json/ in Metasploit Framework repository</p>
</div>
</div>
<div class="tags">
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="DEFAULT_ENDPOINT-constant" class="">DEFAULT_ENDPOINT =
</dt>
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>/api/v1/json-rpc</span><span class='tstring_end'>&#39;</span></span></pre></dd>
</dl>
<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="#authenticate-instance_method" title="#authenticate (instance method)">#<strong>authenticate</strong>(_user, _password) &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>No-op for JSON-RPC: authentication uses a pre-configured bearer token.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#call_api-instance_method" title="#call_api (instance method)">#<strong>call_api</strong>(method, args = []) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Call Metasploit API method using JSON-RPC 2.0 format.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_creds-instance_method" title="#db_creds (instance method)">#<strong>db_creds</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get credentials from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_hosts-instance_method" title="#db_hosts (instance method)">#<strong>db_hosts</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get hosts from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_loot-instance_method" title="#db_loot (instance method)">#<strong>db_loot</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get loot from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_notes-instance_method" title="#db_notes (instance method)">#<strong>db_notes</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get notes from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_services-instance_method" title="#db_services (instance method)">#<strong>db_services</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get services from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_vulns-instance_method" title="#db_vulns (instance method)">#<strong>db_vulns</strong>(options = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get vulnerabilities from database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(host:, port:, endpoint: DEFAULT_ENDPOINT, token:, ssl: true) &#x21d2; JsonRpcClient </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>Initialize JSON-RPC client.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#module_info-instance_method" title="#module_info (instance method)">#<strong>module_info</strong>(type, name) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get module information.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#search_modules-instance_method" title="#search_modules (instance method)">#<strong>search_modules</strong>(query) &#x21d2; Array&lt;Hash&gt; </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Search for Metasploit modules.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#shutdown-instance_method" title="#shutdown (instance method)">#<strong>shutdown</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Shutdown client.</p>
</div></span>
</li>
</ul>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong>(host:, port:, endpoint: DEFAULT_ENDPOINT, token:, ssl: true) &#x21d2; <tt><span class='object_link'><a href="" title="Msf::MCP::Metasploit::JsonRpcClient (class)">JsonRpcClient</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Initialize JSON-RPC client</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>host</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Metasploit RPC host</p>
</div>
</li>
<li>
<span class='name'>port</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>Metasploit RPC port</p>
</div>
</li>
<li>
<span class='name'>endpoint</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>DEFAULT_ENDPOINT</tt>)</em>
&mdash;
<div class='inline'>
<p>API endpoint path (default: DEFAULT_ENDPOINT)</p>
</div>
</li>
<li>
<span class='name'>token</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Bearer authentication token</p>
</div>
</li>
<li>
<span class='name'>ssl</span>
<span class='type'>(<tt>Boolean</tt>)</span>
<em class="default">(defaults to: <tt>true</tt>)</em>
&mdash;
<div class='inline'>
<p>Use SSL (default: true)</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
21
22
23
24
25
26
27
28
29</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 21</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>host:</span><span class='comma'>,</span> <span class='label'>port:</span><span class='comma'>,</span> <span class='label'>endpoint:</span> <span class='const'><span class='object_link'><a href="#DEFAULT_ENDPOINT-constant" title="Msf::MCP::Metasploit::JsonRpcClient::DEFAULT_ENDPOINT (constant)">DEFAULT_ENDPOINT</a></span></span><span class='comma'>,</span> <span class='label'>token:</span><span class='comma'>,</span> <span class='label'>ssl:</span> <span class='kw'>true</span><span class='rparen'>)</span>
<span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span>
<span class='ivar'>@port</span> <span class='op'>=</span> <span class='id identifier rubyid_port'>port</span>
<span class='ivar'>@endpoint</span> <span class='op'>=</span> <span class='id identifier rubyid_endpoint'>endpoint</span>
<span class='ivar'>@token</span> <span class='op'>=</span> <span class='id identifier rubyid_token'>token</span>
<span class='ivar'>@request_id</span> <span class='op'>=</span> <span class='int'>0</span>
<span class='ivar'>@http</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='ivar'>@ssl</span> <span class='op'>=</span> <span class='id identifier rubyid_ssl'>ssl</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</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="authenticate-instance_method">
#<strong>authenticate</strong>(_user, _password) &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>No-op for JSON-RPC: authentication uses a pre-configured bearer token. This method exists so that JsonRpcClient satisfies the same interface as MessagePackClient, allowing the Client facade to delegate uniformly.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>_user</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Ignored</p>
</div>
</li>
<li>
<span class='name'>_password</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Ignored</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>The existing token</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
38
39
40</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 38</span>
<span class='kw'>def</span> <span class='id identifier rubyid_authenticate'>authenticate</span><span class='lparen'>(</span><span class='id identifier rubyid__user'>_user</span><span class='comma'>,</span> <span class='id identifier rubyid__password'>_password</span><span class='rparen'>)</span>
<span class='ivar'>@token</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="call_api-instance_method">
#<strong>call_api</strong>(method, args = []) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Call Metasploit API method using JSON-RPC 2.0 format</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>method</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>API method name</p>
</div>
</li>
<li>
<span class='name'>args</span>
<span class='type'>(<tt>Array</tt>)</span>
<em class="default">(defaults to: <tt>[]</tt>)</em>
&mdash;
<div class='inline'>
<p>Arguments to pass to the method (must be an array)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>API response</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt><span class='object_link'><a href="AuthenticationError.html" title="Msf::MCP::Metasploit::AuthenticationError (class)">AuthenticationError</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>If token is invalid</p>
</div>
</li>
<li>
<span class='type'>(<tt><span class='object_link'><a href="APIError.html" title="Msf::MCP::Metasploit::APIError (class)">APIError</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>If API returns error</p>
</div>
</li>
<li>
<span class='type'>(<tt><span class='object_link'><a href="ConnectionError.html" title="Msf::MCP::Metasploit::ConnectionError (class)">ConnectionError</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>If connection fails</p>
</div>
</li>
<li>
<span class='type'>(<tt>ArgumentError</tt>)</span>
&mdash;
<div class='inline'>
<p>If args is not an array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 50</span>
<span class='kw'>def</span> <span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>args must be an Array, got </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span>
<span class='ivar'>@request_id</span> <span class='op'>+=</span> <span class='int'>1</span>
<span class='comment'># Build JSON-RPC 2.0 request as a hash
</span> <span class='id identifier rubyid_request_body'>request_body</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>jsonrpc:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>2.0</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>method:</span> <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span>
<span class='label'>params:</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span>
<span class='label'>id:</span> <span class='ivar'>@request_id</span>
<span class='rbrace'>}</span>
<span class='comment'># Send HTTP request
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_send_request'>send_request</span><span class='lparen'>(</span><span class='id identifier rubyid_request_body'>request_body</span><span class='rparen'>)</span>
<span class='comment'># Check for JSON-RPC error
</span> <span class='kw'>if</span> <span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>error</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='id identifier rubyid_error_msg'>error_msg</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>error</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>message</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Unknown error</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="APIError.html" title="Msf::MCP::Metasploit::APIError (class)">APIError</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_error_msg'>error_msg</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>result</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_creds-instance_method">
#<strong>db_creds</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get credentials from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with creds array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
121
122
123</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 121</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_creds'>db_creds</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.creds</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_hosts-instance_method">
#<strong>db_hosts</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get hosts from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options (workspace, limit, offset, etc.)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with hosts array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
93
94
95</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 93</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_hosts'>db_hosts</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.hosts</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_loot-instance_method">
#<strong>db_loot</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get loot from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with loots array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
128
129
130</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 128</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_loot'>db_loot</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.loots</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_notes-instance_method">
#<strong>db_notes</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get notes from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with notes array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
114
115
116</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 114</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_notes'>db_notes</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.notes</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_services-instance_method">
#<strong>db_services</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get services from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with services array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
100
101
102</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 100</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_services'>db_services</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.services</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="db_vulns-instance_method">
#<strong>db_vulns</strong>(options = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get vulnerabilities from database</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>options</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>Query options</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Response with vulns array</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
107
108
109</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 107</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_vulns'>db_vulns</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>db.vulns</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="module_info-instance_method">
#<strong>module_info</strong>(type, name) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get module information</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>type</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Module type (exploit, auxiliary, post, etc.)</p>
</div>
</li>
<li>
<span class='name'>name</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Module name</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Module information</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
86
87
88</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 86</span>
<span class='kw'>def</span> <span class='id identifier rubyid_module_info'>module_info</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module.info</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="search_modules-instance_method">
#<strong>search_modules</strong>(query) &#x21d2; <tt>Array&lt;Hash&gt;</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Search for Metasploit modules</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>query</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Search query</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Array&lt;Hash&gt;</tt>)</span>
&mdash;
<div class='inline'>
<p>Module metadata</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
78
79
80</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 78</span>
<span class='kw'>def</span> <span class='id identifier rubyid_search_modules'>search_modules</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
<span class='id identifier rubyid_call_api'>call_api</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>module.search</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_query'>query</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="shutdown-instance_method">
#<strong>shutdown</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Shutdown client</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
133
134
135
136</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/mcp/metasploit/jsonrpc_client.rb', line 133</span>
<span class='kw'>def</span> <span class='id identifier rubyid_shutdown'>shutdown</span>
<span class='ivar'>@http</span><span class='op'>&amp;.</span><span class='id identifier rubyid_finish'>finish</span> <span class='kw'>if</span> <span class='ivar'>@http</span><span class='op'>&amp;.</span><span class='id identifier rubyid_started?'>started?</span>
<span class='ivar'>@http</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:03:38 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>