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

3476 lines
83 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Msf::Session
&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::Session";
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 (S)</a> &raquo;
<span class='title'><span class='object_link'><a href="../Msf.html" title="Msf (module)">Msf</a></span></span>
&raquo;
<span class="title">Session</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Module: Msf::Session
</h1>
<div class="box_info">
<dl>
<dt>Includes:</dt>
<dd><span class='object_link'><a href="Framework/Offspring.html" title="Msf::Framework::Offspring (module)">Framework::Offspring</a></span></dd>
</dl>
<dl>
<dt>Included in:</dt>
<dd><span class='object_link'><a href="Session/Basic.html" title="Msf::Session::Basic (module)">Basic</a></span>, <span class='object_link'><a href="Sessions/Custom.html" title="Msf::Sessions::Custom (class)">Msf::Sessions::Custom</a></span>, <span class='object_link'><a href="Sessions/Meterpreter.html" title="Msf::Sessions::Meterpreter (class)">Msf::Sessions::Meterpreter</a></span>, <span class='object_link'><a href="Sessions/Pingback.html" title="Msf::Sessions::Pingback (class)">Msf::Sessions::Pingback</a></span>, <span class='object_link'><a href="Sessions/VncInject.html" title="Msf::Sessions::VncInject (class)">Msf::Sessions::VncInject</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/session.rb<span class="defines">,<br />
lib/msf/core/session/comm.rb,<br /> lib/msf/core/session/basic.rb,<br /> lib/msf/core/session/interactive.rb,<br /> lib/msf/core/session/provider/multi_command_shell.rb,<br /> lib/msf/core/session/provider/single_command_shell.rb,<br /> lib/msf/core/session/provider/multi_command_execution.rb,<br /> lib/msf/core/session/provider/single_command_execution.rb</span>
</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>The session class represents a post-exploitation, uh, session. Sessions can be written to, read from, and interacted with. The underlying medium on which they are backed is arbitrary. For instance, when an exploit is provided with a command shell, either through a network connection or locally, the sessions read and write operations end up reading from and writing to the shell that was spawned. The session object can be seen as a general means of interacting with various post-exploitation payloads through a common interface that is not necessarily tied to a network connection.</p>
</div>
</div>
<div class="tags">
</div><h2>Defined Under Namespace</h2>
<p class="children">
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Session/Basic.html" title="Msf::Session::Basic (module)">Basic</a></span>, <span class='object_link'><a href="Session/Comm.html" title="Msf::Session::Comm (module)">Comm</a></span>, <span class='object_link'><a href="Session/Interactive.html" title="Msf::Session::Interactive (module)">Interactive</a></span>, <span class='object_link'><a href="Session/Provider.html" title="Msf::Session::Provider (module)">Provider</a></span>
</p>
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#alive-instance_method" title="#alive (instance method)">#<strong>alive</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute alive.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#db_record-instance_method" title="#db_record (instance method)">#<strong>db_record</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>This sessions associated database record.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#exploit-instance_method" title="#exploit (instance method)">#<strong>exploit</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The actual exploit module instance that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#exploit_datastore-instance_method" title="#exploit_datastore (instance method)">#<strong>exploit_datastore</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The datastore of the exploit that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#exploit_task-instance_method" title="#exploit_task (instance method)">#<strong>exploit_task</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The task that ran the exploit that got the session (that swallowed the fly).</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#exploit_uuid-instance_method" title="#exploit_uuid (instance method)">#<strong>exploit_uuid</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The unique identifier of exploit that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#framework-instance_method" title="#framework (instance method)">#<strong>framework</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The framework instance that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#info-instance_method" title="#info (instance method)">#<strong>info</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The specific identified session info.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#machine_id-instance_method" title="#machine_id (instance method)">#<strong>machine_id</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The unique machine identifier for the host that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#payload_uuid-instance_method" title="#payload_uuid (instance method)">#<strong>payload_uuid</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The unique identifier of the payload that created this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#routes-instance_method" title="#routes (instance method)">#<strong>routes</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>An array of routes associated with this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sid-instance_method" title="#sid (instance method)">#<strong>sid</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The session unique identifier.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sname-instance_method" title="#sname (instance method)">#<strong>sname</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The session name.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#target_host-instance_method" title="#target_host (instance method)">#<strong>target_host</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The original target host address.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#target_port-instance_method" title="#target_port (instance method)">#<strong>target_port</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The original target port if applicable.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#username-instance_method" title="#username (instance method)">#<strong>username</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The associated username.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#uuid-instance_method" title="#uuid (instance method)">#<strong>uuid</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The unique identifier of this session.</p>
</div></span>
</li>
<li class="protected ">
<span class="summary_signature">
<a href="#via-instance_method" title="#via (instance method)">#<strong>via</strong> &#x21d2; Object </a>
</span>
<span class="note title protected">protected</span>
<span class="summary_desc"><div class='inline'>
<p>:nodoc:.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#workspace-instance_method" title="#workspace (instance method)">#<strong>workspace</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The associated workspace name.</p>
</div></span>
</li>
</ul>
<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="#type-class_method" title="type (class method)">.<strong>type</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Direct descendants Provider interfaces.</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="#alive%3F-instance_method" title="#alive? (instance method)">#<strong>alive?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#cleanup-instance_method" title="#cleanup (instance method)">#<strong>cleanup</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Perform session-specific cleanup.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#comm_channel-instance_method" title="#comm_channel (instance method)">#<strong>comm_channel</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#dead%3F-instance_method" title="#dead? (instance method)">#<strong>dead?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#desc-instance_method" title="#desc (instance method)">#<strong>desc</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the description of the session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#inspect-instance_method" title="#inspect (instance method)">#<strong>inspect</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Brief and to the point.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#interactive%3F-instance_method" title="#interactive? (instance method)">#<strong>interactive?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>By default, sessions are not interactive.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#kill-instance_method" title="#kill (instance method)">#<strong>kill</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Allow the user to terminate this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_file_name-instance_method" title="#log_file_name (instance method)">#<strong>log_file_name</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the suggested name of the log file for this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#log_source-instance_method" title="#log_source (instance method)">#<strong>log_source</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the log source that should be used for this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#name-instance_method" title="#name (instance method)">#<strong>name</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the sessions name if its been assigned one, otherwise the sid is returned.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#name=-instance_method" title="#name= (instance method)">#<strong>name=</strong>(name) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the sessions name.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#register%3F-instance_method" title="#register? (instance method)">#<strong>register?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Allow the session to skip registration.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_host-instance_method" title="#session_host (instance method)">#<strong>session_host</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the host associated with the session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_host=-instance_method" title="#session_host= (instance method)">#<strong>session_host=</strong>(v) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Override the host associated with this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_port-instance_method" title="#session_port (instance method)">#<strong>session_port</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the port associated with the session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_port=-instance_method" title="#session_port= (instance method)">#<strong>session_port=</strong>(v) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Override the host associated with this session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session_type-instance_method" title="#session_type (instance method)">#<strong>session_type</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get an arch/platform combination.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_from_exploit-instance_method" title="#set_from_exploit (instance method)">#<strong>set_from_exploit</strong>(m) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Configures via_payload, via_payload, workspace, target_host from an exploit instance.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_via-instance_method" title="#set_via (instance method)">#<strong>set_via</strong>(opts) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the vector through which this session was realized.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#tunnel_local-instance_method" title="#tunnel_local (instance method)">#<strong>tunnel_local</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the local side of the tunnel.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#tunnel_peer-instance_method" title="#tunnel_peer (instance method)">#<strong>tunnel_peer</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the peer side of the tunnel.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#tunnel_to_s-instance_method" title="#tunnel_to_s (instance method)">#<strong>tunnel_to_s</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns a pretty representation of the tunnel.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#type-instance_method" title="#type (instance method)">#<strong>type</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the type of session in use.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#via_exploit-instance_method" title="#via_exploit (instance method)">#<strong>via_exploit</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the exploit module name through which this session was created.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#via_payload-instance_method" title="#via_payload (instance method)">#<strong>via_payload</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the payload module name through which this session was created.</p>
</div></span>
</li>
</ul>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id="alive=-instance_method"></span>
<div class="method_details first">
<h3 class="signature first" id="alive-instance_method">
#<strong>alive</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute alive.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
291
292
293</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 291</span>
<span class='kw'>def</span> <span class='id identifier rubyid_alive'>alive</span>
<span class='ivar'>@alive</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="db_record=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="db_record-instance_method">
#<strong>db_record</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>This sessions associated database record</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
360
361
362</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 360</span>
<span class='kw'>def</span> <span class='id identifier rubyid_db_record'>db_record</span>
<span class='ivar'>@db_record</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="exploit=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="exploit-instance_method">
#<strong>exploit</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The actual exploit module instance that created this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
348
349
350</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 348</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exploit'>exploit</span>
<span class='ivar'>@exploit</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="exploit_datastore=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="exploit_datastore-instance_method">
#<strong>exploit_datastore</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The datastore of the exploit that created this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
320
321
322</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 320</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exploit_datastore'>exploit_datastore</span>
<span class='ivar'>@exploit_datastore</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="exploit_task=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="exploit_task-instance_method">
#<strong>exploit_task</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The task that ran the exploit that got the session (that swallowed the fly)</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
324
325
326</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 324</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exploit_task'>exploit_task</span>
<span class='ivar'>@exploit_task</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="exploit_uuid=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="exploit_uuid-instance_method">
#<strong>exploit_uuid</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The unique identifier of exploit that created this session</p>
</div>
</div>
<div class="tags">
</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/core/session.rb', line 336</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exploit_uuid'>exploit_uuid</span>
<span class='ivar'>@exploit_uuid</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="framework=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="framework-instance_method">
#<strong>framework</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The framework instance that created this session.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
296
297
298</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 296</span>
<span class='kw'>def</span> <span class='id identifier rubyid_framework'>framework</span>
<span class='ivar'>@framework</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="info=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="info-instance_method">
#<strong>info</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The specific identified session info</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
328
329
330</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 328</span>
<span class='kw'>def</span> <span class='id identifier rubyid_info'>info</span>
<span class='ivar'>@info</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="machine_id=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="machine_id-instance_method">
#<strong>machine_id</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The unique machine identifier for the host that created this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
344
345
346</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 344</span>
<span class='kw'>def</span> <span class='id identifier rubyid_machine_id'>machine_id</span>
<span class='ivar'>@machine_id</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="payload_uuid=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="payload_uuid-instance_method">
#<strong>payload_uuid</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The unique identifier of the payload that created this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
340
341
342</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 340</span>
<span class='kw'>def</span> <span class='id identifier rubyid_payload_uuid'>payload_uuid</span>
<span class='ivar'>@payload_uuid</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="routes=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="routes-instance_method">
#<strong>routes</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>An array of routes associated with this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
356
357
358</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 356</span>
<span class='kw'>def</span> <span class='id identifier rubyid_routes'>routes</span>
<span class='ivar'>@routes</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="sid=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="sid-instance_method">
#<strong>sid</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The session unique identifier.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
300
301
302</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 300</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sid'>sid</span>
<span class='ivar'>@sid</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="sname=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="sname-instance_method">
#<strong>sname</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The session name.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
304
305
306</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 304</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sname'>sname</span>
<span class='ivar'>@sname</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="target_host=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="target_host-instance_method">
#<strong>target_host</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The original target host address</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
312
313
314</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 312</span>
<span class='kw'>def</span> <span class='id identifier rubyid_target_host'>target_host</span>
<span class='ivar'>@target_host</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="target_port=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="target_port-instance_method">
#<strong>target_port</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The original target port if applicable</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
316
317
318</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 316</span>
<span class='kw'>def</span> <span class='id identifier rubyid_target_port'>target_port</span>
<span class='ivar'>@target_port</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="username=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="username-instance_method">
#<strong>username</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The associated username</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
352
353
354</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 352</span>
<span class='kw'>def</span> <span class='id identifier rubyid_username'>username</span>
<span class='ivar'>@username</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="uuid=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="uuid-instance_method">
#<strong>uuid</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The unique identifier of this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
332
333
334</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 332</span>
<span class='kw'>def</span> <span class='id identifier rubyid_uuid'>uuid</span>
<span class='ivar'>@uuid</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="via=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="via-instance_method">
#<strong>via</strong> &#x21d2; <tt>Object</tt> <span class="extras">(protected)</span>
</h3><div class="docstring">
<div class="discussion">
<p>:nodoc:</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
363
364
365</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 363</span>
<span class='kw'>def</span> <span class='id identifier rubyid_via'>via</span>
<span class='ivar'>@via</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="workspace=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="workspace-instance_method">
#<strong>workspace</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The associated workspace name</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/core/session.rb', line 308</span>
<span class='kw'>def</span> <span class='id identifier rubyid_workspace'>workspace</span>
<span class='ivar'>@workspace</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="type-class_method">
.<strong>type</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Direct descendants Provider interfaces</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
36
37
38</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 36</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span>
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unknown</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>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="alive?-instance_method">
#<strong>alive?</strong> &#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">
272
273
274</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 272</span>
<span class='kw'>def</span> <span class='id identifier rubyid_alive?'>alive?</span>
<span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_alive'>alive</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="cleanup-instance_method">
#<strong>cleanup</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Perform session-specific cleanup.</p>
<p>NOTE: session classes overriding this method must call super! Also must tolerate being called multiple times.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
236
237
238
239
240
241
242
243
244</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 236</span>
<span class='kw'>def</span> <span class='id identifier rubyid_cleanup'>cleanup</span>
<span class='kw'>if</span> <span class='id identifier rubyid_db_record'>db_record</span> <span class='kw'>and</span> <span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_active'>active</span>
<span class='op'>::</span><span class='const'><span class='object_link'><a href="../ApplicationRecord.html" title="ApplicationRecord (class)">ApplicationRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_connection_pool'>connection_pool</span><span class='period'>.</span><span class='id identifier rubyid_with_connection'>with_connection</span> <span class='kw'>do</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span><span class='period'>.</span><span class='id identifier rubyid_update_session'>update_session</span><span class='lparen'>(</span><span class='label'>id:</span> <span class='id identifier rubyid_db_record'>db_record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>closed_at:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span><span class='comma'>,</span> <span class='label'>close_reason:</span> <span class='id identifier rubyid_db_record'>db_record</span><span class='period'>.</span><span class='id identifier rubyid_close_reason'>close_reason</span><span class='rparen'>)</span>
<span class='kw'>rescue</span> <span class='const'>ActiveRecord</span><span class='op'>::</span><span class='const'>RecordNotFound</span>
<span class='kw'>nil</span> <span class='comment'># this will fail if the workspace was deleted before the session was closed, see #18561
</span> <span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="comm_channel-instance_method">
#<strong>comm_channel</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
86
87</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 86</span>
<span class='kw'>def</span> <span class='id identifier rubyid_comm_channel'>comm_channel</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="dead?-instance_method">
#<strong>dead?</strong> &#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">
268
269
270</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 268</span>
<span class='kw'>def</span> <span class='id identifier rubyid_dead?'>dead?</span>
<span class='lparen'>(</span><span class='kw'>not</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_alive'>alive</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="desc-instance_method">
#<strong>desc</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the description of the session.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
65
66</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 65</span>
<span class='kw'>def</span> <span class='id identifier rubyid_desc'>desc</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="initialize-instance_method">
#<strong>initialize</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
27
28
29
30
31
32</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 27</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_alive'>alive</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_uuid'>uuid</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Rex.html" title="Rex (module)">Rex</a></span></span><span class='op'>::</span><span class='const'>Text</span><span class='period'>.</span><span class='id identifier rubyid_rand_text_alphanumeric'>rand_text_alphanumeric</span><span class='lparen'>(</span><span class='int'>8</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span>
<span class='ivar'>@routes</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RouteArray.html" title="RouteArray (class)">RouteArray</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../RouteArray.html#initialize-instance_method" title="RouteArray#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
<span class='comment'>#self.routes = []
</span><span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="inspect-instance_method">
#<strong>inspect</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Brief and to the point</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
58
59
60</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 58</span>
<span class='kw'>def</span> <span class='id identifier rubyid_inspect'>inspect</span>
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>#&lt;Session:</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span><span class='embexpr_end'>}</span><span class='tstring_content'> (</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_session_host'>session_host</span><span class='embexpr_end'>}</span><span class='tstring_content'>) </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='kw'>nil</span><span class='embexpr_end'>}</span><span class='tstring_content'>&gt;</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># &quot; Fixes highlighting
</span><span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="interactive?-instance_method">
#<strong>interactive?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>By default, sessions are not interactive.</p>
</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">
249
250
251</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 249</span>
<span class='kw'>def</span> <span class='id identifier rubyid_interactive?'>interactive?</span>
<span class='kw'>false</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="kill-instance_method">
#<strong>kill</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Allow the user to terminate this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
264
265
266</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 264</span>
<span class='kw'>def</span> <span class='id identifier rubyid_kill'>kill</span>
<span class='id identifier rubyid_framework'>framework</span><span class='period'>.</span><span class='id identifier rubyid_sessions'>sessions</span><span class='period'>.</span><span class='id identifier rubyid_deregister'>deregister</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_register?'>register?</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="log_file_name-instance_method">
#<strong>log_file_name</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the suggested name of the log file for this session.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
155
156
157
158
159
160
161
162
163</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 155</span>
<span class='kw'>def</span> <span class='id identifier rubyid_log_file_name'>log_file_name</span>
<span class='id identifier rubyid_dt'>dt</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span>
<span class='id identifier rubyid_dstr'>dstr</span> <span class='op'>=</span> <span class='id identifier rubyid_sprintf'>sprintf</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>%.4d%.2d%.2d</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_dt'>dt</span><span class='period'>.</span><span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_dt'>dt</span><span class='period'>.</span><span class='id identifier rubyid_mon'>mon</span><span class='comma'>,</span> <span class='id identifier rubyid_dt'>dt</span><span class='period'>.</span><span class='id identifier rubyid_mday'>mday</span><span class='rparen'>)</span>
<span class='id identifier rubyid_rhost'>rhost</span> <span class='op'>=</span> <span class='id identifier rubyid_session_host'>session_host</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>:</span><span class='tstring_end'>&#39;</span></span><span class='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='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\W+</span><span class='regexp_end'>/</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='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dstr'>dstr</span><span class='embexpr_end'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sname'>sname</span><span class='embexpr_end'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rhost'>rhost</span><span class='embexpr_end'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</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="log_source-instance_method">
#<strong>log_source</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the log source that should be used for this session.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
168
169
170</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 168</span>
<span class='kw'>def</span> <span class='id identifier rubyid_log_source'>log_source</span>
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>session_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</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="name-instance_method">
#<strong>name</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the sessions name if its been assigned one, otherwise the sid is returned.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
44
45
46</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 44</span>
<span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>return</span> <span class='id identifier rubyid_sname'>sname</span> <span class='op'>||</span> <span class='id identifier rubyid_sid'>sid</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="name=-instance_method">
#<strong>name=</strong>(name) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sets the sessions name.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
51
52
53</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 51</span>
<span class='kw'>def</span> <span class='id identifier rubyid_name='>name=</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_sname'>sname</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="register?-instance_method">
#<strong>register?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Allow the session to skip registration</p>
</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">
257
258
259</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 257</span>
<span class='kw'>def</span> <span class='id identifier rubyid_register?'>register?</span>
<span class='kw'>true</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_host-instance_method">
#<strong>session_host</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the host associated with the session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
92
93
94
95
96
97
98
99
100
101
102
103
104
105</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 92</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_host'>session_host</span>
<span class='comment'># Prefer the overridden session host or target_host
</span> <span class='id identifier rubyid_host'>host</span> <span class='op'>=</span> <span class='ivar'>@session_host</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_target_host'>target_host</span>
<span class='kw'>return</span> <span class='id identifier rubyid_host'>host</span> <span class='kw'>if</span> <span class='id identifier rubyid_host'>host</span>
<span class='comment'># Fallback to the tunnel_peer (contains port)
</span> <span class='id identifier rubyid_peer'>peer</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span>
<span class='kw'>return</span> <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_peer'>peer</span>
<span class='comment'># Pop off the trailing port number
</span> <span class='id identifier rubyid_bits'>bits</span> <span class='op'>=</span> <span class='id identifier rubyid_peer'>peer</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>:</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_bits'>bits</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
<span class='id identifier rubyid_bits'>bits</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>:</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_host=-instance_method">
#<strong>session_host=</strong>(v) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Override the host associated with this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
110
111
112</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 110</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_host='>session_host=</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span>
<span class='ivar'>@session_host</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_port-instance_method">
#<strong>session_port</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the port associated with the session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
117
118
119
120
121
122
123
124
125
126
127
128</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 117</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_port'>session_port</span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='ivar'>@session_port</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_target_port'>target_port</span>
<span class='kw'>return</span> <span class='id identifier rubyid_port'>port</span> <span class='kw'>if</span> <span class='id identifier rubyid_port'>port</span>
<span class='comment'># Fallback to the tunnel_peer (contains port)
</span> <span class='id identifier rubyid_peer'>peer</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span>
<span class='kw'>return</span> <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_peer'>peer</span>
<span class='comment'># Pop off the trailing port number
</span> <span class='id identifier rubyid_bits'>bits</span> <span class='op'>=</span> <span class='id identifier rubyid_peer'>peer</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>:</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_port'>port</span> <span class='op'>=</span> <span class='id identifier rubyid_bits'>bits</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
<span class='id identifier rubyid_port'>port</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_port=-instance_method">
#<strong>session_port=</strong>(v) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Override the host associated with this session</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
133
134
135</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 133</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_port='>session_port=</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span>
<span class='ivar'>@session_port</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session_type-instance_method">
#<strong>session_type</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get an arch/platform combination</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
279
280
281
282
283
284
285
286
287
288</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 279</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session_type'>session_type</span>
<span class='comment'># avoid unnecessary slash separator
</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_arch'>arch</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_separator'>separator</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>/</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>else</span>
<span class='id identifier rubyid_separator'>separator</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>
<span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_arch'>arch</span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_separator'>separator</span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='embexpr_end'>}</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="set_from_exploit-instance_method">
#<strong>set_from_exploit</strong>(m) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Configures via_payload, via_payload, workspace, target_host from an exploit instance. Store references from and to the exploit module.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 189</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_from_exploit'>set_from_exploit</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='rparen'>)</span>
<span class='id identifier rubyid_target_host'>target_host</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_target_host'>target_host</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span>
<span class='comment'># only propagate the target_host value if it&#39;s exactly 1 host
</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_rw'>rw</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Rex.html" title="Rex (module)">Rex</a></span></span><span class='op'>::</span><span class='const'>Socket</span><span class='op'>::</span><span class='const'>RangeWalker</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_target_host'>target_host</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>1</span>
<span class='id identifier rubyid_target_host'>target_host</span> <span class='op'>=</span> <span class='id identifier rubyid_rw'>rw</span><span class='period'>.</span><span class='id identifier rubyid_next_ip'>next_ip</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Exploit</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_fullname'>fullname</span> <span class='rbrace'>}</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Payload</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>payload/</span><span class='tstring_end'>&#39;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>PAYLOAD</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>PAYLOAD</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_target_host'>target_host</span> <span class='op'>=</span> <span class='id identifier rubyid_target_host'>target_host</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_target_port'>target_port</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_target_port'>target_port</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_target_port'>target_port</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>!=</span> <span class='int'>0</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_workspace'>workspace</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_username'>username</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_owner'>owner</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exploit_datastore'>exploit_datastore</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_datastore'>datastore</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_input'>user_input</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_user_input'>user_input</span> <span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_user_input'>user_input</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_user_output'>user_output</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_user_output'>user_output</span> <span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_user_output'>user_output</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exploit_uuid'>exploit_uuid</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_uuid'>uuid</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exploit'>exploit</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span>
<span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:task</span><span class='rbracket'>]</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exploit_task'>exploit_task</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:task</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_via-instance_method">
#<strong>set_via</strong>(opts) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sets the vector through which this session was realized.</p>
</div>
</div>
<div class="tags">
</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/core/session.rb', line 181</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_via'>set_via</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_via'>via</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="tunnel_local-instance_method">
#<strong>tunnel_local</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the local side of the tunnel.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
77
78</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 77</span>
<span class='kw'>def</span> <span class='id identifier rubyid_tunnel_local'>tunnel_local</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="tunnel_peer-instance_method">
#<strong>tunnel_peer</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the peer side of the tunnel.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
83
84</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 83</span>
<span class='kw'>def</span> <span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="tunnel_to_s-instance_method">
#<strong>tunnel_to_s</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a pretty representation of the tunnel.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
140
141
142
143
144</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 140</span>
<span class='kw'>def</span> <span class='id identifier rubyid_tunnel_to_s'>tunnel_to_s</span>
<span class='id identifier rubyid_tunnel_str'>tunnel_str</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tunnel_local'>tunnel_local</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>??</span><span class='tstring_end'>&#39;</span></span><span class='embexpr_end'>}</span><span class='tstring_content'> -&gt; </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tunnel_peer'>tunnel_peer</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>??</span><span class='tstring_end'>&#39;</span></span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_tunnel_str'>tunnel_str</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_comm_channel'>comm_channel</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_comm_channel'>comm_channel</span>
<span class='id identifier rubyid_tunnel_str'>tunnel_str</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="type-instance_method">
#<strong>type</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the type of session in use.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
71
72</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 71</span>
<span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="via_exploit-instance_method">
#<strong>via_exploit</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the exploit module name through which this session was created.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
218
219
220</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 218</span>
<span class='kw'>def</span> <span class='id identifier rubyid_via_exploit'>via_exploit</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Exploit</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="via_payload-instance_method">
#<strong>via_payload</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the payload module name through which this session was created.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
226
227
228</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/session.rb', line 226</span>
<span class='kw'>def</span> <span class='id identifier rubyid_via_payload'>via_payload</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Payload</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_via'>via</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:01:01 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>