Files
metasploit-gs/api/Metasploit/Framework/CredentialCollection.html
T

2076 lines
77 KiB
HTML
Raw Normal View History

2026-05-08 17:08:43 +00:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Metasploit::Framework::CredentialCollection
&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 = "Metasploit::Framework::CredentialCollection";
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="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span>
&raquo;
<span class="title">CredentialCollection</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: Metasploit::Framework::CredentialCollection
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName"><span class='object_link'><a href="PrivateCredentialCollection.html" title="Metasploit::Framework::PrivateCredentialCollection (class)">PrivateCredentialCollection</a></span></span>
<ul class="fullTree">
<li>Object</li>
<li class="next"><span class='object_link'><a href="PrivateCredentialCollection.html" title="Metasploit::Framework::PrivateCredentialCollection (class)">PrivateCredentialCollection</a></span></li>
<li class="next">Metasploit::Framework::CredentialCollection</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/metasploit/framework/credential_collection.rb</dd>
</dl>
</div>
<div id="subclasses">
<h2>Direct Known Subclasses</h2>
<p class="children"><span class='object_link'><a href="KeyCollection.html" title="Metasploit::Framework::KeyCollection (class)">KeyCollection</a></span></p>
</div>
<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="#additional_publics-instance_method" title="#additional_publics (instance method)">#<strong>additional_publics</strong> &#x21d2; Array&lt;String&gt; </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Additional public values that should be tried.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#anonymous_login-instance_method" title="#anonymous_login (instance method)">#<strong>anonymous_login</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Whether to attempt an anonymous login (blank user/pass).</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#password_spray-instance_method" title="#password_spray (instance method)">#<strong>password_spray</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Whether password spray is enabled.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_as_pass-instance_method" title="#user_as_pass (instance method)">#<strong>user_as_pass</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Whether each username should be tried as a password for that user.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#user_file-instance_method" title="#user_file (instance method)">#<strong>user_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Path to a file containing usernames, one per line.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#username-instance_method" title="#username (instance method)">#<strong>username</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>The username that should be tried.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#userpass_file-instance_method" title="#userpass_file (instance method)">#<strong>userpass_file</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Path to a file containing usernames and passwords separated by a space, one pair per line.</p>
</div></span>
</li>
</ul>
<h3 class="inherited">Attributes inherited from <span class='object_link'><a href="PrivateCredentialCollection.html" title="Metasploit::Framework::PrivateCredentialCollection (class)">PrivateCredentialCollection</a></span></h3>
<p class="inherited"><span class='object_link'><a href="PrivateCredentialCollection.html#additional_privates-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#additional_privates (method)">#additional_privates</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#blank_passwords-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#blank_passwords (method)">#blank_passwords</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#filter-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#filter (method)">#filter</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#nil_passwords-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#nil_passwords (method)">#nil_passwords</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#pass_file-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#pass_file (method)">#pass_file</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#password-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#password (method)">#password</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#prepended_creds-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#prepended_creds (method)">#prepended_creds</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#realm-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#realm (method)">#realm</a></span></p>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#add_public-instance_method" title="#add_public (instance method)">#<strong>add_public</strong>(public_str = &#39;&#39;) &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Adds a string as an additional public credential to be combined in the collection.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_filtered-instance_method" title="#each_filtered (instance method)">#<strong>each_filtered</strong> {|credential| ... } &#x21d2; void </a>
(also: #each)
</span>
<span class="summary_desc"><div class='inline'>
<p>Combines all the provided credential sources into a stream of <span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span> objects, yielding them one at a time.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_password-instance_method" title="#each_password (instance method)">#<strong>each_password</strong>(user) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterates over all possible passwords.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_unfiltered-instance_method" title="#each_unfiltered (instance method)">#<strong>each_unfiltered</strong>(&amp;block) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_unfiltered_password_first-instance_method" title="#each_unfiltered_password_first (instance method)">#<strong>each_unfiltered_password_first</strong> {|credential| ... } &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>When password spraying is enabled, do first passwords then usernames i.e.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_unfiltered_username_first-instance_method" title="#each_unfiltered_username_first (instance method)">#<strong>each_unfiltered_username_first</strong> {|credential| ... } &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>When password spraying is not enabled, do first usernames then passwords i.e.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_user_pass_from_userpass_file-instance_method" title="#each_user_pass_from_userpass_file (instance method)">#<strong>each_user_pass_from_userpass_file</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterates on userpass file if present.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_username-instance_method" title="#each_username (instance method)">#<strong>each_username</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterates over all possible usernames.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#empty%3F-instance_method" title="#empty? (instance method)">#<strong>empty?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns true when #each will have no results to iterate.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#has_privates%3F-instance_method" title="#has_privates? (instance method)">#<strong>has_privates?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns true when there are any private values set.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#has_users%3F-instance_method" title="#has_users? (instance method)">#<strong>has_users?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns true when there are any user values set.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(opts = {}) &#x21d2; CredentialCollection </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>A new instance of CredentialCollection.</p>
</div></span>
</li>
</ul>
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="PrivateCredentialCollection.html" title="Metasploit::Framework::PrivateCredentialCollection (class)">PrivateCredentialCollection</a></span></h3>
<p class="inherited"><span class='object_link'><a href="PrivateCredentialCollection.html#add_private-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#add_private (method)">#add_private</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#filtered%3F-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#filtered? (method)">#filtered?</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#prepend_cred-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#prepend_cred (method)">#prepend_cred</a></span>, <span class='object_link'><a href="PrivateCredentialCollection.html#private_type-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#private_type (method)">#private_type</a></span></p>
<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>(opts = {}) &#x21d2; <tt><span class='object_link'><a href="" title="Metasploit::Framework::CredentialCollection (class)">CredentialCollection</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a new instance of CredentialCollection.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>opts</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>a customizable set of options</p>
</div>
</li>
</ul>
<p class="tag_title">Options Hash (<tt>opts</tt>):</p>
<ul class="option">
<li>
<span class="name">:blank_passwords</span>
<span class="type">(<tt>Boolean</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="PrivateCredentialCollection.html#blank_passwords-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#blank_passwords (method)">PrivateCredentialCollection#blank_passwords</a></span></p>
</div>
</li>
<li>
<span class="name">:pass_file</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="PrivateCredentialCollection.html#pass_file-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#pass_file (method)">PrivateCredentialCollection#pass_file</a></span></p>
</div>
</li>
<li>
<span class="name">:password</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="PrivateCredentialCollection.html#password-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#password (method)">PrivateCredentialCollection#password</a></span></p>
</div>
</li>
<li>
<span class="name">:prepended_creds</span>
<span class="type">(<tt>Array&lt;<span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span>&gt;</tt>)</span>
<span class="default">
&mdash; default:
<tt>[]</tt>
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="PrivateCredentialCollection.html#prepended_creds-instance_method" title="Metasploit::Framework::PrivateCredentialCollection#prepended_creds (method)">PrivateCredentialCollection#prepended_creds</a></span></p>
</div>
</li>
<li>
<span class="name">:user_as_pass</span>
<span class="type">(<tt>Boolean</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="#user_as_pass-instance_method" title="Metasploit::Framework::CredentialCollection#user_as_pass (method)">#user_as_pass</a></span></p>
</div>
</li>
<li>
<span class="name">:user_file</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="#user_file-instance_method" title="Metasploit::Framework::CredentialCollection#user_file (method)">#user_file</a></span></p>
</div>
</li>
<li>
<span class="name">:username</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="#username-instance_method" title="Metasploit::Framework::CredentialCollection#username (method)">#username</a></span></p>
</div>
</li>
<li>
<span class="name">:userpass_file</span>
<span class="type">(<tt>String</tt>)</span>
<span class="default">
</span>
&mdash; <div class='inline'>
<p>See <span class='object_link'><a href="#userpass_file-instance_method" title="Metasploit::Framework::CredentialCollection#userpass_file (method)">#userpass_file</a></span></p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
223
224
225
226</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 223</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='kw'>super</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_additional_publics'>additional_publics</span> <span class='op'>||=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id="additional_publics=-instance_method"></span>
<div class="method_details first">
<h3 class="signature first" id="additional_publics-instance_method">
#<strong>additional_publics</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Additional public values that should be tried</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
187
188
189</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 187</span>
<span class='kw'>def</span> <span class='id identifier rubyid_additional_publics'>additional_publics</span>
<span class='ivar'>@additional_publics</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="anonymous_login=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="anonymous_login-instance_method">
#<strong>anonymous_login</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Whether to attempt an anonymous login (blank user/pass)</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">
213
214
215</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 213</span>
<span class='kw'>def</span> <span class='id identifier rubyid_anonymous_login'>anonymous_login</span>
<span class='ivar'>@anonymous_login</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="password_spray=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="password_spray-instance_method">
#<strong>password_spray</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Whether password spray is enabled. When true, each password is tried against each username first. Otherwise the default bruteforce logic will attempt all passwords against the first user, before continuing to the next user</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">
181
182
183</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 181</span>
<span class='kw'>def</span> <span class='id identifier rubyid_password_spray'>password_spray</span>
<span class='ivar'>@password_spray</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="user_as_pass=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="user_as_pass-instance_method">
#<strong>user_as_pass</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Whether each username should be tried as a password for that user</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">
192
193
194</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 192</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_as_pass'>user_as_pass</span>
<span class='ivar'>@user_as_pass</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="user_file=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="user_file-instance_method">
#<strong>user_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Path to a file containing usernames, one per line</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
197
198
199</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 197</span>
<span class='kw'>def</span> <span class='id identifier rubyid_user_file'>user_file</span>
<span class='ivar'>@user_file</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>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>The username that should be tried</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
202
203
204</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 202</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="userpass_file=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="userpass_file-instance_method">
#<strong>userpass_file</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Path to a file containing usernames and passwords separated by a space, one pair per line</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
208
209
210</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 208</span>
<span class='kw'>def</span> <span class='id identifier rubyid_userpass_file'>userpass_file</span>
<span class='ivar'>@userpass_file</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="add_public-instance_method">
#<strong>add_public</strong>(public_str = &#39;&#39;) &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Adds a string as an additional public credential to be combined in the collection.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>public_str</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>&#39;&#39;</tt>)</em>
&mdash;
<div class='inline'>
<p>The string to use as a public credential</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
233
234
235</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 233</span>
<span class='kw'>def</span> <span class='id identifier rubyid_add_public'>add_public</span><span class='lparen'>(</span><span class='id identifier rubyid_public_str'>public_str</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_additional_publics'>additional_publics</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_public_str'>public_str</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each_filtered-instance_method">
#<strong>each_filtered</strong> {|credential| ... } &#x21d2; <tt>void</tt>
<span class="aliases">Also known as:
<span class="names"><span id='each-instance_method'>each</span></span>
</span>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Combines all the provided credential sources into a stream of <span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Metasploit::Framework::Credential</a></span> objects, yielding them one at a time</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Yield Parameters:</p>
<ul class="yieldparam">
<li>
<span class='name'>credential</span>
<span class='type'>(<tt><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Metasploit::Framework::Credential</a></span></tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
242
243
244
245
246
247
248</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 242</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_filtered'>each_filtered</span>
<span class='id identifier rubyid_each_unfiltered'>each_unfiltered</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_credential'>credential</span><span class='op'>|</span>
<span class='kw'>next</span> <span class='kw'>unless</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_filter'>filter</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_filter'>filter</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_credential'>credential</span><span class='rparen'>)</span>
<span class='kw'>yield</span> <span class='id identifier rubyid_credential'>credential</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each_password-instance_method">
#<strong>each_password</strong>(user) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Iterates over all possible passwords</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 388</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_password'>each_password</span><span class='lparen'>(</span><span class='id identifier rubyid_user'>user</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_nil_passwords'>nil_passwords</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:password</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_password'>password</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_user_as_pass'>user_as_pass</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='symbol'>:password</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_blank_passwords'>blank_passwords</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:password</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_pass_file'>pass_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_pass_file'>pass_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>r:binary</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_pass_fd'>pass_fd</span><span class='op'>|</span>
<span class='id identifier rubyid_pass_fd'>pass_fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='op'>|</span>
<span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='period'>.</span><span class='id identifier rubyid_chomp!'>chomp!</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='rparen'>)</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_pass_fd'>pass_fd</span><span class='period'>.</span><span class='id identifier rubyid_seek'>seek</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_additional_privates'>additional_privates</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_add_private'>add_private</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='id identifier rubyid_add_private'>add_private</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_add_private'>add_private</span><span class='rparen'>)</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="each_unfiltered-instance_method">
#<strong>each_unfiltered</strong>(&amp;block) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
252
253
254
255
256
257
258
259
260
261
262
263
264</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 252</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_unfiltered'>each_unfiltered</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='id identifier rubyid_prepended_creds'>prepended_creds</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='kw'>yield</span> <span class='id identifier rubyid_c'>c</span> <span class='rbrace'>}</span>
<span class='kw'>if</span> <span class='id identifier rubyid_anonymous_login'>anonymous_login</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>private:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='symbol'>:password</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_password_spray'>password_spray</span>
<span class='id identifier rubyid_each_unfiltered_password_first'>each_unfiltered_password_first</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_each_unfiltered_username_first'>each_unfiltered_username_first</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each_unfiltered_password_first-instance_method">
#<strong>each_unfiltered_password_first</strong> {|credential| ... } &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>When password spraying is enabled, do first passwords then usernames</p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span>
<span class='id identifier rubyid_username1'>username1</span><span class='symbol'>:password1</span>
<span class='id identifier rubyid_username2'>username2</span><span class='symbol'>:password1</span>
<span class='id identifier rubyid_username3'>username3</span><span class='symbol'>:password1</span>
</code></pre>
<p></p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_username1'>username1</span><span class='symbol'>:password2</span>
<span class='id identifier rubyid_username2'>username2</span><span class='symbol'>:password2</span>
<span class='id identifier rubyid_username3'>username3</span><span class='symbol'>:password2</span>
</code></pre>
<p></p>
</div>
</div>
<div class="tags">
<p class="tag_title">Yield Parameters:</p>
<ul class="yieldparam">
<li>
<span class='name'>credential</span>
<span class='type'>(<tt><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Metasploit::Framework::Credential</a></span></tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 278</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_unfiltered_password_first'>each_unfiltered_password_first</span>
<span class='kw'>if</span> <span class='id identifier rubyid_nil_passwords'>nil_passwords</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='symbol'>:password</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_password'>password</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_user_as_pass'>user_as_pass</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='symbol'>:password</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_blank_passwords'>blank_passwords</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='symbol'>:password</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_pass_file'>pass_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_pass_file'>pass_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>r:binary</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_pass_fd'>pass_fd</span><span class='op'>|</span>
<span class='id identifier rubyid_pass_fd'>pass_fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='op'>|</span>
<span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='period'>.</span><span class='id identifier rubyid_chomp!'>chomp!</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_pass_from_file'>pass_from_file</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_each_user_pass_from_userpass_file'>each_user_pass_from_userpass_file</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='id identifier rubyid_pass'>pass</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_pass'>pass</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_pass'>pass</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_additional_privates'>additional_privates</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_add_private'>add_private</span><span class='op'>|</span>
<span class='id identifier rubyid_each_username'>each_username</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_username'>username</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_add_private'>add_private</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_add_private'>add_private</span><span class='rparen'>)</span><span class='rparen'>)</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="each_unfiltered_username_first-instance_method">
#<strong>each_unfiltered_username_first</strong> {|credential| ... } &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>When password spraying is not enabled, do first usernames then passwords</p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span>
<span class='id identifier rubyid_username1'>username1</span><span class='symbol'>:password1</span>
<span class='id identifier rubyid_username1'>username1</span><span class='symbol'>:password2</span>
<span class='id identifier rubyid_username1'>username1</span><span class='symbol'>:password3</span>
</code></pre>
<p></p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_username2'>username2</span><span class='symbol'>:password1</span>
<span class='id identifier rubyid_username2'>username2</span><span class='symbol'>:password2</span>
<span class='id identifier rubyid_username2'>username2</span><span class='symbol'>:password3</span>
</code></pre>
</div>
</div>
<div class="tags">
<p class="tag_title">Yield Parameters:</p>
<ul class="yieldparam">
<li>
<span class='name'>credential</span>
<span class='type'>(<tt><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Metasploit::Framework::Credential</a></span></tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 358</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_unfiltered_username_first'>each_unfiltered_username_first</span>
<span class='kw'>if</span> <span class='id identifier rubyid_username'>username</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='id identifier rubyid_each_password'>each_password</span><span class='lparen'>(</span><span class='id identifier rubyid_username'>username</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_user_file'>user_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_user_file'>user_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>r:binary</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user_fd'>user_fd</span><span class='op'>|</span>
<span class='id identifier rubyid_user_fd'>user_fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='op'>|</span>
<span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='period'>.</span><span class='id identifier rubyid_chomp!'>chomp!</span>
<span class='id identifier rubyid_each_password'>each_password</span><span class='lparen'>(</span><span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_each_user_pass_from_userpass_file'>each_user_pass_from_userpass_file</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='id identifier rubyid_pass'>pass</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_pass'>pass</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='lparen'>(</span><span class='id identifier rubyid_pass'>pass</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_additional_publics'>additional_publics</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_add_public'>add_public</span><span class='op'>|</span>
<span class='id identifier rubyid_each_password'>each_password</span><span class='lparen'>(</span><span class='id identifier rubyid_add_public'>add_public</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='const'><span class='object_link'><a href="../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Credential.html" title="Metasploit::Framework::Credential (class)">Credential</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Credential.html#initialize-instance_method" title="Metasploit::Framework::Credential#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>public:</span> <span class='id identifier rubyid_add_public'>add_public</span><span class='comma'>,</span> <span class='label'>private:</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='label'>realm:</span> <span class='id identifier rubyid_realm'>realm</span><span class='comma'>,</span> <span class='label'>private_type:</span> <span class='id identifier rubyid_private_type'>private_type</span><span class='rparen'>)</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="each_user_pass_from_userpass_file-instance_method">
#<strong>each_user_pass_from_userpass_file</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Iterates on userpass file if present</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
421
422
423
424
425
426
427
428
429
430
431
432</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 421</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_user_pass_from_userpass_file'>each_user_pass_from_userpass_file</span>
<span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_userpass_file'>userpass_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_userpass_file'>userpass_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>r:binary</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_userpass_fd'>userpass_fd</span><span class='op'>|</span>
<span class='id identifier rubyid_userpass_fd'>userpass_fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span>
<span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='id identifier rubyid_pass'>pass</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
<span class='id identifier rubyid_pass'>pass</span> <span class='op'>=</span> <span class='id identifier rubyid_pass'>pass</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span> <span class='op'>:</span> <span class='id identifier rubyid_pass'>pass</span><span class='period'>.</span><span class='id identifier rubyid_chomp!'>chomp!</span>
<span class='kw'>yield</span> <span class='lbracket'>[</span><span class='id identifier rubyid_user'>user</span><span class='comma'>,</span> <span class='id identifier rubyid_pass'>pass</span><span class='rbracket'>]</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="each_username-instance_method">
#<strong>each_username</strong> &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Iterates over all possible usernames</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 327</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_username'>each_username</span>
<span class='kw'>if</span> <span class='id identifier rubyid_username'>username</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='kw'>yield</span> <span class='id identifier rubyid_username'>username</span>
<span class='kw'>end</span>
<span class='kw'>if</span> <span class='id identifier rubyid_user_file'>user_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_user_file'>user_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>r:binary</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user_fd'>user_fd</span><span class='op'>|</span>
<span class='id identifier rubyid_user_fd'>user_fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='op'>|</span>
<span class='id identifier rubyid_user_from_file'>user_from_file</span><span class='period'>.</span><span class='id identifier rubyid_chomp!'>chomp!</span>
<span class='kw'>yield</span> <span class='id identifier rubyid_user_from_file'>user_from_file</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_user_fd'>user_fd</span><span class='period'>.</span><span class='id identifier rubyid_seek'>seek</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_additional_publics'>additional_publics</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_add_public'>add_public</span><span class='op'>|</span>
<span class='kw'>yield</span> <span class='id identifier rubyid_add_public'>add_public</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="empty?-instance_method">
#<strong>empty?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns true when #each will have no results to iterate</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">
437
438
439</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 437</span>
<span class='kw'>def</span> <span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_prepended_creds'>prepended_creds</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='id identifier rubyid_has_users?'>has_users?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_anonymous_login'>anonymous_login</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_has_users?'>has_users?</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_has_privates?'>has_privates?</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="has_privates?-instance_method">
#<strong>has_privates?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns true when there are any private values set</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">
451
452
453</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 451</span>
<span class='kw'>def</span> <span class='id identifier rubyid_has_privates?'>has_privates?</span>
<span class='kw'>super</span> <span class='op'>||</span> <span class='id identifier rubyid_userpass_file'>userpass_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>||</span> <span class='id identifier rubyid_user_as_pass'>user_as_pass</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="has_users?-instance_method">
#<strong>has_users?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns true when there are any user values set</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">
444
445
446</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/credential_collection.rb', line 444</span>
<span class='kw'>def</span> <span class='id identifier rubyid_has_users?'>has_users?</span>
<span class='id identifier rubyid_username'>username</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>||</span> <span class='id identifier rubyid_user_file'>user_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>||</span> <span class='id identifier rubyid_userpass_file'>userpass_file</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_additional_publics'>additional_publics</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:04: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>