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

5511 lines
134 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Msf::Config
&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::Config";
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 (C)</a> &raquo;
<span class='title'><span class='object_link'><a href="../Msf.html" title="Msf (module)">Msf</a></span></span>
&raquo;
<span class="title">Config</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::Config
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Hash</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Hash</li>
<li class="next">Msf::Config</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/base/config.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>This class wraps interaction with global configuration that can be used as a persistent storage point for configuration, logs, and other such fun things.</p>
</div>
</div>
<div class="tags">
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="InstallRoot-constant" class="">InstallRoot =
<div class="docstring">
<div class="discussion">
<p>The installations root directory for the distribution</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>..</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'>..</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'>..</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='rparen'>)</span></pre></dd>
<dt id="FileSep-constant" class="">FileSep =
<div class="docstring">
<div class="discussion">
<p>Default system file separator.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>File</span><span class='op'>::</span><span class='const'>SEPARATOR</span></pre></dd>
<dt id="Defaults-constant" class="">Defaults =
<div class="docstring">
<div class="discussion">
<p>Default configuration locations.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='lbrace'>{</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ConfigDirectory</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_get_config_root'>get_config_root</span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ConfigFile</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'>config</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ModuleDirectory</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'>modules</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ScriptDirectory</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'>scripts</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LogDirectory</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'>logs</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LogosDirectory</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'>logos</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>SessionLogDirectory</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'>logs/sessions</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>PluginDirectory</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'>plugins</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>DataDirectory</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'>data</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LootDirectory</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'>loot</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LocalDirectory</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'>local</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>HistoriesDirectory</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'>histories</span><span class='tstring_end'>&quot;</span></span>
<span class='rbrace'>}</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="#config_directory-class_method" title="config_directory (class method)">.<strong>config_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the configuration directory default.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#config_file-class_method" title="config_file (class method)">.<strong>config_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the configuration file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#data_directory-class_method" title="data_directory (class method)">.<strong>data_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the data directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#delete_group-class_method" title="delete_group (class method)">.<strong>delete_group</strong>(group) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes the specified config group from the ini file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#fav_modules_file-class_method" title="fav_modules_file (class method)">.<strong>fav_modules_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the fav_modules file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#get_config_root-class_method" title="get_config_root (class method)">.<strong>get_config_root</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Determines the base configuration directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#histories_directory-class_method" title="histories_directory (class method)">.<strong>histories_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the histories directory default.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#history_file-class_method" title="history_file (class method)">.<strong>history_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#history_file_for_session_type-class_method" title="history_file_for_session_type (class method)">.<strong>history_file_for_session_type</strong>(opts) &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the MySQL interactive query history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#init-class_method" title="init (class method)">.<strong>init</strong> &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Initializes configuration, creating directories as necessary.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#install_root-class_method" title="install_root (class method)">.<strong>install_root</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the framework installation root.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#ldap_session_history-class_method" title="ldap_session_history (class method)">.<strong>ldap_session_history</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the ldap session history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#load-class_method" title="load (class method)">.<strong>load</strong>(path = nil) &#x21d2; Rex::Parser::Ini </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Loads configuration from the supplied file path, or the default one if none is specified.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#local_directory-class_method" title="local_directory (class method)">.<strong>local_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which locally-generated data will reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_directory-class_method" title="log_directory (class method)">.<strong>log_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory that log files should be stored in.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#logos_directory-class_method" title="logos_directory (class method)">.<strong>logos_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Return the directory that logo files should be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#loot_directory-class_method" title="loot_directory (class method)">.<strong>loot_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which captured data will reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#meterpreter_history-class_method" title="meterpreter_history (class method)">.<strong>meterpreter_history</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the meterpreter history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#module_directory-class_method" title="module_directory (class method)">.<strong>module_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the global module directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#persist_file-class_method" title="persist_file (class method)">.<strong>persist_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the handler file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#plugin_directory-class_method" title="plugin_directory (class method)">.<strong>plugin_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory that plugins are stored in.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#pry_history-class_method" title="pry_history (class method)">.<strong>pry_history</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#save-class_method" title="save (class method)">.<strong>save</strong>(opts) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Saves configuration to the path specified in the ConfigFile hash key or the default path if one isnt specified.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#script_directory-class_method" title="script_directory (class method)">.<strong>script_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the path that scripts can be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_log_directory-class_method" title="session_log_directory (class method)">.<strong>session_log_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which session log files are to reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#smb_session_history-class_method" title="smb_session_history (class method)">.<strong>smb_session_history</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the smb session history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_data_directory-class_method" title="user_data_directory (class method)">.<strong>user_data_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Path to user-specific data directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_logos_directory-class_method" title="user_logos_directory (class method)">.<strong>user_logos_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Return the user-specific directory that logo files should be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_module_directory-class_method" title="user_module_directory (class method)">.<strong>user_module_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific module base path.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_plugin_directory-class_method" title="user_plugin_directory (class method)">.<strong>user_plugin_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific plugin base path.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_script_directory-class_method" title="user_script_directory (class method)">.<strong>user_script_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific script base path.</p>
</div></span>
</li>
</ul>
<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="#config_directory-instance_method" title="#config_directory (instance method)">#<strong>config_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the configuration directory default.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#config_file-instance_method" title="#config_file (instance method)">#<strong>config_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the configuration file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#data_directory-instance_method" title="#data_directory (instance method)">#<strong>data_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the data directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#delete_group-instance_method" title="#delete_group (instance method)">#<strong>delete_group</strong>(group) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Deletes the specified config group from the ini file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#fav_modules_file-instance_method" title="#fav_modules_file (instance method)">#<strong>fav_modules_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the fav_modules file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#histories_directory-instance_method" title="#histories_directory (instance method)">#<strong>histories_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the histories directory default.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#history_file-instance_method" title="#history_file (instance method)">#<strong>history_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the history file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#history_file_for_session_type-instance_method" title="#history_file_for_session_type (instance method)">#<strong>history_file_for_session_type</strong>(opts) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#history_options_valid%3F-instance_method" title="#history_options_valid? (instance method)">#<strong>history_options_valid?</strong>(opts) &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#init-instance_method" title="#init (instance method)">#<strong>init</strong> &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Initializes configuration, creating directories as necessary.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong> &#x21d2; Hash </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>Updates the config class self with the default hash.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#install_root-instance_method" title="#install_root (instance method)">#<strong>install_root</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the installation root directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#interactive_to_string_map-instance_method" title="#interactive_to_string_map (instance method)">#<strong>interactive_to_string_map</strong>(interactive) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#ldap_session_history-instance_method" title="#ldap_session_history (instance method)">#<strong>ldap_session_history</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#load-instance_method" title="#load (instance method)">#<strong>load</strong>(path = nil) &#x21d2; Rex::Parser::Ini </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Loads configuration from the supplied file path, or the default one if none is specified.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#local_directory-instance_method" title="#local_directory (instance method)">#<strong>local_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which locally-generated data will reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_directory-instance_method" title="#log_directory (instance method)">#<strong>log_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory that log files should be stored in.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#logos_directory-instance_method" title="#logos_directory (instance method)">#<strong>logos_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Return the directory that logo files should be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#loot_directory-instance_method" title="#loot_directory (instance method)">#<strong>loot_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which captured data will reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#meterpreter_history-instance_method" title="#meterpreter_history (instance method)">#<strong>meterpreter_history</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#module_directory-instance_method" title="#module_directory (instance method)">#<strong>module_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the global module directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#persist_file-instance_method" title="#persist_file (instance method)">#<strong>persist_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the full path to the handler file.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#plugin_directory-instance_method" title="#plugin_directory (instance method)">#<strong>plugin_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory that plugins are stored in.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#pry_history-instance_method" title="#pry_history (instance method)">#<strong>pry_history</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#save-instance_method" title="#save (instance method)">#<strong>save</strong>(opts) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Saves configuration to the path specified in the ConfigFile hash key or the default path if one isnt specified.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#script_directory-instance_method" title="#script_directory (instance method)">#<strong>script_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the path that scripts can be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_log_directory-instance_method" title="#session_log_directory (instance method)">#<strong>session_log_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the directory in which session log files are to reside.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#smb_session_history-instance_method" title="#smb_session_history (instance method)">#<strong>smb_session_history</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_data_directory-instance_method" title="#user_data_directory (instance method)">#<strong>user_data_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Path to user-specific data directory.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_logos_directory-instance_method" title="#user_logos_directory (instance method)">#<strong>user_logos_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Return the user-specific directory that logo files should be loaded from.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_module_directory-instance_method" title="#user_module_directory (instance method)">#<strong>user_module_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific module base path.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_plugin_directory-instance_method" title="#user_plugin_directory (instance method)">#<strong>user_plugin_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific plugin base path.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_script_directory-instance_method" title="#user_script_directory (instance method)">#<strong>user_script_directory</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the user-specific script base path.</p>
</div></span>
</li>
</ul>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Updates the config class self with the default hash.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
308
309
310</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 308</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
<span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#Defaults-constant" title="Msf::Config::Defaults (constant)">Defaults</a></span></span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="config_directory-class_method">
.<strong>config_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the configuration directory default.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the root configuration directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
97
98
99</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 97</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config_directory'>config_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_config_directory'>config_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="config_file-class_method">
.<strong>config_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the configuration file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the configuration file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
207
208
209</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 207</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config_file'>config_file</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_config_file'>config_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="data_directory-class_method">
.<strong>data_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the data directory</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
200
201
202</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 200</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_data_directory'>data_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_data_directory'>data_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="delete_group-class_method">
.<strong>delete_group</strong>(group) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Deletes the specified config group from the ini file</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>group</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>The name of the group to remove</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
301
302
303</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 301</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_delete_group'>delete_group</span><span class='lparen'>(</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_delete_group'>delete_group</span><span class='lparen'>(</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="fav_modules_file-class_method">
.<strong>fav_modules_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the fav_modules file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the fav_modules file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
252
253
254</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 252</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_fav_modules_file'>fav_modules_file</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_fav_modules_file'>fav_modules_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="get_config_root-class_method">
.<strong>get_config_root</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Determines the base configuration directory. This method should be considered private`.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the base configuration directory</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 28</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_config_root'>get_config_root</span>
<span class='comment'># Use MSF_CFGROOT_CONFIG environment variable first.
</span> <span class='id identifier rubyid_val'>val</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'>Compat</span><span class='period'>.</span><span class='id identifier rubyid_getenv'>getenv</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MSF_CFGROOT_CONFIG</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span> <span class='kw'>and</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_directory?'>directory?</span><span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_val'>val</span>
<span class='kw'>end</span>
<span class='comment'># XXX Update this when there is a need to break compatibility
</span> <span class='id identifier rubyid_config_dir_major'>config_dir_major</span> <span class='op'>=</span> <span class='int'>4</span>
<span class='id identifier rubyid_config_dir'>config_dir</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.msf</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config_dir_major'>config_dir_major</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='comment'># Windows-specific environment variables
</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>HOME</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'>LOCALAPPDATA</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'>APPDATA</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'>USERPROFILE</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</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_dir'>dir</span><span class='op'>|</span>
<span class='id identifier rubyid_val'>val</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'>Compat</span><span class='period'>.</span><span class='id identifier rubyid_getenv'>getenv</span><span class='lparen'>(</span><span class='id identifier rubyid_dir'>dir</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span> <span class='kw'>and</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_directory?'>directory?</span><span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span><span class='comma'>,</span> <span class='id identifier rubyid_config_dir'>config_dir</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>begin</span>
<span class='comment'># First we try $HOME/.msfx
</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>~</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config_dir'>config_dir</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>ArgumentError</span>
<span class='comment'># Give up and install root + &quot;.msfx&quot;
</span> <span class='const'><span class='object_link'><a href="#InstallRoot-constant" title="Msf::Config::InstallRoot (constant)">InstallRoot</a></span></span> <span class='op'>+</span> <span class='id identifier rubyid_config_dir'>config_dir</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="histories_directory-class_method">
.<strong>histories_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the histories directory default.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the SQL session histories directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
104
105
106</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 104</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_histories_directory'>histories_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_histories_directory'>histories_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="history_file-class_method">
.<strong>history_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the history file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
214
215
216</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 214</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_history_file'>history_file</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_history_file'>history_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="history_file_for_session_type-class_method">
.<strong>history_file_for_session_type</strong>(opts) &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the MySQL interactive query history file</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the interactive query history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
242
243
244</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 242</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_history_file_for_session_type'>history_file_for_session_type</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_history_file_for_session_type'>history_file_for_session_type</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="init-class_method">
.<strong>init</strong> &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Initializes configuration, creating directories as necessary.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
266
267
268</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 266</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_init'>init</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_init'>init</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="install_root-class_method">
.<strong>install_root</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the framework installation root.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the framework installation root <span class='object_link'><a href="#InstallRoot-constant" title="Msf::Config::InstallRoot (constant)">InstallRoot</a></span>.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
90
91
92</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 90</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_install_root'>install_root</span>
<span class='const'><span class='object_link'><a href="#InstallRoot-constant" title="Msf::Config::InstallRoot (constant)">InstallRoot</a></span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="ldap_session_history-class_method">
.<strong>ldap_session_history</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the ldap session history file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
235
236
237</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 235</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ldap_session_history'>ldap_session_history</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_ldap_session_history'>ldap_session_history</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="load-class_method">
.<strong>load</strong>(path = nil) &#x21d2; <tt><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Rex::Parser::Ini</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Loads configuration from the supplied file path, or the default one if none is specified.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>path</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>nil</tt>)</em>
&mdash;
<div class='inline'>
<p>the path to the configuration file.</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Rex::Parser::Ini</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>INI file parser.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
275
276
277</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 275</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="local_directory-class_method">
.<strong>local_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which locally-generated data will reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to locally-generated data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
167
168
169</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 167</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_local_directory'>local_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_local_directory'>local_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="log_directory-class_method">
.<strong>log_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory that log files should be stored in.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to log directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
132
133
134</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 132</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_log_directory'>log_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_log_directory'>log_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="logos_directory-class_method">
.<strong>logos_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Return the directory that logo files should be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the logos directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
111
112
113</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 111</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_logos_directory'>logos_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_logos_directory'>logos_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="loot_directory-class_method">
.<strong>loot_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which captured data will reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to loot directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
160
161
162</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 160</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_loot_directory'>loot_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_loot_directory'>loot_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="meterpreter_history-class_method">
.<strong>meterpreter_history</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the meterpreter history file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
221
222
223</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 221</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_meterpreter_history'>meterpreter_history</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_meterpreter_history'>meterpreter_history</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="module_directory-class_method">
.<strong>module_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the global module directory.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to global module directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
118
119
120</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 118</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_module_directory'>module_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_module_directory'>module_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="persist_file-class_method">
.<strong>persist_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the handler file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the handler file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
259
260
261</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 259</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_persist_file'>persist_file</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_persist_file'>persist_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="plugin_directory-class_method">
.<strong>plugin_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory that plugins are stored in.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to plugin directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
139
140
141</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 139</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_plugin_directory'>plugin_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_plugin_directory'>plugin_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="pry_history-class_method">
.<strong>pry_history</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
246
247
248</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 246</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_pry_history'>pry_history</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_pry_history'>pry_history</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="save-class_method">
.<strong>save</strong>(opts) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Saves configuration to the path specified in the ConfigFile hash key or the default path if one isnt specified. The options should be group references that have named value pairs.</p>
</div>
</div>
<div class="tags">
<div class="examples">
<h4 class="tag_title">Examples:</h4>
<h5 class="example_title"><div class='inline'>
<p>Save 'Cat' =&gt; 'Foo' in group 'ExampleGroup'</p>
</div></h5>
<pre class="example code"><code><span class='id identifier rubyid_save'>save</span><span class='lparen'>(</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ExampleGroup</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span>
<span class='lbrace'>{</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Foo</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'>Cat</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'>opts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Hash containing configuration options.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>opts</tt>):</p>
<ul class="option">
<li>
<span class="name">configuration</span>
<span class="type">(<tt>'ConfigFile'Hash</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>file these options apply to.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
293
294
295</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 293</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</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="script_directory-class_method">
.<strong>script_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the path that scripts can be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to script directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
125
126
127</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 125</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_script_directory'>script_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_script_directory'>script_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_log_directory-class_method">
.<strong>session_log_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which session log files are to reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to session log directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
153
154
155</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 153</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_session_log_directory'>session_log_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_session_log_directory'>session_log_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="smb_session_history-class_method">
.<strong>smb_session_history</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the smb session history file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
228
229
230</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 228</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_smb_session_history'>smb_session_history</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_smb_session_history'>smb_session_history</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_data_directory-class_method">
.<strong>user_data_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns path to user-specific data directory.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
193
194
195</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 193</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_data_directory'>user_data_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_user_data_directory'>user_data_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_logos_directory-class_method">
.<strong>user_logos_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Return the user-specific directory that logo files should be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the logos directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
174
175
176</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 174</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_logos_directory'>user_logos_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_user_logos_directory'>user_logos_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_module_directory-class_method">
.<strong>user_module_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific module base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific modules directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
181
182
183</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 181</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_module_directory'>user_module_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_user_module_directory'>user_module_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_plugin_directory-class_method">
.<strong>user_plugin_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific plugin base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific plugin directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
146
147
148</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 146</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_plugin_directory'>user_plugin_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_user_plugin_directory'>user_plugin_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_script_directory-class_method">
.<strong>user_script_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific script base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific script directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
188
189
190</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 188</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_script_directory'>user_script_directory</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_user_script_directory'>user_script_directory</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="config_directory-instance_method">
#<strong>config_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the configuration directory default.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the root configuration directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
329
330
331</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 329</span>
<span class='kw'>def</span> <span class='id identifier rubyid_config_directory'>config_directory</span>
<span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ConfigDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="config_file-instance_method">
#<strong>config_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the configuration file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the configuration file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
343
344
345</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 343</span>
<span class='kw'>def</span> <span class='id identifier rubyid_config_file'>config_file</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ConfigFile</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="data_directory-instance_method">
#<strong>data_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the data directory</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
489
490
491</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 489</span>
<span class='kw'>def</span> <span class='id identifier rubyid_data_directory'>data_directory</span>
<span class='id identifier rubyid_install_root'>install_root</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>DataDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="delete_group-instance_method">
#<strong>delete_group</strong>(group) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Deletes the specified config group from the ini file</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>group</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>The name of the group to remove</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
547
548
549
550
551
552
553</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 547</span>
<span class='kw'>def</span> <span class='id identifier rubyid_delete_group'>delete_group</span><span class='lparen'>(</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</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'><span class='object_link'><a href="../Rex/Parser.html" title="Rex::Parser (module)">Parser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Ini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../Rex/Parser/Ini.html#initialize-instance_method" title="Rex::Parser::Ini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_config_file'>config_file</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</span><span class='period'>.</span><span class='id identifier rubyid_to_file'>to_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="fav_modules_file-instance_method">
#<strong>fav_modules_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the fav_modules file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path the fav_modules file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
393
394
395</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 393</span>
<span class='kw'>def</span> <span class='id identifier rubyid_fav_modules_file'>fav_modules_file</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fav_modules</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="histories_directory-instance_method">
#<strong>histories_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the histories directory default.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the SQL session histories directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
336
337
338</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 336</span>
<span class='kw'>def</span> <span class='id identifier rubyid_histories_directory'>histories_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>HistoriesDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="history_file-instance_method">
#<strong>history_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the history file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path the history file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
350
351
352</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 350</span>
<span class='kw'>def</span> <span class='id identifier rubyid_history_file'>history_file</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="history_file_for_session_type-instance_method">
#<strong>history_file_for_session_type</strong>(opts) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
377
378
379
380
381
382
383
384</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 377</span>
<span class='kw'>def</span> <span class='id identifier rubyid_history_file_for_session_type'>history_file_for_session_type</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_history_options_valid?'>history_options_valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_session_type_name'>session_type_name</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:session_type</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_interactive'>interactive</span> <span class='op'>=</span> <span class='id identifier rubyid_interactive_to_string_map'>interactive_to_string_map</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:interactive</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_histories_directory'>histories_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_type_name'>session_type_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>_session</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_interactive'>interactive</span><span class='embexpr_end'>}</span><span class='tstring_content'>_history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="history_options_valid?-instance_method">
#<strong>history_options_valid?</strong>(opts) &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
366
367
368
369
370</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 366</span>
<span class='kw'>def</span> <span class='id identifier rubyid_history_options_valid?'>history_options_valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='kw'>false</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'>:session_type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:interactive</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
<span class='kw'>true</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="init-instance_method">
#<strong>init</strong> &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Initializes configuration, creating directories as necessary.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
496
497
498
499
500
501
502
503
504
505
506
507
508</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 496</span>
<span class='kw'>def</span> <span class='id identifier rubyid_init'>init</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_module_directory'>module_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_config_directory'>config_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_log_directory'>log_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_session_log_directory'>session_log_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_loot_directory'>loot_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_local_directory'>local_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_user_logos_directory'>user_logos_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_user_module_directory'>user_module_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_user_plugin_directory'>user_plugin_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_user_data_directory'>user_data_directory</span><span class='rparen'>)</span>
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_histories_directory'>histories_directory</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="install_root-instance_method">
#<strong>install_root</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the installation root directory</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>the installation root directory <span class='object_link'><a href="#InstallRoot-constant" title="Msf::Config::InstallRoot (constant)">InstallRoot</a></span>.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
315
316
317</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 315</span>
<span class='kw'>def</span> <span class='id identifier rubyid_install_root'>install_root</span>
<span class='const'><span class='object_link'><a href="#InstallRoot-constant" title="Msf::Config::InstallRoot (constant)">InstallRoot</a></span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="interactive_to_string_map-instance_method">
#<strong>interactive_to_string_map</strong>(interactive) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
372
373
374
375</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 372</span>
<span class='kw'>def</span> <span class='id identifier rubyid_interactive_to_string_map'>interactive_to_string_map</span><span class='lparen'>(</span><span class='id identifier rubyid_interactive'>interactive</span><span class='rparen'>)</span>
<span class='comment'># Check for true explicitly rather than just a value that is truthy.
</span> <span class='id identifier rubyid_interactive'>interactive</span> <span class='op'>==</span> <span class='kw'>true</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>_interactive</span><span class='tstring_end'>&#39;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="ldap_session_history-instance_method">
#<strong>ldap_session_history</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
362
363
364</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 362</span>
<span class='kw'>def</span> <span class='id identifier rubyid_ldap_session_history'>ldap_session_history</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ldap_session_history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="load-instance_method">
#<strong>load</strong>(path = nil) &#x21d2; <tt><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Rex::Parser::Ini</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Loads configuration from the supplied file path, or the default one if none is specified.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>path</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>nil</tt>)</em>
&mdash;
<div class='inline'>
<p>the path to the configuration file.</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Rex::Parser::Ini</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>INI file parser.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
515
516
517
518
519</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 515</span>
<span class='kw'>def</span> <span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_config_file'>config_file</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
<span class='kw'>return</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'><span class='object_link'><a href="../Rex/Parser.html" title="Rex::Parser (module)">Parser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Ini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../Rex/Parser/Ini.html#initialize-instance_method" title="Rex::Parser::Ini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="local_directory-instance_method">
#<strong>local_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which locally-generated data will reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to locally-generated data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
449
450
451</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 449</span>
<span class='kw'>def</span> <span class='id identifier rubyid_local_directory'>local_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LocalDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="log_directory-instance_method">
#<strong>log_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory that log files should be stored in.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to log directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
421
422
423</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 421</span>
<span class='kw'>def</span> <span class='id identifier rubyid_log_directory'>log_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LogDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="logos_directory-instance_method">
#<strong>logos_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Return the directory that logo files should be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the logos directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
322
323
324</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 322</span>
<span class='kw'>def</span> <span class='id identifier rubyid_logos_directory'>logos_directory</span>
<span class='id identifier rubyid_data_directory'>data_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LogosDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="loot_directory-instance_method">
#<strong>loot_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which captured data will reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to loot directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
442
443
444</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 442</span>
<span class='kw'>def</span> <span class='id identifier rubyid_loot_directory'>loot_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LootDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="meterpreter_history-instance_method">
#<strong>meterpreter_history</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
354
355
356</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 354</span>
<span class='kw'>def</span> <span class='id identifier rubyid_meterpreter_history'>meterpreter_history</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>meterpreter_history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="module_directory-instance_method">
#<strong>module_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the global module directory.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to global module directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
407
408
409</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 407</span>
<span class='kw'>def</span> <span class='id identifier rubyid_module_directory'>module_directory</span>
<span class='id identifier rubyid_install_root'>install_root</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ModuleDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="persist_file-instance_method">
#<strong>persist_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the full path to the handler file.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path the handler file.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
400
401
402</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 400</span>
<span class='kw'>def</span> <span class='id identifier rubyid_persist_file'>persist_file</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>persist</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="plugin_directory-instance_method">
#<strong>plugin_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory that plugins are stored in.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to plugin directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
428
429
430</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 428</span>
<span class='kw'>def</span> <span class='id identifier rubyid_plugin_directory'>plugin_directory</span>
<span class='id identifier rubyid_install_root'>install_root</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>PluginDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="pry_history-instance_method">
#<strong>pry_history</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
386
387
388</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 386</span>
<span class='kw'>def</span> <span class='id identifier rubyid_pry_history'>pry_history</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pry_history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="save-instance_method">
#<strong>save</strong>(opts) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Saves configuration to the path specified in the ConfigFile hash key or the default path if one isnt specified. The options should be group references that have named value pairs.</p>
</div>
</div>
<div class="tags">
<div class="examples">
<h4 class="tag_title">Examples:</h4>
<h5 class="example_title"><div class='inline'>
<p>Save 'Cat' =&gt; 'Foo' in group 'ExampleGroup'</p>
</div></h5>
<pre class="example code"><code><span class='id identifier rubyid_save'>save</span><span class='lparen'>(</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ExampleGroup</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span>
<span class='lbrace'>{</span>
<span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Foo</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'>Cat</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'>opts</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Hash containing configuration options.</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>opts</tt>):</p>
<ul class="option">
<li>
<span class="name">configuration</span>
<span class="type">(<tt>'ConfigFile'Hash</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>file these options apply to.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
535
536
537
538
539
540
541</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 535</span>
<span class='kw'>def</span> <span class='id identifier rubyid_save'>save</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</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'><span class='object_link'><a href="../Rex/Parser.html" title="Rex::Parser (module)">Parser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Rex/Parser/Ini.html" title="Rex::Parser::Ini (class)">Ini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../Rex/Parser/Ini.html#initialize-instance_method" title="Rex::Parser::Ini#initialize (method)">new</a></span></span><span class='lparen'>(</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'>ConfigFile</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_config_file'>config_file</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ini'>ini</span><span class='period'>.</span><span class='id identifier rubyid_to_file'>to_file</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="script_directory-instance_method">
#<strong>script_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the path that scripts can be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to script directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
414
415
416</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 414</span>
<span class='kw'>def</span> <span class='id identifier rubyid_script_directory'>script_directory</span>
<span class='id identifier rubyid_install_root'>install_root</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ScriptDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_log_directory-instance_method">
#<strong>session_log_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the directory in which session log files are to reside.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to session log directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
435
436
437</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 435</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_log_directory'>session_log_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>SessionLogDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="smb_session_history-instance_method">
#<strong>smb_session_history</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
358
359
360</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 358</span>
<span class='kw'>def</span> <span class='id identifier rubyid_smb_session_history'>smb_session_history</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>smb_session_history</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_data_directory-instance_method">
#<strong>user_data_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns path to user-specific data directory.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific data directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
482
483
484</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 482</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_data_directory'>user_data_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>DataDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_logos_directory-instance_method">
#<strong>user_logos_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Return the user-specific directory that logo files should be loaded from.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to the logos directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
456
457
458</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 456</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_logos_directory'>user_logos_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>LogosDirectory</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_module_directory-instance_method">
#<strong>user_module_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific module base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific modules directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
463
464
465</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 463</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_module_directory'>user_module_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>modules</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_plugin_directory-instance_method">
#<strong>user_plugin_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific plugin base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific plugin directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
470
471
472</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 470</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_plugin_directory'>user_plugin_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>plugins</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="user_script_directory-instance_method">
#<strong>user_script_directory</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the user-specific script base path</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>path to user-specific script directory.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
477
478
479</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/base/config.rb', line 477</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_script_directory'>user_script_directory</span>
<span class='id identifier rubyid_config_directory'>config_directory</span> <span class='op'>+</span> <span class='const'><span class='object_link'><a href="#FileSep-constant" title="Msf::Config::FileSep (constant)">FileSep</a></span></span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>scripts</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:03:14 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>