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

347 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Msf::WebServices::FrameworkExtension
&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::WebServices::FrameworkExtension";
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 (F)</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="../WebServices.html" title="Msf::WebServices (module)">WebServices</a></span></span>
&raquo;
<span class="title">FrameworkExtension</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>Module: Msf::WebServices::FrameworkExtension
</h1>
<div class="box_info">
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/web_services/framework_extension.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Extension provides a Metasploit Framework instance to a Sinatra application. The framework instance is stored with the setting name framework and is also accessible via the framework helper method. If the data service URL environment variable is set, then the framework instance will be configured to use the data service rather than the local database.</p>
<p>Environment Variables: MSF_WS_DATA_SERVICE_URL - The data service URL. MSF_WS_DATA_SERVICE_API_TOKEN - API token used to authenticate to the remote data service. MSF_WS_DATA_SERVICE_CERT - Certificate file matching the remote data servers certificate.</p>
<pre class="code ruby"><code class="ruby">Needed when using self-signed SSL certificates.
</code></pre>
<p>MSF_WS_DATA_SERVICE_SKIP_VERIFY - (Boolean) Skip validating authenticity of servers certificate. MSF_WS_DATA_SERVICE_LOGGER - (String) The logger that framework will use. By default logs will be</p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_placed'>placed</span> <span class='kw'>in</span> <span class='backtick'>`</span><span class='tstring_content'>~/.msf4/logs</span><span class='tstring_end'>`</span></span>
</code></pre>
</div>
</div>
<div class="tags">
</div><h2>Defined Under Namespace</h2>
<p class="children">
<strong class="modules">Modules:</strong> <span class='object_link'><a href="FrameworkExtension/Helpers.html" title="Msf::WebServices::FrameworkExtension::Helpers (module)">Helpers</a></span>
</p>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="FALSE_VALUES-constant" class="">FALSE_VALUES =
</dt>
<dd><pre class="code"><span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0</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'>f</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'>false</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'>off</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'>no</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_set'>to_set</span></pre></dd>
</dl>
<h2>
Class Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#db_connect-class_method" title="db_connect (class method)">.<strong>db_connect</strong>(framework, app) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#registered-class_method" title="registered (class method)">.<strong>registered</strong>(app) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
</ul>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="db_connect-class_method">
.<strong>db_connect</strong>(framework, app) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/framework_extension.rb', line 62</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_db_connect'>db_connect</span><span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_url'>data_service_url</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_url'>data_service_url</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>url:</span> <span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_url'>data_service_url</span><span class='comma'>,</span>
<span class='label'>api_token:</span> <span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_api_token'>data_service_api_token</span><span class='comma'>,</span>
<span class='label'>cert:</span> <span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_cert'>data_service_cert</span><span class='comma'>,</span>
<span class='label'>skip_verify:</span> <span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_settings'>settings</span><span class='period'>.</span><span class='id identifier rubyid_data_service_skip_verify'>data_service_skip_verify</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_db_result'>db_result</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../DbConnector.html" title="Msf::DbConnector (module)">DbConnector</a></span></span><span class='period'>.</span><span class='id identifier rubyid_db_connect'><span class='object_link'><a href="../DbConnector.html#db_connect-class_method" title="Msf::DbConnector.db_connect (method)">db_connect</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_db_result'>db_result</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../DbConnector.html" title="Msf::DbConnector (module)">DbConnector</a></span></span><span class='period'>.</span><span class='id identifier rubyid_db_connect_from_config'><span class='object_link'><a href="../DbConnector.html#db_connect_from_config-class_method" title="Msf::DbConnector.db_connect_from_config (method)">db_connect_from_config</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_db_result'>db_result</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_db_result'>db_result</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="registered-class_method">
.<strong>registered</strong>(app) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/framework_extension.rb', line 35</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_registered'>registered</span><span class='lparen'>(</span><span class='id identifier rubyid_app'>app</span><span class='rparen'>)</span>
<span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_helpers'>helpers</span> <span class='const'><span class='object_link'><a href="" title="Msf::WebServices::FrameworkExtension (module)">FrameworkExtension</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="FrameworkExtension/Helpers.html" title="Msf::WebServices::FrameworkExtension::Helpers (module)">Helpers</a></span></span>
<span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span> <span class='symbol'>:data_service_url</span><span class='comma'>,</span> <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_WS_DATA_SERVICE_URL</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span> <span class='symbol'>:data_service_api_token</span><span class='comma'>,</span> <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_WS_DATA_SERVICE_API_TOKEN</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span> <span class='symbol'>:data_service_cert</span><span class='comma'>,</span> <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_WS_DATA_SERVICE_CERT</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span> <span class='symbol'>:data_service_skip_verify</span><span class='comma'>,</span> <span class='id identifier rubyid_to_bool'>to_bool</span><span class='lparen'>(</span><span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_WS_DATA_SERVICE_SKIP_VERIFY</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='cvar'>@@framework</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='comment'># Create simplified instance of the framework
</span> <span class='id identifier rubyid_app'>app</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span> <span class='symbol'>:framework</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_proc'>proc</span> <span class='lbrace'>{</span>
<span class='cvar'>@@framework</span> <span class='op'>||=</span> <span class='kw'>begin</span>
<span class='id identifier rubyid_init_framework_opts'>init_framework_opts</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Logger</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_WS_DATA_SERVICE_LOGGER</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span><span class='comma'>,</span>
<span class='comment'># SkipDatabaseInit false is the default behavior, however for explicitness - note that framework first
</span> <span class='comment'># connects to a local database as a pre-requisite to connecting to a remote service to correctly
</span> <span class='comment'># configure active record
</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>SkipDatabaseInit</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='kw'>false</span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_framework'>framework</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple.html" title="Msf::Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Simple/Framework.html" title="Msf::Simple::Framework (module)">Framework</a></span></span><span class='period'>.</span><span class='id identifier rubyid_create'><span class='object_link'><a href="../Simple/Framework.html#create-class_method" title="Msf::Simple::Framework.create (method)">create</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_init_framework_opts'>init_framework_opts</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../WebServices.html" title="Msf::WebServices (module)">WebServices</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Msf::WebServices::FrameworkExtension (module)">FrameworkExtension</a></span></span><span class='period'>.</span><span class='id identifier rubyid_db_connect'><span class='object_link'><a href="#db_connect-class_method" title="Msf::WebServices::FrameworkExtension.db_connect (method)">db_connect</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_framework'>framework</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='rparen'>)</span>
<span class='id identifier rubyid_framework'>framework</span>
<span class='kw'>end</span>
<span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:02:25 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>