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

10270 lines
436 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_Db
&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::RPC::RPC_Db";
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> &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="../RPC.html" title="Msf::RPC (module)">RPC</a></span></span>
&raquo;
<span class="title">RPC_Db</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_Db
</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_Db</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Includes:</dt>
<dd>Metasploit::Credential::Creation</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/rpc/v10/rpc_db.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_add_workspace-instance_method" title="#rpc_add_workspace (instance method)">#<strong>rpc_add_workspace</strong>(wspace) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Adds a new workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_analyze_host-instance_method" title="#rpc_analyze_host (instance method)">#<strong>rpc_analyze_host</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns analysis of module suggestions for known data about a host.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_clients-instance_method" title="#rpc_clients (instance method)">#<strong>rpc_clients</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns browser clients information.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_connect-instance_method" title="#rpc_connect (instance method)">#<strong>rpc_connect</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Connects to the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_create_cracked_credential-instance_method" title="#rpc_create_cracked_credential (instance method)">#<strong>rpc_create_cracked_credential</strong>(xopts) &#x21d2; Metasploit::Credential::Core </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Creates a cracked credential.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_create_credential-instance_method" title="#rpc_create_credential (instance method)">#<strong>rpc_create_credential</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Creates a credential.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_creds-instance_method" title="#rpc_creds (instance method)">#<strong>rpc_creds</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns login credentials from a specific workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_current_workspace-instance_method" title="#rpc_current_workspace (instance method)">#<strong>rpc_current_workspace</strong> &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the current workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_client-instance_method" title="#rpc_del_client (instance method)">#<strong>rpc_del_client</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes browser information from a client.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_creds-instance_method" title="#rpc_del_creds (instance method)">#<strong>rpc_del_creds</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Delete credentials from a specific workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_host-instance_method" title="#rpc_del_host (instance method)">#<strong>rpc_del_host</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes hosts.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_note-instance_method" title="#rpc_del_note (instance method)">#<strong>rpc_del_note</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes notes.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_service-instance_method" title="#rpc_del_service (instance method)">#<strong>rpc_del_service</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes services.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_vuln-instance_method" title="#rpc_del_vuln (instance method)">#<strong>rpc_del_vuln</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes vulnerabilities.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_del_workspace-instance_method" title="#rpc_del_workspace (instance method)">#<strong>rpc_del_workspace</strong>(wspace) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes a workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_disconnect-instance_method" title="#rpc_disconnect (instance method)">#<strong>rpc_disconnect</strong> &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Disconnects the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_driver-instance_method" title="#rpc_driver (instance method)">#<strong>rpc_driver</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the driver for the database or returns the current one.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_events-instance_method" title="#rpc_events (instance method)">#<strong>rpc_events</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns framework events.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_client-instance_method" title="#rpc_get_client (instance method)">#<strong>rpc_get_client</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about a client connection.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_host-instance_method" title="#rpc_get_host (instance method)">#<strong>rpc_get_host</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about a host.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_note-instance_method" title="#rpc_get_note (instance method)">#<strong>rpc_get_note</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns a note.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_ref-instance_method" title="#rpc_get_ref (instance method)">#<strong>rpc_get_ref</strong>(name) &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns an external vulnerability reference.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_service-instance_method" title="#rpc_get_service (instance method)">#<strong>rpc_get_service</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about a service.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_vuln-instance_method" title="#rpc_get_vuln (instance method)">#<strong>rpc_get_vuln</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns vulnerabilities from services or from a host.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_get_workspace-instance_method" title="#rpc_get_workspace (instance method)">#<strong>rpc_get_workspace</strong>(wspace) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the current workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_hosts-instance_method" title="#rpc_hosts (instance method)">#<strong>rpc_hosts</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about hosts.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_import_data-instance_method" title="#rpc_import_data (instance method)">#<strong>rpc_import_data</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Imports file to the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_invalidate_login-instance_method" title="#rpc_invalidate_login (instance method)">#<strong>rpc_invalidate_login</strong>(xopts) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the status of a login credential to a failure.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_loots-instance_method" title="#rpc_loots (instance method)">#<strong>rpc_loots</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns all the looted items.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_notes-instance_method" title="#rpc_notes (instance method)">#<strong>rpc_notes</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns notes from the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_client-instance_method" title="#rpc_report_client (instance method)">#<strong>rpc_report_client</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a client connection.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_event-instance_method" title="#rpc_report_event (instance method)">#<strong>rpc_report_event</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a framework event.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_host-instance_method" title="#rpc_report_host (instance method)">#<strong>rpc_report_host</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a new host to the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_loot-instance_method" title="#rpc_report_loot (instance method)">#<strong>rpc_report_loot</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a looted item.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_note-instance_method" title="#rpc_report_note (instance method)">#<strong>rpc_report_note</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a note.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_service-instance_method" title="#rpc_report_service (instance method)">#<strong>rpc_report_service</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a service to the database.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_report_vuln-instance_method" title="#rpc_report_vuln (instance method)">#<strong>rpc_report_vuln</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reports a vulnerability.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_services-instance_method" title="#rpc_services (instance method)">#<strong>rpc_services</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about services.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_set_workspace-instance_method" title="#rpc_set_workspace (instance method)">#<strong>rpc_set_workspace</strong>(wspace) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets a workspace.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_status-instance_method" title="#rpc_status (instance method)">#<strong>rpc_status</strong> &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the database status.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_vulns-instance_method" title="#rpc_vulns (instance method)">#<strong>rpc_vulns</strong>(xopts) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about reported vulnerabilities.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rpc_workspaces-instance_method" title="#rpc_workspaces (instance method)">#<strong>rpc_workspaces</strong> &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns information about workspaces.</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_add_workspace-instance_method">
#<strong>rpc_add_workspace</strong>(wspace) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Adds a new workspace.</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>* rpc.call(&#39;db.add_workspace&#39;, &#39;my_new_workspace&#39;)</code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>wspace</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Workspace 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>A hash indicating whether the action was successful or not. You get:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
695
696
697
698
699
700
701
702</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 695</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_add_workspace'>rpc_add_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_wspace'>wspace</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_add_workspace'>add_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</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='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_wspace'>wspace</span>
<span class='lbrace'>{</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='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_analyze_host-instance_method">
#<strong>rpc_analyze_host</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns analysis of module suggestions for known data about a host.</p>
<ul><li><dl class="rdoc-list label-list"><dt>Array&lt;String&gt;</dt>
<dd>
<p>:payloads Modules returned will be compatible with at least one payload</p>
</dd></dl>
</li></ul>
</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'>&#39;</span><span class='tstring_content'>db.analyze_host</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options (:addr, :address, :host are the same thing, and you only need one):</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:addr</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :addr.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</p>
</div>
</li>
<li>
<span class="name">:analyze_options</span>
<span class="type">(<tt>Map&lt;String, Object&gt;</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>All returned modules will support these 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>A hash that contains the following:</p>
<ul><li>
<p>'host' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'address' [String] Address.</p>
</li><li>
<p>'modules' [Array&lt;Hash&gt;] Each hash in the array modules contains the following:</p>
<ul><li>
<p>'mtype' [String] Module type.</p>
</li><li>
<p>'mname' [String] Module name. For example: 'windows/wlan/wlan_profile'</p>
</li></ul>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 781</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_analyze_host'>rpc_analyze_host</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid__opts'>_opts</span><span class='comma'>,</span> <span class='id identifier rubyid__wspace'>_wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>host:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_deep_symbolize_keys!'>deep_symbolize_keys!</span>
<span class='id identifier rubyid_host'>host</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_host'>get_host</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='comment'># consider expanding to support a list of hosts?
</span> <span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>unless</span> <span class='id identifier rubyid_host'>host</span>
<span class='comment'># as a consumer options should be a filter object not a top level param
</span> <span class='id identifier rubyid_analyze_options'>analyze_options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_analyze_options'>analyze_options</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:analyze_options</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:analyze_options</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_analyze_result'>analyze_result</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_analyze'>analyze</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_analyze_options'>analyze_options</span><span class='rparen'>)</span>
<span class='comment'># this should just serialize the result as hosts details why did it end up limited?
</span> <span class='id identifier rubyid_module_suggestions'>module_suggestions</span> <span class='op'>=</span> <span class='id identifier rubyid_analyze_result'>analyze_result</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_sort_by'>sort_by</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_result'>result</span><span class='op'>|</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_fullname'>fullname</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_host_detail'>host_detail</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>address:</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='comma'>,</span>
<span class='label'>modules:</span> <span class='id identifier rubyid_module_suggestions'>module_suggestions</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_result'>result</span><span class='op'>|</span>
<span class='id identifier rubyid_mod'>mod</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_mod'>mod</span>
<span class='lbrace'>{</span>
<span class='label'>mtype:</span> <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
<span class='label'>mname:</span> <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_fullname'>fullname</span><span class='comma'>,</span>
<span class='label'>state:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_state'>state</span><span class='comma'>,</span>
<span class='label'>description:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_description'>description</span><span class='comma'>,</span>
<span class='label'>options:</span> <span class='lbrace'>{</span>
<span class='label'>invalid:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_invalid'>invalid</span><span class='comma'>,</span>
<span class='label'>missing:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_missing'>missing</span>
<span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host_detail'>host_detail</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_clients-instance_method">
#<strong>rpc_clients</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns browser clients information.</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'>&#39;</span><span class='tstring_content'>db.clients</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters that narrow down the search.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:ua_name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>User-Agent name.</p>
</div>
</li>
<li>
<span class="name">:ua_ver</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Browser version.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Addresses.</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>A hash that contains the following:</p>
<ul><li>
<p>'clients' [Array&lt;Hash&gt;] Each hash in the array that contains the following:</p>
</li><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'ua_string' [String] User-agent string.</p>
</li><li>
<p>'ua_name' [String] Browser name.</p>
</li><li>
<p>'ua_ver' [String] Browser version.</p>
</li><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1782</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_clients'>rpc_clients</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hosts.address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:clients</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_clients'>clients</span><span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:host</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_c'>c</span><span class='op'>|</span>
<span class='id identifier rubyid_client'>client</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>if</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_string</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_string'>ua_string</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_name'>ua_name</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_ver'>ua_ver</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:clients</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_client'>client</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_connect-instance_method">
#<strong>rpc_connect</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Connects to the database.</p>
<p>This must contain :driver and driver specific 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'>&#39;</span><span class='tstring_content'>db.connect</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:driver</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgresql</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_db_host'>db_host</span><span class='comma'>,</span> <span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_db_port'>db_port</span><span class='comma'>,</span> <span class='symbol'>:database</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_db_name'>db_name</span><span class='comma'>,</span> <span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_db_username'>db_username</span><span class='comma'>,</span> <span class='symbol'>:password</span><span class='op'>=&gt;</span> <span class='id identifier rubyid_db_password'>db_password</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:driver</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Driver name. For example: 'postgresql'.</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>A hash that indicates whether the action was successful or not.</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1914</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_connect'>rpc_connect</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='kw'>not</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span>
<span class='kw'>if</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_drivers'>drivers</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span><span class='rparen'>)</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_driver'>driver</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span>
<span class='kw'>case</span> <span class='id identifier rubyid_driver'>driver</span>
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgresql</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>adapter</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'>postgresql</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>not</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_connect'>connect</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_create_cracked_credential-instance_method">
#<strong>rpc_create_cracked_credential</strong>(xopts) &#x21d2; <tt>Metasploit::Credential::Core</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Creates a cracked credential.</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_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>username:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span>
<span class='label'>password:</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span>
<span class='label'>core_id:</span> <span class='id identifier rubyid_core_id'>core_id</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'>&#39;</span><span class='tstring_content'>db.create_cracked_credential</span><span class='tstring_end'>&#39;</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'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Credential options. (See #create_credential Documentation)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Metasploit::Credential::Core</tt>)</span>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://github.com/rapid7/metasploit-credential/blob/master/lib/metasploit/credential/creation.rb#L107" target="_parent" title="#create_credential Documentation.">#create_credential Documentation.</a></li>
<li><span class='object_link'><a href="#rpc_create_credential-instance_method" title="Msf::RPC::RPC_Db#rpc_create_credential (method)">#rpc_create_credential</a></span></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
156
157
158
159</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 156</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_create_cracked_credential'>rpc_create_cracked_credential</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_cred_options'>fix_cred_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_create_cracked_credential'>create_cracked_credential</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_create_credential-instance_method">
#<strong>rpc_create_credential</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Creates a credential.</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_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>origin_type:</span> <span class='symbol'>:service</span><span class='comma'>,</span>
<span class='label'>address:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>192.168.1.100</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>port:</span> <span class='int'>445</span><span class='comma'>,</span>
<span class='label'>service_name:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>smb</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>protocol:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>module_fullname:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>auxiliary/scanner/smb/smb_login</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>workspace_id:</span> <span class='id identifier rubyid_myworkspace_id'>myworkspace_id</span><span class='comma'>,</span>
<span class='label'>private_data:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>password1</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>private_type:</span> <span class='symbol'>:password</span><span class='comma'>,</span>
<span class='label'>username:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Administrator</span><span class='tstring_end'>&#39;</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'>&#39;</span><span class='tstring_content'>db.create_cracked_credential</span><span class='tstring_end'>&#39;</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'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Credential options. (See #create_credential Documentation)</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>Credential data. It contains the following keys:</p>
<ul><li>
<p>'username' [String] Username saved.</p>
</li><li>
<p>'private' [String] Password saved.</p>
</li><li>
<p>'private_type' [String] Password type.</p>
</li><li>
<p>'realm_value' [String] Realm.</p>
</li><li>
<p>'realm_key' [String] Realm key.</p>
</li><li>
<p>'host' [String] Host (Only available if there's a :last_attempted_at and :status)</p>
</li><li>
<p>'sname' [String] Service name (only available if there's a :last_attempted_at and :status)</p>
</li><li>
<p>'status' [Status] Login status (only available if there's a :last_attempted_at and :status)</p>
</li></ul>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://github.com/rapid7/metasploit-credential/blob/master/lib/metasploit/credential/creation.rb#L107" target="_parent" title="#create_credential Documentation.">#create_credential Documentation.</a></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 189</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_create_credential'>rpc_create_credential</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_cred_options'>fix_cred_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_core'>core</span> <span class='op'>=</span> <span class='id identifier rubyid_create_credential'>create_credential</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>username:</span> <span class='id identifier rubyid_core'>core</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:username</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='label'>private:</span> <span class='id identifier rubyid_core'>core</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:data</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='label'>private_type:</span> <span class='id identifier rubyid_core'>core</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:type</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='label'>realm_value:</span> <span class='id identifier rubyid_core'>core</span><span class='period'>.</span><span class='id identifier rubyid_realm'>realm</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='label'>realm_key:</span> <span class='id identifier rubyid_core'>core</span><span class='period'>.</span><span class='id identifier rubyid_realm'>realm</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:key</span><span class='rparen'>)</span>
<span class='rbrace'>}</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:last_attempted_at</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:core</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_core'>core</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:last_attempted_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:last_attempted_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_datetime'>to_datetime</span>
<span class='id identifier rubyid_login'>login</span> <span class='op'>=</span> <span class='id identifier rubyid_create_credential_login'>create_credential_login</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='comma'>,</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:sname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_creds-instance_method">
#<strong>rpc_creds</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns login credentials from a specific workspace.</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'>&#39;</span><span class='tstring_content'>db.creds</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</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>Credentials with the following hash key:</p>
<ul><li>
<p>'creds' [Array&lt;Hash&gt;] An array of credentials. Each hash in the array will have the following:</p>
<ul><li>
<p>'user' [String] Username.</p>
</li><li>
<p>'pass' [String] Password.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'type' [String] Password type.</p>
</li><li>
<p>'host' [String] Host.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'sname' [String] Service name.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
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
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 257</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_creds'>rpc_creds</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:creds</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'>Credential</span><span class='op'>::</span><span class='const'>Core</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span>
<span class='label'>workspace_id:</span> <span class='id identifier rubyid_wspace'>wspace</span>
<span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</span><span class='rparen'>)</span>
<span class='id identifier rubyid_query'>query</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_cred'>cred</span><span class='op'>|</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='int'>0</span>
<span class='id identifier rubyid_proto'>proto</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>unless</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_logins'>logins</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_login'>login</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_logins'>logins</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>if</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_proto'>proto</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_pass'>pass</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_pass'>pass</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</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_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:creds</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span>
<span class='symbol'>:user</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
<span class='symbol'>:pass</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_pass'>pass</span><span class='comma'>,</span>
<span class='symbol'>:updated_at</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_updated_at'>updated_at</span><span class='comma'>,</span>
<span class='symbol'>:type</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
<span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_host'>host</span><span class='comma'>,</span>
<span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_port'>port</span><span class='comma'>,</span>
<span class='symbol'>:proto</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_proto'>proto</span><span class='comma'>,</span>
<span class='symbol'>:sname</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_sname'>sname</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_current_workspace-instance_method">
#<strong>rpc_current_workspace</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the current workspace.</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'>&#39;</span><span class='tstring_content'>db.current_workspace</span><span class='tstring_end'>&#39;</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>
&mdash;
<div class='inline'>
<p>A hash with the following keys:</p>
<ul><li>
<p>'workspace' [String] Workspace name.</p>
</li><li>
<p>'workspace_id' [Integer] Workspace ID.</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>
&mdash;
<div class='inline'>
<p>Database not loaded. Try: rpc.call('console.create')</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
589
590
591
592</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 589</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_current_workspace'>rpc_current_workspace</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>workspace</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>workspace_id</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_client-instance_method">
#<strong>rpc_del_client</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes browser information from a client.</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'>&#39;</span><span class='tstring_content'>db.del_client</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters that narrow down what to delete.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</p>
</div>
</li>
<li>
<span class="name">:ua_name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Browser name.</p>
</div>
</li>
<li>
<span class="name">:ua_ver</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Browser version.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</p>
</li><li>
<p>'deleted' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'address' [String] Host address.</p>
</li><li>
<p>'ua_string' [String] User-Agent string.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1831</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_client'>rpc_del_client</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_clients'>clients</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts_to_hosts'>opts_to_hosts</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_hosts'>hosts</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_h'>h</span><span class='op'>|</span>
<span class='id identifier rubyid_cret'>cret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_cret'>cret</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_clients'>clients</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_cret'>cret</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_clients'>clients</span>
<span class='kw'>end</span>
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_cret'>cret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_clients'>clients</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_cret'>cret</span> <span class='kw'>if</span> <span class='id identifier rubyid_cret'>cret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Client</span>
<span class='id identifier rubyid_clients'>clients</span> <span class='op'>|=</span> <span class='id identifier rubyid_cret'>cret</span> <span class='kw'>if</span> <span class='id identifier rubyid_cret'>cret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_clients'>clients</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_c'>c</span><span class='op'>|</span>
<span class='id identifier rubyid_dent'>dent</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:ua_string</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_string'>ua_string</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_dent'>dent</span>
<span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_creds-instance_method">
#<strong>rpc_del_creds</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Delete credentials from a specific workspace.</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'>&#39;</span><span class='tstring_content'>db.del_creds</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</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>Credentials with the following hash key:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</p>
</li><li>
<p>'deleted' [Array&lt;Hash&gt;] An array of credentials. Each hash in the array will have the following:</p>
<ul><li>
<p>'user' [String] Username.</p>
</li><li>
<p>'pass' [String] Password.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'type' [String] Password type.</p>
</li><li>
<p>'host' [String] Host.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'sname' [String] Service name.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 330</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_creds'>rpc_del_creds</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:creds</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'>Credential</span><span class='op'>::</span><span class='const'>Core</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span>
<span class='label'>workspace_id:</span> <span class='id identifier rubyid_wspace'>wspace</span>
<span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</span><span class='rparen'>)</span>
<span class='id identifier rubyid_query'>query</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_cred'>cred</span><span class='op'>|</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='int'>0</span>
<span class='id identifier rubyid_proto'>proto</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>unless</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_logins'>logins</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_login'>login</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_logins'>logins</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>if</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_proto'>proto</span> <span class='op'>=</span> <span class='id identifier rubyid_login'>login</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:creds</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span>
<span class='symbol'>:user</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
<span class='symbol'>:pass</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
<span class='symbol'>:updated_at</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='comma'>,</span>
<span class='symbol'>:type</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
<span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_host'>host</span><span class='comma'>,</span>
<span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_port'>port</span><span class='comma'>,</span>
<span class='symbol'>:proto</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_proto'>proto</span><span class='comma'>,</span>
<span class='symbol'>:sname</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_sname'>sname</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_ret'>ret</span>
<span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_host-instance_method">
#<strong>rpc_del_host</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes hosts.</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'>&#39;</span><span class='tstring_content'>db.del_host</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters to narrow down which hosts to delete.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host addresses.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</p>
</li><li>
<p>'deleted' [Array&lt;String&gt;] All the deleted hosts.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1418</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_host'>rpc_del_host</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hent'>hent</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_find_by_address'>find_by_address</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span> <span class='op'>==</span> <span class='kw'>nil</span> <span class='kw'>or</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>!=</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Host</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_hent'>hent</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>!=</span> <span class='const'>Array</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:address</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_hent'>hent</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>|=</span> <span class='id identifier rubyid_hent'>hent</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_hent'>hent</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Host</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hosts'>hosts</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_h'>h</span><span class='op'>|</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_note-instance_method">
#<strong>rpc_del_note</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes notes.</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'>&#39;</span><span class='tstring_content'>db.del_note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='comma'>,</span> <span class='symbol'>:port</span><span class='op'>=&gt;</span><span class='int'>443</span><span class='comma'>,</span> <span class='symbol'>:proto</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters to narrow down which notes to delete.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:ntype</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Note type.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</p>
</li><li>
<p>'deleted' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'address' [String] Host address.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'ntype' [String] Note type.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1305</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_note'>rpc_del_note</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_notes'>notes</span> <span class='op'>=</span> <span class='id identifier rubyid_get_notes'>get_notes</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_notes'>notes</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_n'>n</span><span class='op'>|</span>
<span class='id identifier rubyid_dent'>dent</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_ntype'>ntype</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_dent'>dent</span>
<span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_service-instance_method">
#<strong>rpc_del_service</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes services.</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'>&#39;</span><span class='tstring_content'>db.del_service</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters to narrow down which services to delete.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host addresses.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success' or 'failed'.</p>
</li><li>
<p>'deleted' [Array&lt;Hash&gt;] If result says success, then you will get this key. Each hash in the array contains:</p>
<ul><li>
<p>'address' [String] Host address.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1345</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_service'>rpc_del_service</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hent'>hent</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_find_by_address'>find_by_address</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span> <span class='op'>==</span> <span class='kw'>nil</span> <span class='kw'>or</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>!=</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Host</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_hent'>hent</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>!=</span> <span class='const'>Array</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:address</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_hent'>hent</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>|=</span> <span class='id identifier rubyid_hent'>hent</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_hent'>hent</span> <span class='kw'>if</span> <span class='id identifier rubyid_hent'>hent</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Host</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hosts'>hosts</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_h'>h</span><span class='op'>|</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span>
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Service</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>|=</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>|=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>and</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Service</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>|=</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>and</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</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_s'>s</span><span class='op'>|</span>
<span class='id identifier rubyid_dent'>dent</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_dent'>dent</span>
<span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_vuln-instance_method">
#<strong>rpc_del_vuln</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes vulnerabilities.</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'>&#39;</span><span class='tstring_content'>db.del_vuln</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='comma'>,</span> <span class='symbol'>:port</span><span class='op'>=&gt;</span><span class='int'>445</span><span class='comma'>,</span> <span class='symbol'>:proto</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters that narrow down which vulnerabilities to delete. See below:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the vulnerability.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</p>
</li><li>
<p>'deleted' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'address' [String] Host address.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'name' [String] Vulnerability name.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1211</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_vuln'>rpc_del_vuln</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hosts'>hosts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts_to_hosts'>opts_to_hosts</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='id identifier rubyid_opts_to_services'>opts_to_services</span><span class='lparen'>(</span><span class='id identifier rubyid_hosts'>hosts</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_services'>services</span> <span class='op'>=</span> <span class='id identifier rubyid_opts_to_services'>opts_to_services</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</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>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</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_s'>s</span><span class='op'>|</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_find_by_name'>find_by_name</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Vuln</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>|=</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>end</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_hosts'>hosts</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_h'>h</span><span class='op'>|</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_find_by_name'>find_by_name</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Vuln</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>|=</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>end</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_find_by_name'>find_by_name</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vret'>vret</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Vuln</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>|=</span> <span class='id identifier rubyid_vret'>vret</span> <span class='kw'>if</span> <span class='id identifier rubyid_vret'>vret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_vulns'>vulns</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_v'>v</span><span class='op'>|</span>
<span class='id identifier rubyid_dent'>dent</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span> <span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span> <span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_dent'>dent</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_deleted'>deleted</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_dent'>dent</span>
<span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:deleted</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_deleted'>deleted</span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_del_workspace-instance_method">
#<strong>rpc_del_workspace</strong>(wspace) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Deletes a workspace.</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'>&#39;</span><span class='tstring_content'>db.del_workspace</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>temp_workspace</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>wspace</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Workspace 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>A hash indicating the action was successful. It contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>404 Workspace not found.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 663</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_del_workspace'>rpc_del_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='comment'># Delete workspace
</span> <span class='id identifier rubyid_workspace'>workspace</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</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'>&quot;</span><span class='tstring_content'>Workspace not found: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_wspace'>wspace</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_default?'>default?</span>
<span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='id identifier rubyid_workspace'>workspace</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_add_workspace'>add_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='comment'># switch to the default workspace if we&#39;re about to delete the current one
</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_default_workspace'>default_workspace</span> <span class='kw'>if</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='comment'># now destroy the named workspace
</span> <span class='id identifier rubyid_workspace'>workspace</span><span class='period'>.</span><span class='id identifier rubyid_destroy'>destroy</span>
<span class='kw'>end</span>
<span class='lbrace'>{</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='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>success</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_disconnect-instance_method">
#<strong>rpc_disconnect</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Disconnects the database.</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'>&#39;</span><span class='tstring_content'>db.disconnect</span><span class='tstring_end'>&#39;</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>
&mdash;
<div class='inline'>
<p>A hash that indicates whether the action was successful or not. It contains:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1983
1984
1985
1986
1987
1988
1989
1990</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1983</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_disconnect'>rpc_disconnect</span>
<span class='kw'>if</span> <span class='lparen'>(</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_db'>db</span><span class='rparen'>)</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_disconnect'>disconnect</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</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_driver-instance_method">
#<strong>rpc_driver</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sets the driver for the database or returns the current one.</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'># Sets a driver
</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'>&#39;</span><span class='tstring_content'>db.driver</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:driver</span><span class='op'>=&gt;</span><span class='id identifier rubyid_new_driver'>new_driver</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='comment'># Returns the current driver
</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'>&#39;</span><span class='tstring_content'>db.driver</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
<li>
<span class='name'>[String]</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>a customizable set of 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>A hash that contains:</p>
<ul><li>
<p>'result' [String] Indicating whether we've successfully set the driver or not.</p>
</li><li>
<p>'driver' [String] If the :driver option isn't set, then this returns the current one.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1888</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_driver'>rpc_driver</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span>
<span class='kw'>if</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_drivers'>drivers</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span><span class='rparen'>)</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:driver</span><span class='rbracket'>]</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:driver</span> <span class='op'>=&gt;</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_events-instance_method">
#<strong>rpc_events</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns framework events.</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'>&#39;</span><span class='tstring_content'>db.events</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:limit</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Limit.</p>
</div>
</li>
<li>
<span class="name">:offset</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Offset.</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>A hash that contains the following:</p>
<ul><li>
<p>'events' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'name' [String] Event name.</p>
</li><li>
<p>'critical' [Boolean] Criticality.</p>
</li><li>
<p>'username' [String] Username.</p>
</li><li>
<p>'info' [String] Additional information.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1498</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_events'>rpc_events</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:events</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_events'>events</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_e'>e</span><span class='op'>|</span>
<span class='id identifier rubyid_event'>event</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='kw'>if</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:critical</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_critical'>critical</span> <span class='kw'>if</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_critical'>critical</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:username</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span> <span class='kw'>if</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span>
<span class='id identifier rubyid_event'>event</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:events</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_event'>event</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_client-instance_method">
#<strong>rpc_get_client</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about a client connection.</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'>&#39;</span><span class='tstring_content'>db.get_client</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:ua_string</span><span class='op'>=&gt;</span><span class='id identifier rubyid_user_agent'>user_agent</span><span class='comma'>,</span> <span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:ua_string</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>User agent string.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host IP.</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>A hash that contains the client connection:</p>
<ul><li>
<p>'client' [Array&lt;Hash&gt;] Each hash of the array contains the following:</p>
<ul><li>
<p>'host' [String] Host IP.</p>
</li><li>
<p>'created_at' [Integer] Created date.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'ua_string' [String] User-Agent string.</p>
</li><li>
<p>'ua_name' [String] User-Agent name.</p>
</li><li>
<p>'ua_ver' [String] User-Agent version.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1024</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_client'>rpc_get_client</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:client</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_c'>c</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_client'>get_client</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_c'>c</span>
<span class='id identifier rubyid_client'>client</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_string</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_string'>ua_string</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_name'>ua_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_client'>client</span><span class='lbracket'>[</span><span class='symbol'>:ua_ver</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_ua_ver'>ua_ver</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:client</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_client'>client</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_host-instance_method">
#<strong>rpc_get_host</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about a host.</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'>&#39;</span><span class='tstring_content'>db.get_host</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options (:addr, :address, :host are the same thing, and you only need one):</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:addr</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :addr.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</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>A hash that contains the following:</p>
<ul><li>
<p>'host' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'created_at' [Integer] Last created at.</p>
</li><li>
<p>'address' [String] Address.</p>
</li><li>
<p>'mac' [String] Mac address.</p>
</li><li>
<p>'name' [String] Host name.</p>
</li><li>
<p>'state' [String] Host state.</p>
</li><li>
<p>'os_name' [String] OS name.</p>
</li><li>
<p>'os_flavor' [String] OS flavor.</p>
</li><li>
<p>'os_sp' [String] OS service pack.</p>
</li><li>
<p>'os_lang' [String] OS language.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'purpose' [String] Purpose. Example: 'server'.</p>
</li><li>
<p>'info' [String] Additional information.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 732</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_host'>rpc_get_host</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_h'>h</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_host'>get_host</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_h'>h</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:mac</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_mac'>mac</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_state'>state</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_name'>os_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_flavor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_flavor'>os_flavor</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_sp</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_sp'>os_sp</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_lang</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_lang'>os_lang</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:purpose</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_purpose'>purpose</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_host'>host</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_note-instance_method">
#<strong>rpc_get_note</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a note.</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'>&#39;</span><span class='tstring_content'>db.get_note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:proto</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='int'>80</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:addr</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :addr.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :address.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</p>
</div>
</li>
<li>
<span class="name">:ntype</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Note type.</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>A hash that contains the following:</p>
<ul><li>
<p>'note' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'host' [String] Host.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'created_at' [Integer] Last created at.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'ntype' [String] Note type.</p>
</li><li>
<p>'data' [String] Note data.</p>
</li><li>
<p>'critical' [String] A boolean indicating criticality.</p>
</li><li>
<p>'seen' [String] A boolean indicating whether the note has been seen before.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 978</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_note'>rpc_get_note</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:note</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_notes'>notes</span> <span class='op'>=</span> <span class='id identifier rubyid_get_notes'>get_notes</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_notes'>notes</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_n'>n</span><span class='op'>|</span>
<span class='id identifier rubyid_note'>note</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unknown</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:critical</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:critical</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:seen</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='lbracket'>[</span><span class='symbol'>:seen</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:note</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_note'>note</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_ref-instance_method">
#<strong>rpc_get_ref</strong>(name) &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns an external vulnerability reference.</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'>&#39;</span><span class='tstring_content'>db.get_ref</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_ref_name'>ref_name</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>name</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Reference name.</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>Reference.</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt><span class='object_link'><a href="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1180
1181
1182
1183
1184
1185</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1180</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_ref'>rpc_get_ref</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_ref'>get_ref</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</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_get_service-instance_method">
#<strong>rpc_get_service</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about a service.</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'>&#39;</span><span class='tstring_content'>db.get_service</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:proto</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:port</span><span class='op'>=&gt;</span><span class='int'>443</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters for the search, see below:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</p>
</div>
</li>
<li>
<span class="name">:names</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Service names.</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>A hash that contains the following key:</p>
<ul><li>
<p>'service' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'state' [String] Service state.</p>
</li><li>
<p>'name' [String] Service name.</p>
</li><li>
<p>'info' [String] Additional information.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 905</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_service'>rpc_get_service</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_host'>host</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_host'>get_host</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>if</span> <span class='id identifier rubyid_host'>host</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_find_by_proto_and_port'>find_by_proto_and_port</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</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="../ServiceState.html" title="Msf::ServiceState (module)">ServiceState</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../ServiceState.html#Open-constant" title="Msf::ServiceState::Open (constant)">Open</a></span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:up</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_order'>order</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hosts.address, port</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='lparen'>(</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Service</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>|=</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='id identifier rubyid_services'>services</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_s'>s</span><span class='op'>|</span>
<span class='id identifier rubyid_service'>service</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unknown</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_service'>service</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_vuln-instance_method">
#<strong>rpc_get_vuln</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns vulnerabilities from services or from a host.</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'>&#39;</span><span class='tstring_content'>db.get_vuln</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ip'>ip</span><span class='comma'>,</span> <span class='symbol'>:proto</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters to narrow down which vulnerabilities to find.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Same as :host.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port.</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>A hash that contains the following:</p>
<ul><li>
<p>'vuln' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'name' [String] Vulnerability name.</p>
</li><li>
<p>'info' [String] Additional information.</p>
</li><li>
<p>'refs' [Array&lt;String&gt;] Reference names.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1710</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_vuln'>rpc_get_vuln</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:vuln</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_host'>host</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_get_host'>get_host</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_sret'>sret</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_find_by_proto_and_port'>find_by_proto_and_port</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span> <span class='op'>==</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='op'>::</span><span class='const'>Mdm</span><span class='op'>::</span><span class='const'>Service</span>
<span class='id identifier rubyid_services'>services</span> <span class='op'>|=</span> <span class='id identifier rubyid_sret'>sret</span> <span class='kw'>if</span> <span class='id identifier rubyid_sret'>sret</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
<span class='id identifier rubyid_services'>services</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_s'>s</span><span class='op'>|</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>|=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span>
<span class='kw'>end</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vulns'>vulns</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>not</span> <span class='id identifier rubyid_vulns'>vulns</span><span class='rparen'>)</span>
<span class='id identifier rubyid_vulns'>vulns</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_v'>v</span><span class='op'>|</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span><span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unknown</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:refs</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_refs'>refs</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_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:refs</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:vuln</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_vuln'>vuln</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_get_workspace-instance_method">
#<strong>rpc_get_workspace</strong>(wspace) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the current workspace.</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'>&#39;</span><span class='tstring_content'>db.get_workspace</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>wspace</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>workspace 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>A hash with the following key:</p>
<ul><li>
<p>'workspace' [Array&lt;Hash&gt;] In each hash of the array, you will get these keys:</p>
<ul><li>
<p>'name' [String] Workspace name.</p>
</li><li>
<p>'id' [Integer] Workspace ID.</p>
</li><li>
<p>'created_at' [Integer] Last created at.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li></ul>
</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>
&mdash;
<div class='inline'>
<p>You might get one of the following errors:</p>
<ul><li>
<p>500 Database not loaded.</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 609</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_get_workspace'>rpc_get_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_wspace'>wspace</span>
<span class='id identifier rubyid_w'>w</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_w'>w</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_w'>w</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
<span class='id identifier rubyid_w'>w</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_w'>w</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_w'>w</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_hosts-instance_method">
#<strong>rpc_hosts</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about hosts.</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'>&#39;</span><span class='tstring_content'>db.hosts</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:addresses</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host addresses</p>
</div>
</li>
<li>
<span class="name">:only_up</span>
<span class="type">(<tt>Boolean</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>If true, return hosts that are up.</p>
</div>
</li>
<li>
<span class="name">:limit</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Maximum number of hosts to return.</p>
</div>
</li>
<li>
<span class="name">:offset</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>return the hosts starting at index 'offset`.</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>Host information that starts with the following hash key:</p>
<ul><li>
<p>'hosts' [Array&lt;Hash&gt;] An array of hosts. Each hash in the array will have the following:</p>
<ul><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'address' [String] IP address.</p>
</li><li>
<p>'mac' [String] MAC address.</p>
</li><li>
<p>'name' [String] Computer name.</p>
</li><li>
<p>'state' [String] Host's state.</p>
</li><li>
<p>'os_name' [String] Name of the operating system.</p>
</li><li>
<p>'os_flavor' [String] OS flavor.</p>
</li><li>
<p>'os_sp' [String] Service pack.</p>
</li><li>
<p>'os_lang' [String] OS language.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'purpose' [String] Host purpose (example: server)</p>
</li><li>
<p>'info' [String] Additional information about the host.</p>
</li><li>
<p>'comments' [String] The host's comments.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 399</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_hosts'>rpc_hosts</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</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="../HostState.html" title="Msf::HostState (module)">HostState</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../HostState.html#Alive-constant" title="Msf::HostState::Alive (constant)">Alive</a></span></span><span class='comma'>,</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="../HostState.html" title="Msf::HostState (module)">HostState</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../HostState.html#Unknown-constant" title="Msf::HostState::Unknown (constant)">Unknown</a></span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:only_up</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:hosts</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_order'>order</span><span class='lparen'>(</span><span class='symbol'>:address</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_h'>h</span><span class='op'>|</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:mac</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_mac'>mac</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_state'>state</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_name'>os_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_flavor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_flavor'>os_flavor</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_sp</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_sp'>os_sp</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:os_lang</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_os_lang'>os_lang</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:purpose</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_purpose'>purpose</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_host'>host</span><span class='lbracket'>[</span><span class='symbol'>:comments</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_comments'>comments</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:hosts</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_host'>host</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_import_data-instance_method">
#<strong>rpc_import_data</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Imports file to the database.</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'>&#39;</span><span class='tstring_content'>db.import_data</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>data</span><span class='tstring_end'>&#39;</span></span><span class='op'>=&gt;</span><span class='id identifier rubyid_nexpose_scan_results'>nexpose_scan_results</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>A hash that contains:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">'data'</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Data to import. The method will automatically detect the file type:</p>
<ul><li>
<p>:acunetix_xml</p>
</li><li>
<p>:amap_log</p>
</li><li>
<p>:amap_mlog</p>
</li><li>
<p>:appscan_xml</p>
</li><li>
<p>:burp_session_xml</p>
</li><li>
<p>:ci_xml</p>
</li><li>
<p>:foundstone_xml</p>
</li><li>
<p>:fusionvm_xml</p>
</li><li>
<p>:gpp_xml</p>
</li><li>
<p>:ip360_aspl_xml</p>
</li><li>
<p>:ip360_xml_v3</p>
</li><li>
<p>:ip_list</p>
</li><li>
<p>:libpcap</p>
</li><li>
<p>:mbsa_xml</p>
</li><li>
<p>:msf_cred_dump_zip</p>
</li><li>
<p>:msf_pwdump</p>
</li><li>
<p>:msf_xml</p>
</li><li>
<p>:msf_zip</p>
</li><li>
<p>:nessus_nbe</p>
</li><li>
<p>:nessus_xml</p>
</li><li>
<p>:nessus_xml_v2</p>
</li><li>
<p>:netsparker_xml</p>
</li><li>
<p>:nexpose_rawxml</p>
</li><li>
<p>:nexpose_simplexml</p>
</li><li>
<p>:nikto_xml</p>
</li><li>
<p>:nmap_xml</p>
</li><li>
<p>:openvas_new_xml</p>
</li><li>
<p>:openvas_xml</p>
</li><li>
<p>:outpost24_xml</p>
</li><li>
<p>:qualys_asset_xml</p>
</li><li>
<p>:qualys_scan_xml</p>
</li><li>
<p>:retina_xml</p>
</li><li>
<p>:spiceworks_csv</p>
</li><li>
<p>:wapiti_xml</p>
</li></ul>
</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>A hash that indicates the action was successful. It contains the following:</p>
<ul><li>
<p>'result' &lt;String&gt; A message that says 'success'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1677
1678
1679
1680
1681
1682
1683</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1677</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_import_data'>rpc_import_data</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_import'>import</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_invalidate_login-instance_method">
#<strong>rpc_invalidate_login</strong>(xopts) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Sets the status of a login credential to a failure.</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_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>address:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>192.168.1.100</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>port:</span> <span class='int'>445</span><span class='comma'>,</span>
<span class='label'>protocol:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>public:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>admin</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>private:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>password1</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
<span class='label'>status:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Incorrect</span><span class='tstring_end'>&#39;</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'>&#39;</span><span class='tstring_content'>db.invalidate_login</span><span class='tstring_end'>&#39;</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'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Credential data (See #invalidate_login Documentation)</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>
&mdash;
<div class='inline'>
<p>If there's an option missing.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://github.com/rapid7/metasploit-credential/blob/master/lib/metasploit/credential/creation.rb#L492" target="_parent" title="#invalidate_login Documentation">#invalidate_login Documentation</a></li>
<li><a href="https://github.com/rapid7/metasploit-model/blob/master/lib/metasploit/model/login/status.rb" target="_parent" title="Status symbols.">Status symbols.</a></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
231
232
233
234</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 231</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_invalidate_login'>rpc_invalidate_login</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_cred_options'>fix_cred_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_invalidate_login'>invalidate_login</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_loots-instance_method">
#<strong>rpc_loots</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns all the looted items.</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'>&#39;</span><span class='tstring_content'>db.loots</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters that narrow down the search:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>Hash</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:limit</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Limit.</p>
</div>
</li>
<li>
<span class="name">:offset</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Offset.</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>A hash that contains the following:</p>
<ul><li>
<p>'loots' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'service' [String] Service name or port.</p>
</li><li>
<p>'ltype' [String] Loot type.</p>
</li><li>
<p>'ctype' [String] Content type.</p>
</li><li>
<p>'data' [String] Looted data.</p>
</li><li>
<p>'created_at' [Integer] Creation date.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'name' [String] Name.</p>
</li><li>
<p>'info' [String] Additional information.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1604</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_loots'>rpc_loots</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:loots</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_loots'>loots</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_l'>l</span><span class='op'>|</span>
<span class='id identifier rubyid_loot'>loot</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='kw'>if</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>||</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span> <span class='kw'>if</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:ltype</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_ltype'>ltype</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:ctype</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_content_type'>content_type</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_loot'>loot</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:loots</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_loot'>loot</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_notes-instance_method">
#<strong>rpc_notes</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns notes from the database.</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 you all the notes.
</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'>&#39;</span><span class='tstring_content'>db.notes</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Filters for the search. See below:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:ntype</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Note type.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:ports</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port change.</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>A hash that contains the following:</p>
<ul><li>
<p>'notes' [Array&lt;Hash&gt;] Each hash in the array contains the following:</p>
<ul><li>
<p>'time' [Integer] Creation date.</p>
</li><li>
<p>'host' [String] Host address.</p>
</li><li>
<p>'service' [String] Service name or port.</p>
</li><li>
<p>'type' [String] Host type.</p>
</li><li>
<p>'data' [String] Host data.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1140</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_notes'>rpc_notes</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hosts.address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ntype</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>services.port</span><span class='tstring_end'>&quot;</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'>Socket</span><span class='period'>.</span><span class='id identifier rubyid_portspec_to_portlist'>portspec_to_portlist</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>services.proto</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:notes</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_notes'>notes</span><span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:host</span><span class='comma'>,</span> <span class='symbol'>:service</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_n'>n</span><span class='op'>|</span>
<span class='id identifier rubyid_note'>note</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:time</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>||</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:type</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_ntype'>ntype</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_note'>note</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:notes</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_note'>note</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_client-instance_method">
#<strong>rpc_report_client</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a client connection.</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'>&#39;</span><span class='tstring_content'>db.report_client</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:workspace</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:ua_string</span><span class='op'>=&gt;</span><span class='id identifier rubyid_user_agent'>user_agent</span><span class='comma'>,</span> <span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information about the client.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:ua_string</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. User-Agent string.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. Host IP.</p>
</div>
</li>
<li>
<span class="name">:ua_name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>One of the Msf::HttpClients constants. (See Msf::HttpClient Documentation.)</p>
</div>
</li>
<li>
<span class="name">:ua_ver</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Detected version of the given client.</p>
</div>
</li>
<li>
<span class="name">:campaign</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>An id or Campaign object.</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>A hash indicating whether the action was successful or not. It contains:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/constants.rb#L52" target="_parent" title="Msf::HttpClient Documentation.">Msf::HttpClient Documentation.</a></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1064
1065
1066
1067
1068
1069
1070
1071</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1064</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_client'>rpc_report_client</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_client'>report_client</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_event-instance_method">
#<strong>rpc_report_event</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a framework event.</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'>&#39;</span><span class='tstring_content'>db.report_event</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information about the event.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:username</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Username.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</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>A hash indicating the action was successful. It contains:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1537
1538
1539
1540
1541
1542
1543</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1537</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_event'>rpc_report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_event'>report_event</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_host-instance_method">
#<strong>rpc_report_host</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a new host to the database.</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'>&#39;</span><span class='tstring_content'>db.report_host</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ip'>ip</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information to report about the host. See below:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>IP address. You must supply this.</p>
</div>
</li>
<li>
<span class="name">:state</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>One of the Msf::HostState constants. (See Most::HostState Documentation)</p>
</div>
</li>
<li>
<span class="name">:os_name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Something like "Windows", "Linux", or "Mac OS X".</p>
</div>
</li>
<li>
<span class="name">:os_flavor</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Something like "Enterprise", "Pro", or "Home".</p>
</div>
</li>
<li>
<span class="name">:os_sp</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Something like "SP2".</p>
</div>
</li>
<li>
<span class="name">:os_lang</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Something like "English", "French", or "en-US".</p>
</div>
</li>
<li>
<span class="name">:arch</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>one of the ARCH_* constants. (see ARCH Documentation)</p>
</div>
</li>
<li>
<span class="name">:mac</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Mac address.</p>
</div>
</li>
<li>
<span class="name">:scope</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Interface identifier for link-local IPv6.</p>
</div>
</li>
<li>
<span class="name">:virtual_host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>The name of the VM host software, eg "VMWare", "QEMU", "Xen", 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>A hash indicating whether the action was successful or not. It contains the following:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><a href="https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/host_state.rb" target="_parent" title="Most::HostState Documentation.">Most::HostState Documentation.</a></li>
<li><a href="https://github.com/rapid7/metasploit-framework/blob/master/lib/rex/constants.rb#L66" target="_parent" title="ARCH Documentation.">ARCH Documentation.</a></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
845
846
847
848
849
850
851
852
853</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 845</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_host'>rpc_report_host</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_host'>report_host</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_loot-instance_method">
#<strong>rpc_report_loot</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a looted item.</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'>&#39;</span><span class='tstring_content'>db.report_loot</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information about the looted item.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port. Should match :service.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol. Should match :service.</p>
</div>
</li>
<li>
<span class="name">:path</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. Path where the item was looted.</p>
</div>
</li>
<li>
<span class="name">:type</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Loot type.</p>
</div>
</li>
<li>
<span class="name">:ctype</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Content type.</p>
</div>
</li>
<li>
<span class="name">:name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name.</p>
</div>
</li>
<li>
<span class="name">:info</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Additional information.</p>
</div>
</li>
<li>
<span class="name">:data</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Looted data.</p>
</div>
</li>
<li>
<span class="name">:service</span>
<span class="type">(<tt>Mdm::Service</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Service where the data was found.</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>A hash that contains the following:</p>
<ul><li>
<p>'result' [String] A message that says 'success'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1568</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_loot'>rpc_report_loot</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_find_or_create_service'>find_or_create_service</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_loot'>report_loot</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_note-instance_method">
#<strong>rpc_report_note</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a note.</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'>&#39;</span><span class='tstring_content'>db.report_note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:type</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>http_data</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>192.168.1.123</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:data</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>data</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information about the note.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:type</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. The type of note, e.g. smb_peer_os.</p>
</div>
</li>
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>The workspace to associate with this note.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>An IP address or a Host object to associate with this note.</p>
</div>
</li>
<li>
<span class="name">:service</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>A Service object to associate with this note.</p>
</div>
</li>
<li>
<span class="name">:data</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Whatever it is you're making a note of.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Along with <code>:host</code> and <code>:proto</code>, a service to associate with this note.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Along with <code>:host</code> and <code>:port</code>, a service to associate with this note.</p>
</div>
</li>
<li>
<span class="name">A</span>
<span class="type">(<tt>Hash</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>hash that contains the following information.</p>
<ul><li>
<p>:unique [Boolean] Allow only a single Note per <code>:host</code>/<code>:type</code> pair.</p>
</li><li>
<p>:unique_data [Boolean] Like <code>:unique</code>, but also compare <code>:data</code>.</p>
</li><li>
<p>:insert [Boolean] Always insert a new Note even if one with identical values exists.</p>
</li></ul>
</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>A hash indicating whether the action was successful or not. It contains:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1096</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_note'>rpc_report_note</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='kw'>and</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_addr'>addr</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_hosts'>hosts</span><span class='period'>.</span><span class='id identifier rubyid_find_by_address'>find_by_address</span><span class='lparen'>(</span><span class='id identifier rubyid_addr'>addr</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_host'>host</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='op'>&gt;</span> <span class='int'>0</span>
<span class='id identifier rubyid_service'>service</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_find_by_proto_and_port'>find_by_proto_and_port</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:service</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_service'>service</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_note'>report_note</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_service-instance_method">
#<strong>rpc_report_service</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a service to the database.</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'>&#39;</span><span class='tstring_content'>db.report_service</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='comma'>,</span> <span class='symbol'>:port</span><span class='op'>=&gt;</span><span class='int'>8181</span><span class='comma'>,</span> <span class='symbol'>:proto</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tcp</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='symbol'>:name</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>http</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information to report about the service. See below:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of the workspace.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. The host where this service is running.</p>
</div>
</li>
<li>
<span class="name">:port</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. The port where this service listens.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Required. The transport layer protocol (e.g. tcp, udp).</p>
</div>
</li>
<li>
<span class="name">:name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>The application layer protocol (e.g. ssh, mssql, smb).</p>
</div>
</li>
<li>
<span class="name">:sname</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>An alias for the above</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>A hash indicating whether the action was successful or not. It contains:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
873
874
875
876
877
878
879
880</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 873</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_service'>rpc_report_service</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_service'>report_service</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_report_vuln-instance_method">
#<strong>rpc_report_vuln</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reports a vulnerability.</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'>&#39;</span><span class='tstring_content'>db.report_vuln</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:host</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip'>ip</span><span class='comma'>,</span> <span class='symbol'>:name</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>file upload</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Information about the vulnerability:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Workspace name.</p>
</div>
</li>
<li>
<span class="name">:host</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>The host where this vulnerability resides</p>
</div>
</li>
<li>
<span class="name">:name</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>The friendly name for this vulnerability (title).</p>
</div>
</li>
<li>
<span class="name">:info</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>A human readable description of the vuln, free-form text.</p>
</div>
</li>
<li>
<span class="name">:refs</span>
<span class="type">(<tt>Array</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>An array of Ref objects or string names of references.</p>
</div>
</li>
<li>
<span class="name">:details</span>
<span class="type">(<tt>Hash</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>A hash with :key pointed to a find criteria hash and the rest containing VulnDetail fields.</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>A hash indicating whether the action was successful or not. It contains:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1465</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_report_vuln'>rpc_report_vuln</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_fix_options'>fix_options</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:workspace</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_res'>res</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_report_vuln'>report_vuln</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>success</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_res'>res</span>
<span class='lbrace'>{</span> <span class='symbol'>:result</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_services-instance_method">
#<strong>rpc_services</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about services.</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'>&#39;</span><span class='tstring_content'>db.services</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of workspace.</p>
</div>
</li>
<li>
<span class="name">:limit</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Limit.</p>
</div>
</li>
<li>
<span class="name">:offset</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Offset.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Host address.</p>
</div>
</li>
<li>
<span class="name">:ports</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port range.</p>
</div>
</li>
<li>
<span class="name">:names</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Names (Use ',' as the separator).</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>A hash with the following keys:</p>
<ul><li>
<p>'services' [Array&lt;Hash&gt;] In each hash of the array, you will get these keys:</p>
<ul><li>
<p>'host' [String] Host.</p>
</li><li>
<p>'created_at' [Integer] Last created at.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'state' [String] Service state.</p>
</li><li>
<p>'name' [String] Service name.</p>
</li><li>
<p>'info' [String] Additional information about the service.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 460</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_services'>rpc_services</span><span class='lparen'>(</span> <span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</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="../ServiceState.html" title="Msf::ServiceState (module)">ServiceState</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../ServiceState.html#Open-constant" title="Msf::ServiceState::Open (constant)">Open</a></span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:only_up</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hosts.address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:addresses</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:port</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'>Socket</span><span class='period'>.</span><span class='id identifier rubyid_portspec_to_portlist'>portspec_to_portlist</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='lparen'>(</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>,</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:services</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_services'>services</span><span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:host</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_s'>s</span><span class='op'>|</span>
<span class='id identifier rubyid_service'>service</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unknown</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:state</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='symbol'>:info</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:services</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_service'>service</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_set_workspace-instance_method">
#<strong>rpc_set_workspace</strong>(wspace) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sets a workspace.</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 set the current workspace to &#39;default&#39;
</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'>&#39;</span><span class='tstring_content'>db.set_workspace</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>wspace</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>Workspace 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>A hash indicating whether the action was successful or not. You will get:</p>
<ul><li>
<p>'result' [String] A message that says either 'success' or 'failed'</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace</p>
</li><li>
<p>404 Workspace not found.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
639
640
641
642
643
644
645
646
647
648
649</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 639</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_set_workspace'>rpc_set_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_db_check'>db_check</span>
<span class='id identifier rubyid_workspace'>workspace</span> <span class='op'>=</span> <span class='id identifier rubyid_find_workspace'>find_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_wspace'>wspace</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_workspace'>workspace</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span> <span class='op'>=</span> <span class='id identifier rubyid_workspace'>workspace</span>
<span class='kw'>return</span> <span class='lbrace'>{</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='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>success</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='lbrace'>{</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='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>failed</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_status-instance_method">
#<strong>rpc_status</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the database status.</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'>&#39;</span><span class='tstring_content'>db.status</span><span class='tstring_end'>&#39;</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>
&mdash;
<div class='inline'>
<p>A hash that contains the following keys:</p>
<ul><li>
<p>'driver' [String] Name of the database driver.</p>
</li><li>
<p>'db' [String] Name of the database.</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 1955</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_status'>rpc_status</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>not</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='lbrace'>{</span><span class='symbol'>:driver</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>None</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_cdb'>cdb</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_connection_established?'>connection_established?</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_conn'>conn</span><span class='op'>|</span>
<span class='kw'>if</span> <span class='id identifier rubyid_conn'>conn</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span> <span class='symbol'>:current_database</span>
<span class='id identifier rubyid_cdb'>cdb</span> <span class='op'>=</span> <span class='id identifier rubyid_conn'>conn</span><span class='period'>.</span><span class='id identifier rubyid_current_database'>current_database</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_cdb'>cdb</span> <span class='op'>=</span> <span class='id identifier rubyid_conn'>conn</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='symbol'>:@config</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:database</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='rbrace'>}</span>
<span class='kw'>return</span> <span class='lbrace'>{</span><span class='symbol'>:driver</span> <span class='op'>=&gt;</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='comma'>,</span> <span class='symbol'>:db</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cdb'>cdb</span> <span class='rbrace'>}</span>
<span class='kw'>else</span>
<span class='kw'>return</span> <span class='lbrace'>{</span><span class='symbol'>:driver</span> <span class='op'>=&gt;</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_driver'>driver</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='lbrace'>{</span><span class='symbol'>:driver</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>None</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_vulns-instance_method">
#<strong>rpc_vulns</strong>(xopts) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about reported vulnerabilities.</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'>&#39;</span><span class='tstring_content'>db.vulns</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
</div>
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>xopts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Options:</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>xopts</tt>):</p>
<ul class="option">
<li>
<span class="name">:workspace</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Name of workspace.</p>
</div>
</li>
<li>
<span class="name">:limit</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Limit.</p>
</div>
</li>
<li>
<span class="name">:offset</span>
<span class="type">(<tt>Integer</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Offset.</p>
</div>
</li>
<li>
<span class="name">:proto</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Protocol.</p>
</div>
</li>
<li>
<span class="name">:address</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Address.</p>
</div>
</li>
<li>
<span class="name">:ports</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Port range.</p>
</div>
</li>
<li>
<span class="name">:names</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>Exploit that was used.</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>A hash with the following key:</p>
<ul><li>
<p>'vulns' [Array&lt;Hash&gt;] In each hash of the array, you will get these keys:</p>
<ul><li>
<p>'port' [Integer] Port.</p>
</li><li>
<p>'proto' [String] Protocol.</p>
</li><li>
<p>'time' [Integer] Time reported.</p>
</li><li>
<p>'host' [String] Vulnerable host.</p>
</li><li>
<p>'name' [String] Exploit that was used.</p>
</li><li>
<p>'refs' [String] Vulnerability references.</p>
</li></ul>
</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="ServerException.html" title="Msf::RPC::ServerException (class)">Msf::RPC::ServerException</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>You might get one of these errors:</p>
<ul><li>
<p>500 ActiveRecord::ConnectionNotEstablished. Try: rpc.call('console.create').</p>
</li><li>
<p>500 Database not loaded. Try: rpc.call('console.create')</p>
</li><li>
<p>500 Invalid workspace.</p>
</li></ul>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 518</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_vulns'>rpc_vulns</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='lbrace'>{</span>
<span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='id identifier rubyid_wspace'>wspace</span> <span class='op'>=</span> <span class='id identifier rubyid_init_db_opts_workspace'>init_db_opts_workspace</span><span class='lparen'>(</span><span class='id identifier rubyid_xopts'>xopts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:limit</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>100</span>
<span class='id identifier rubyid_offset'>offset</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:offset</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span>
<span class='id identifier rubyid_conditions'>conditions</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hosts.address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:address</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='lparen'>(</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>,</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:names</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>services.port</span><span class='tstring_end'>&quot;</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'>Socket</span><span class='period'>.</span><span class='id identifier rubyid_portspec_to_portlist'>portspec_to_portlist</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:ports</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_conditions'>conditions</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>services.proto</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:vulns</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_wspace'>wspace</span><span class='period'>.</span><span class='id identifier rubyid_vulns'>vulns</span><span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:service</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_offset'>offset</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_limit'>limit</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</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_v'>v</span><span class='op'>|</span>
<span class='id identifier rubyid_vuln'>vuln</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_reflist'>reflist</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_refs'>refs</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_r'>r</span><span class='op'>|</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='rbrace'>}</span>
<span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_service'>service</span><span class='period'>.</span><span class='id identifier rubyid_proto'>proto</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:proto</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:time</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span> <span class='op'>||</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_vuln'>vuln</span><span class='lbracket'>[</span><span class='symbol'>:refs</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_reflist'>reflist</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>,</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span><span class='symbol'>:vulns</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_vuln'>vuln</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_ret'>ret</span>
<span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rpc_workspaces-instance_method">
#<strong>rpc_workspaces</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns information about workspaces.</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'>&#39;</span><span class='tstring_content'>db.workspaces</span><span class='tstring_end'>&#39;</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>
&mdash;
<div class='inline'>
<p>A hash with the following key:</p>
<ul><li>
<p>'workspaces' [Array&lt;Hash&gt;] In each hash of the array, you will get these keys:</p>
<ul><li>
<p>'id' [Integer] Workspace ID.</p>
</li><li>
<p>'name' [String] Workspace name.</p>
</li><li>
<p>'created_at' [Integer] Last created at.</p>
</li><li>
<p>'updated_at' [Integer] Last updated at.</p>
</li></ul>
</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>
&mdash;
<div class='inline'>
<p>Database not loaded.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/rpc/v10/rpc_db.rb', line 564</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rpc_workspaces'>rpc_workspaces</span>
<span class='id identifier rubyid_db_check'>db_check</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='symbol'>:workspaces</span><span class='rbracket'>]</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_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_workspaces'>workspaces</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_j'>j</span><span class='op'>|</span>
<span class='id identifier rubyid_ws'>ws</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='id identifier rubyid_ws'>ws</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
<span class='id identifier rubyid_ws'>ws</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_ws'>ws</span><span class='lbracket'>[</span><span class='symbol'>:created_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span><span class='period'>.</span><span class='id identifier rubyid_created_at'>created_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_ws'>ws</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_res'>res</span><span class='lbracket'>[</span><span class='symbol'>:workspaces</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_ws'>ws</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>
</div>
<div id="footer">
Generated on Fri May 8 17:03:24 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>