3898 lines
126 KiB
HTML
3898 lines
126 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>
|
||
Class: Metasploit::Framework::PasswordCracker::Cracker
|
||
|
||
— 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::PasswordCracker::Cracker";
|
||
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> »
|
||
<span class='title'><span class='object_link'><a href="../../../Metasploit.html" title="Metasploit (module)">Metasploit</a></span></span> » <span class='title'><span class='object_link'><a href="../../Framework.html" title="Metasploit::Framework (module)">Framework</a></span></span> » <span class='title'><span class='object_link'><a href="../PasswordCracker.html" title="Metasploit::Framework::PasswordCracker (module)">PasswordCracker</a></span></span>
|
||
»
|
||
<span class="title">Cracker</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::PasswordCracker::Cracker
|
||
|
||
|
||
|
||
</h1>
|
||
<div class="box_info">
|
||
|
||
<dl>
|
||
<dt>Inherits:</dt>
|
||
<dd>
|
||
<span class="inheritName">Object</span>
|
||
|
||
<ul class="fullTree">
|
||
<li>Object</li>
|
||
|
||
<li class="next">Metasploit::Framework::PasswordCracker::Cracker</li>
|
||
|
||
</ul>
|
||
<a href="#" class="inheritanceTree">show all</a>
|
||
|
||
</dd>
|
||
</dl>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<dl>
|
||
<dt>Includes:</dt>
|
||
<dd>ActiveModel::Validations</dd>
|
||
</dl>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<dl>
|
||
<dt>Defined in:</dt>
|
||
<dd>lib/metasploit/framework/password_crackers/cracker.rb</dd>
|
||
</dl>
|
||
|
||
</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="#attack-instance_method" title="#attack (instance method)">#<strong>attack</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The attack mode for hashcat to use (not applicable to John).</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#config-instance_method" title="#config (instance method)">#<strong>config</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The path to an optional config file for John to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#cracker-instance_method" title="#cracker (instance method)">#<strong>cracker</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>Which cracker to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#cracker_path-instance_method" title="#cracker_path (instance method)">#<strong>cracker_path</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This attribute allows the user to specify a cracker binary to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#fork-instance_method" title="#fork (instance method)">#<strong>fork</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>If the cracker type is john, the amount of forks to specify.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#format-instance_method" title="#format (instance method)">#<strong>format</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>If the cracker type is john, this format will automatically be translated to the hashcat equivalent via jtr_format_to_hashcat_format.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#hash_path-instance_method" title="#hash_path (instance method)">#<strong>hash_path</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The path to the file containing the hashes.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#increment_length-instance_method" title="#increment_length (instance method)">#<strong>increment_length</strong> ⇒ Array </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The incremental min and max to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#incremental-instance_method" title="#incremental (instance method)">#<strong>incremental</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The incremental mode to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mask-instance_method" title="#mask (instance method)">#<strong>mask</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>If the cracker type is hashcat, If set, the mask to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#max_length-instance_method" title="#max_length (instance method)">#<strong>max_length</strong> ⇒ Integer </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>An optional maximum length of password to attempt cracking.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#max_runtime-instance_method" title="#max_runtime (instance method)">#<strong>max_runtime</strong> ⇒ Integer </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>An optional maximum duration of the cracking attempt in seconds.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#optimize-instance_method" title="#optimize (instance method)">#<strong>optimize</strong> ⇒ Boolean </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>If the Optimize flag should be given to Hashcat.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#pot-instance_method" title="#pot (instance method)">#<strong>pot</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The file path to an alternative John pot file to use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#rules-instance_method" title="#rules (instance method)">#<strong>rules</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The wordlist mangling rules to use inside John/Hashcat.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#wordlist-instance_method" title="#wordlist (instance method)">#<strong>wordlist</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>The file path to the wordlist to use.</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="#binary_path-instance_method" title="#binary_path (instance method)">#<strong>binary_path</strong> ⇒ String, NilClass </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method follows a decision tree to determine the path to the cracker binary we should use.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#crack-instance_method" title="#crack (instance method)">#<strong>crack</strong> {|String| ... } ⇒ void </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method runs the command from #crack_command and yields each line of output.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#cracker_session_id-instance_method" title="#cracker_session_id (instance method)">#<strong>cracker_session_id</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method is a getter for a random Session ID for the cracker.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#cracker_version-instance_method" title="#cracker_version (instance method)">#<strong>cracker_version</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method returns the version of John the Ripper or Hashcat being used.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#each_cracked_password-instance_method" title="#each_cracked_password (instance method)">#<strong>each_cracked_password</strong> ⇒ Array </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This runs the show command in john and yields cracked passwords.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#get_hashcat-instance_method" title="#get_hashcat (instance method)">#<strong>get_hashcat</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'></div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#get_john-instance_method" title="#get_john (instance method)">#<strong>get_john</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'></div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#get_type-instance_method" title="#get_type (instance method)">#<strong>get_type</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'></div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#hashcat_crack_command-instance_method" title="#hashcat_crack_command (instance method)">#<strong>hashcat_crack_command</strong> ⇒ Array </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method builds an array for the command to actually run the cracker.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(attributes = {}) ⇒ Cracker </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
<span class="note title constructor">constructor</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>A new instance of Cracker.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#john_config_file-instance_method" title="#john_config_file (instance method)">#<strong>john_config_file</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method returns the path to a default john.conf file.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#john_crack_command-instance_method" title="#john_crack_command (instance method)">#<strong>john_crack_command</strong> ⇒ Array </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method builds an array for the command to actually run the cracker.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#john_nolog_format-instance_method" title="#john_nolog_format (instance method)">#<strong>john_nolog_format</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method is used to determine which format of the no log option should be used –no-log vs –nolog <a href="https://github.com/openwall/john/commit/8982e4f7a2e874aab29807a05b421373015c9b61">github.com/openwall/john/commit/8982e4f7a2e874aab29807a05b421373015c9b61</a> We base this either on a date being in the version, or running the command and checking the output.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#john_pot_file-instance_method" title="#john_pot_file (instance method)">#<strong>john_pot_file</strong> ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method returns the path to a default john.pot file.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#jtr_format_to_hashcat_format-instance_method" title="#jtr_format_to_hashcat_format (instance method)">#<strong>jtr_format_to_hashcat_format</strong>(format) ⇒ String </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method takes a frameworkframework.dbframework.db.credframework.db.cred.privateframework.db.cred.private.jtr_format (string), and returns the string number associated to the hashcat format.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mode_incremental-instance_method" title="#mode_incremental (instance method)">#<strong>mode_incremental</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method sets the appropriate parameters to run a cracker in incremental mode.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mode_normal-instance_method" title="#mode_normal (instance method)">#<strong>mode_normal</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method sets the john to ‘normal’ mode.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mode_pin-instance_method" title="#mode_pin (instance method)">#<strong>mode_pin</strong> ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method sets the appropriate parameters to run a cracker in a pin mode (4-8 digits) on hashcat.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mode_single-instance_method" title="#mode_single (instance method)">#<strong>mode_single</strong>(file) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method sets the john to single mode.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#mode_wordlist-instance_method" title="#mode_wordlist (instance method)">#<strong>mode_wordlist</strong>(file) ⇒ Object </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method sets the appropriate parameters to run a cracker in wordlist mode.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="public ">
|
||
<span class="summary_signature">
|
||
|
||
<a href="#show_command-instance_method" title="#show_command (instance method)">#<strong>show_command</strong> ⇒ Array </a>
|
||
|
||
|
||
|
||
</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="summary_desc"><div class='inline'>
|
||
<p>This method builds the command to show the cracked passwords.</p>
|
||
</div></span>
|
||
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
|
||
|
||
|
||
<div id="constructor_details" class="method_details_list">
|
||
<h2>Constructor Details</h2>
|
||
|
||
<div class="method_details first">
|
||
<h3 class="signature first" id="initialize-instance_method">
|
||
|
||
#<strong>initialize</strong>(attributes = {}) ⇒ <tt><span class='object_link'><a href="" title="Metasploit::Framework::PasswordCracker::Cracker (class)">Cracker</a></span></tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns a new instance of Cracker.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>attributes</span>
|
||
|
||
|
||
<span class='type'>(<tt>Hash{Symbol => String,nil}</tt>)</span>
|
||
|
||
|
||
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
||
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
117
|
||
118
|
||
119
|
||
120
|
||
121</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 117</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
||
<span class='id identifier rubyid_attributes'>attributes</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_attribute'>attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_public_send'>public_send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_attribute'>attribute</span><span class='embexpr_end'>}</span><span class='tstring_content'>=</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</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="attack=-instance_method"></span>
|
||
<div class="method_details first">
|
||
<h3 class="signature first" id="attack-instance_method">
|
||
|
||
#<strong>attack</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The attack mode for hashcat to use (not applicable to John).</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The attack mode for hashcat to use (not applicable to John)</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
12
|
||
13
|
||
14</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 12</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_attack'>attack</span>
|
||
<span class='ivar'>@attack</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="config=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="config-instance_method">
|
||
|
||
#<strong>config</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The path to an optional config file for John to use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The path to an optional config file for John to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
16
|
||
17
|
||
18</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 16</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_config'>config</span>
|
||
<span class='ivar'>@config</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="cracker=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="cracker-instance_method">
|
||
|
||
#<strong>cracker</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns Which cracker to use. ‘john’ and ‘hashcat’ are valid.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Which cracker to use. ‘john’ and ‘hashcat’ are valid</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
20
|
||
21
|
||
22</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 20</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_cracker'>cracker</span>
|
||
<span class='ivar'>@cracker</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="cracker_path=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="cracker_path-instance_method">
|
||
|
||
#<strong>cracker_path</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This attribute allows the user to specify a cracker binary to use. If not supplied, the Cracker will search the PATH for a suitable john or hashcat binary and finally fall back to the pre-compiled john versions shipped with Metasploit.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The file path to an alternative cracker binary to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
28
|
||
29
|
||
30</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 28</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_cracker_path'>cracker_path</span>
|
||
<span class='ivar'>@cracker_path</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="fork=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="fork-instance_method">
|
||
|
||
#<strong>fork</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>If the cracker type is john, the amount of forks to specify</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The hash format to try.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
41
|
||
42
|
||
43</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 41</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_fork'>fork</span>
|
||
<span class='ivar'>@fork</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="format=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="format-instance_method">
|
||
|
||
#<strong>format</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>If the cracker type is john, this format will automatically be translated to the hashcat equivalent via jtr_format_to_hashcat_format</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The hash format to try.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
35
|
||
36
|
||
37</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 35</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_format'>format</span>
|
||
<span class='ivar'>@format</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="hash_path=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="hash_path-instance_method">
|
||
|
||
#<strong>hash_path</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The path to the file containing the hashes.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The path to the file containing the hashes</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
45
|
||
46
|
||
47</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 45</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_hash_path'>hash_path</span>
|
||
<span class='ivar'>@hash_path</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="increment_length=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="increment_length-instance_method">
|
||
|
||
#<strong>increment_length</strong> ⇒ <tt>Array</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The incremental min and max to use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The incremental min and max to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
53
|
||
54
|
||
55</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 53</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_increment_length'>increment_length</span>
|
||
<span class='ivar'>@increment_length</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="incremental=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="incremental-instance_method">
|
||
|
||
#<strong>incremental</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The incremental mode to use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The incremental mode to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
49
|
||
50
|
||
51</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 49</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_incremental'>incremental</span>
|
||
<span class='ivar'>@incremental</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="mask=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mask-instance_method">
|
||
|
||
#<strong>mask</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>If the cracker type is hashcat, If set, the mask to use. Should consist of the character sets pre-defined by hashcat, such as ?d ?s ?l etc</p>
|
||
|
||
<pre class="code ruby"><code class="ruby">@return [String] The mask to use
|
||
</code></pre>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
60
|
||
61
|
||
62</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 60</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mask'>mask</span>
|
||
<span class='ivar'>@mask</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="max_length=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="max_length-instance_method">
|
||
|
||
#<strong>max_length</strong> ⇒ <tt>Integer</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns An optional maximum length of password to attempt cracking.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Integer</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>An optional maximum length of password to attempt cracking</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
68
|
||
69
|
||
70</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 68</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_max_length'>max_length</span>
|
||
<span class='ivar'>@max_length</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="max_runtime=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="max_runtime-instance_method">
|
||
|
||
#<strong>max_runtime</strong> ⇒ <tt>Integer</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns An optional maximum duration of the cracking attempt in seconds.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Integer</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>An optional maximum duration of the cracking attempt in seconds</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
64
|
||
65
|
||
66</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 64</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_max_runtime'>max_runtime</span>
|
||
<span class='ivar'>@max_runtime</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="optimize=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="optimize-instance_method">
|
||
|
||
#<strong>optimize</strong> ⇒ <tt>Boolean</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns If the Optimize flag should be given to Hashcat.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Boolean</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>If the Optimize flag should be given to Hashcat</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
72
|
||
73
|
||
74</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 72</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_optimize'>optimize</span>
|
||
<span class='ivar'>@optimize</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="pot=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="pot-instance_method">
|
||
|
||
#<strong>pot</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The file path to an alternative John pot file to use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The file path to an alternative John pot file to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
76
|
||
77
|
||
78</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 76</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_pot'>pot</span>
|
||
<span class='ivar'>@pot</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="rules=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="rules-instance_method">
|
||
|
||
#<strong>rules</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The wordlist mangling rules to use inside John/Hashcat.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The wordlist mangling rules to use inside John/Hashcat</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
80
|
||
81
|
||
82</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 80</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_rules'>rules</span>
|
||
<span class='ivar'>@rules</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<span id="wordlist=-instance_method"></span>
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="wordlist-instance_method">
|
||
|
||
#<strong>wordlist</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>Returns The file path to the wordlist to use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The file path to the wordlist to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
84
|
||
85
|
||
86</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 84</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_wordlist'>wordlist</span>
|
||
<span class='ivar'>@wordlist</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="binary_path-instance_method">
|
||
|
||
#<strong>binary_path</strong> ⇒ <tt>String</tt>, <tt>NilClass</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method follows a decision tree to determine the path to the cracker binary we should use.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>, <tt>NilClass</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>Returns Nil if a binary path could not be found, or a String containing the path to the selected JTR binary on success.</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
302
|
||
303
|
||
304
|
||
305
|
||
306
|
||
307
|
||
308
|
||
309
|
||
310
|
||
311
|
||
312
|
||
313
|
||
314
|
||
315
|
||
316
|
||
317
|
||
318
|
||
319
|
||
320
|
||
321</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 302</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
<span class='comment'># Always prefer a manually entered path
|
||
</span> <span class='kw'>if</span> <span class='id identifier rubyid_cracker_path'>cracker_path</span> <span class='op'>&&</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_file?'>file?</span><span class='lparen'>(</span><span class='id identifier rubyid_cracker_path'>cracker_path</span><span class='rparen'>)</span>
|
||
<span class='kw'>return</span> <span class='id identifier rubyid_cracker_path'>cracker_path</span>
|
||
<span class='kw'>else</span>
|
||
<span class='kw'>case</span> <span class='id identifier rubyid_cracker'>cracker</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_get_hashcat'>get_hashcat</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_get_john'>get_john</span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auto</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_get_john'>get_john</span> <span class='op'>||</span> <span class='id identifier rubyid_get_hashcat'>get_hashcat</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="PasswordCrackerNotFoundError.html" title="Metasploit::Framework::PasswordCracker::PasswordCrackerNotFoundError (class)">PasswordCrackerNotFoundError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>No suitable Cracker was selected, so a binary could not be found on the system JOHN || HASHCAT</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="PasswordCrackerNotFoundError.html" title="Metasploit::Framework::PasswordCracker::PasswordCrackerNotFoundError (class)">PasswordCrackerNotFoundError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>No suitable john/hashcat binary was found on the system</span><span class='tstring_end'>'</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_path'>path</span> <span class='op'>&&</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_file?'>file?</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
|
||
|
||
<span class='kw'>return</span> <span class='id identifier rubyid_path'>path</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="crack-instance_method">
|
||
|
||
#<strong>crack</strong> {|String| ... } ⇒ <tt>void</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
<p class="note returns_void">This method returns an undefined value.</p>
|
||
<p>This method runs the command from #crack_command and yields each line of output.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Yields:</p>
|
||
<ul class="yield">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>a line of output from the cracker command</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
327
|
||
328
|
||
329
|
||
330
|
||
331
|
||
332
|
||
333
|
||
334
|
||
335
|
||
336</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 327</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_crack'>crack</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_john_crack_command'>john_crack_command</span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_hashcat_crack_command'>hashcat_crack_command</span>
|
||
<span class='kw'>end</span>
|
||
<span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_popen'>popen</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_fd'>fd</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_fd'>fd</span><span class='period'>.</span><span class='id identifier rubyid_each_line'>each_line</span><span class='lparen'>(</span><span class='op'>&</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="cracker_session_id-instance_method">
|
||
|
||
#<strong>cracker_session_id</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method is a getter for a random Session ID for the cracker. It allows us to dinstiguish between cracking sessions.</p>
|
||
|
||
<p>@ return [String] the Session ID to use</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
554
|
||
555
|
||
556</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 554</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_cracker_session_id'>cracker_session_id</span>
|
||
<span class='ivar'>@session_id</span> <span class='op'>||=</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='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="cracker_version-instance_method">
|
||
|
||
#<strong>cracker_version</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method returns the version of John the Ripper or Hashcat being used.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>the version detected</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="PasswordCrackerNotFoundError.html" title="Metasploit::Framework::PasswordCracker::PasswordCrackerNotFoundError (class)">PasswordCrackerNotFoundError</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>if a suitable cracker binary was never found</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
342
|
||
343
|
||
344
|
||
345
|
||
346
|
||
347
|
||
348
|
||
349
|
||
350
|
||
351
|
||
352
|
||
353
|
||
354
|
||
355
|
||
356
|
||
357
|
||
358
|
||
359
|
||
360
|
||
361
|
||
362
|
||
363
|
||
364</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 342</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_cracker_version'>cracker_version</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'> -V</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_popen'>popen</span><span class='lparen'>(</span><span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_fd'>fd</span><span class='op'>|</span>
|
||
<span class='id identifier rubyid_fd'>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='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># John the Ripper 1.8.0.13-jumbo-1-bleeding-973a245b96 2018-12-17 20:12:51 +0100 OMP [linux-gnu 64-bit x86_64 AVX2 AC]
|
||
</span> <span class='comment'># John the Ripper 1.9.0-jumbo-1 OMP [linux-gnu 64-bit x86_64 AVX2 AC]
|
||
</span> <span class='comment'># John the Ripper password cracker, version 1.8.0.2-bleeding-jumbo_omp [64-bit AVX-autoconf]
|
||
</span> <span class='comment'># John the Ripper password cracker, version 1.8.0
|
||
</span> <span class='kw'>return</span> <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_last_match'>last_match</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span> <span class='kw'>if</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>John the Ripper(?: password cracker, version)? ([^\[]+)</span><span class='regexp_end'>/</span></span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># v5.1.0
|
||
</span> <span class='kw'>return</span> <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_last_match'>last_match</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(v[\d.]+)</span><span class='regexp_end'>/</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>nil</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="each_cracked_password-instance_method">
|
||
|
||
#<strong>each_cracked_password</strong> ⇒ <tt>Array</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This runs the show command in john and yields cracked passwords.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>the output from the command split on newlines</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
532
|
||
533
|
||
534</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 532</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_each_cracked_password'>each_cracked_password</span>
|
||
<span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_popen'>popen</span><span class='lparen'>(</span><span class='id identifier rubyid_show_command'>show_command</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_readlines'>readlines</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="get_hashcat-instance_method">
|
||
|
||
#<strong>get_hashcat</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
580
|
||
581
|
||
582
|
||
583
|
||
584
|
||
585</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 580</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_get_hashcat'>get_hashcat</span>
|
||
<span class='comment'># Look in the Environment PATH for the hashcat binary
|
||
</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></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'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_find_full_path'>find_full_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span><span class='rparen'>)</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'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_find_full_path'>find_full_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat.exe</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="get_john-instance_method">
|
||
|
||
#<strong>get_john</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
587
|
||
588
|
||
589
|
||
590
|
||
591
|
||
592</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 587</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_get_john'>get_john</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># Look in the Environment PATH for the john binary
|
||
</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'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_find_full_path'>find_full_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span><span class='rparen'>)</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'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_find_full_path'>find_full_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john.exe</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="get_type-instance_method">
|
||
|
||
#<strong>get_type</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
123
|
||
124
|
||
125</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 123</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_get_type'>get_type</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cracker'>cracker</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="hashcat_crack_command-instance_method">
|
||
|
||
#<strong>hashcat_crack_command</strong> ⇒ <tt>Array</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method builds an array for the command to actually run the cracker. It builds the command from all of the attributes on the class.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>An array set up for IO.popen to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="PasswordCrackerNotFoundError.html" title="Metasploit::Framework::PasswordCracker::PasswordCrackerNotFoundError (class)">PasswordCrackerNotFoundError</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>if a suitable Hashcat binary was never found</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
447
|
||
448
|
||
449
|
||
450
|
||
451
|
||
452
|
||
453
|
||
454
|
||
455
|
||
456
|
||
457
|
||
458
|
||
459
|
||
460
|
||
461
|
||
462
|
||
463
|
||
464
|
||
465
|
||
466
|
||
467
|
||
468
|
||
469
|
||
470
|
||
471
|
||
472
|
||
473
|
||
474
|
||
475
|
||
476
|
||
477
|
||
478
|
||
479
|
||
480
|
||
481
|
||
482
|
||
483
|
||
484
|
||
485
|
||
486
|
||
487
|
||
488
|
||
489
|
||
490
|
||
491
|
||
492
|
||
493
|
||
494
|
||
495
|
||
496
|
||
497
|
||
498
|
||
499
|
||
500
|
||
501
|
||
502
|
||
503
|
||
504
|
||
505
|
||
506
|
||
507
|
||
508
|
||
509
|
||
510
|
||
511
|
||
512
|
||
513
|
||
514
|
||
515
|
||
516
|
||
517
|
||
518
|
||
519
|
||
520
|
||
521
|
||
522
|
||
523
|
||
524
|
||
525
|
||
526
|
||
527</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 447</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_hashcat_crack_command'>hashcat_crack_command</span>
|
||
<span class='id identifier rubyid_cmd_string'>cmd_string</span> <span class='op'>=</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_cmd_string'>cmd_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--session=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_cracker_session_id'>cracker_session_id</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--logfile-disable</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--quiet</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--username</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_pot'>pot</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--potfile-path=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_pot'>pot</span><span class='rparen'>)</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--potfile-path=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_john_pot_file'>john_pot_file</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--hash-type=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_jtr_format_to_hashcat_format'>jtr_format_to_hashcat_format</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_optimize'>optimize</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='comment'># https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#what_is_the_maximum_supported_password_length_for_optimized_kernels
|
||
</span> <span class='comment'># Optimized Kernels has a large impact on speed. Here are some stats from Hashcat 5.1.0:
|
||
</span>
|
||
<span class='comment'># Kali Linux on Dell Precision M3800
|
||
</span> <span class='comment'>## hashcat -b -w 2 -m 0
|
||
</span> <span class='comment'># * Device #1: Quadro K1100M, 500/2002 MB allocatable, 2MCU
|
||
</span> <span class='comment'># Speed.#1.........: 185.9 MH/s (11.15ms) @ Accel:64 Loops:16 Thr:1024 Vec:1
|
||
</span>
|
||
<span class='comment'>## hashcat -b -w 2 -O -m 0
|
||
</span> <span class='comment'># * Device #1: Quadro K1100M, 500/2002 MB allocatable, 2MCU
|
||
</span> <span class='comment'># Speed.#1.........: 463.6 MH/s (8.92ms) @ Accel:64 Loops:32 Thr:1024 Vec:1
|
||
</span>
|
||
<span class='comment'># Windows 10
|
||
</span> <span class='comment'># PS C:\hashcat-5.1.0> .\hashcat64.exe -b -O -w 2 -m 0
|
||
</span> <span class='comment'># * Device #1: GeForce RTX 2070 SUPER, 2048/8192 MB allocatable, 40MCU
|
||
</span> <span class='comment'># Speed.#1.........: 13914.0 MH/s (5.77ms) @ Accel:128 Loops:64 Thr:256 Vec:1
|
||
</span>
|
||
<span class='comment'># PS C:\hashcat-5.1.0> .\hashcat64.exe -b -O -w 2 -m 0
|
||
</span> <span class='comment'># * Device #1: GeForce RTX 2070 SUPER, 2048/8192 MB allocatable, 40MCU
|
||
</span> <span class='comment'># Speed.#1.........: 31545.6 MH/s (10.36ms) @ Accel:256 Loops:128 Thr:256 Vec:1
|
||
</span>
|
||
<span class='comment'># This change should result in 225%-250% speed boost at the sacrifice of some password length, which most likely
|
||
</span> <span class='comment'># wouldn't be tested inside of MSF since most users are using the MSF modules for word list and easy cracks.
|
||
</span> <span class='comment'># Anything of length where this would cut off is most likely being done independently (outside MSF)
|
||
</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-O</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_incremental'>incremental</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--increment</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_increment_length'>increment_length</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--increment-min=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_increment_length'>increment_length</span><span class='lbracket'>[</span><span class='int'>0</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='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--increment-max=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_increment_length'>increment_length</span><span class='lbracket'>[</span><span class='int'>1</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'>else</span>
|
||
<span class='comment'># anything more than max 4 on even des took 8+min on an i7.
|
||
</span> <span class='comment'># maybe in the future this can be adjusted or made a variable
|
||
</span> <span class='comment'># but current time, we'll leave it as this seems like reasonable
|
||
</span> <span class='comment'># time expectation for a module to run
|
||
</span> <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--increment-max=4</span><span class='tstring_end'>'</span></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_rules'>rules</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--rules-file=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_rules'>rules</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_attack'>attack</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--attack-mode=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_attack'>attack</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_max_runtime'>max_runtime</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--runtime=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_max_runtime'>max_runtime</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='id identifier rubyid_hash_path'>hash_path</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_mask'>mask</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='id identifier rubyid_mask'>mask</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='comment'># must be last
|
||
</span> <span class='kw'>if</span> <span class='id identifier rubyid_wordlist'>wordlist</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='id identifier rubyid_wordlist'>wordlist</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="john_config_file-instance_method">
|
||
|
||
#<strong>john_config_file</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method returns the path to a default john.conf file.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>the path to the default john.conf file</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
539
|
||
540
|
||
541</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 539</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_john_config_file'>john_config_file</span>
|
||
<span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Msf/Config.html" title="Msf::Config (class)">Config</a></span></span><span class='period'>.</span><span class='id identifier rubyid_data_directory'><span class='object_link'><a href="../../../Msf/Config.html#data_directory-class_method" title="Msf::Config.data_directory (method)">data_directory</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>jtr</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john.conf</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="john_crack_command-instance_method">
|
||
|
||
#<strong>john_crack_command</strong> ⇒ <tt>Array</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method builds an array for the command to actually run the cracker. It builds the command from all of the attributes on the class.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>An array set up for IO.popen to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt><span class='object_link'><a href="PasswordCrackerNotFoundError.html" title="Metasploit::Framework::PasswordCracker::PasswordCrackerNotFoundError (class)">PasswordCrackerNotFoundError</a></span></tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>if a suitable John binary was never found</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
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
|
||
419
|
||
420
|
||
421
|
||
422
|
||
423
|
||
424
|
||
425
|
||
426
|
||
427
|
||
428
|
||
429
|
||
430
|
||
431
|
||
432
|
||
433
|
||
434
|
||
435
|
||
436
|
||
437
|
||
438
|
||
439
|
||
440</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 394</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_john_crack_command'>john_crack_command</span>
|
||
<span class='id identifier rubyid_cmd_string'>cmd_string</span> <span class='op'>=</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_cmd_string'>cmd_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--session=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_cracker_session_id'>cracker_session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_john_nolog_format'>john_nolog_format</span><span class='rbracket'>]</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--config=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_config'>config</span><span class='rparen'>)</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--config=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_john_config_file'>john_config_file</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_pot'>pot</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--pot=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_pot'>pot</span><span class='rparen'>)</span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--pot=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_john_pot_file'>john_pot_file</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_fork'>fork</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>&&</span> <span class='id identifier rubyid_fork'>fork</span> <span class='op'>></span> <span class='int'>1</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--fork=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_fork'>fork</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--format=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_wordlist'>wordlist</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--wordlist=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_wordlist'>wordlist</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_incremental'>incremental</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--incremental=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_incremental'>incremental</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_rules'>rules</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--rules=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_rules'>rules</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_max_runtime'>max_runtime</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--max-run-time=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_max_runtime'>max_runtime</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_max_length'>max_length</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--max-len=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_max_length'>max_length</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='id identifier rubyid_hash_path'>hash_path</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="john_nolog_format-instance_method">
|
||
|
||
#<strong>john_nolog_format</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method is used to determine which format of the no log option should be used –no-log vs –nolog <a href="https://github.com/openwall/john/commit/8982e4f7a2e874aab29807a05b421373015c9b61">github.com/openwall/john/commit/8982e4f7a2e874aab29807a05b421373015c9b61</a> We base this either on a date being in the version, or running the command and checking the output</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The nolog format to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
371
|
||
372
|
||
373
|
||
374
|
||
375
|
||
376
|
||
377
|
||
378
|
||
379
|
||
380
|
||
381
|
||
382
|
||
383
|
||
384
|
||
385
|
||
386
|
||
387</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 371</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_john_nolog_format'>john_nolog_format</span>
|
||
<span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(\d{4}-\d{2}-\d{2})</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_cracker_version'>cracker_version</span>
|
||
<span class='comment'># we lucked out and theres a date, we'll check its older than the commit that changed the nolog
|
||
</span> <span class='kw'>if</span> <span class='const'>Date</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_last_match'>last_match</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'><</span> <span class='const'>Date</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2020-11-27</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--nolog</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--no-log</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
|
||
<span class='comment'># no date, so lets give it a run with the old format and check if we raise an error
|
||
</span> <span class='comment'># on *nix 'unknown option' goes to stderr
|
||
</span> <span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_popen'>popen</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_binary_path'>binary_path</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--nolog</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>err:</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>child</span><span class='words_sep'> </span><span class='tstring_content'>out</span><span class='tstring_end'>]</span></span> <span class='rbrace'>}</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_fd'>fd</span><span class='op'>|</span>
|
||
<span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--nolog</span><span class='tstring_end'>'</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_fd'>fd</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Unknown option</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--no-log</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="john_pot_file-instance_method">
|
||
|
||
#<strong>john_pot_file</strong> ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method returns the path to a default john.pot file.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>the path to the default john.pot file</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
546
|
||
547
|
||
548</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 546</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_john_pot_file'>john_pot_file</span>
|
||
<span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../../Msf/Config.html" title="Msf::Config (class)">Config</a></span></span><span class='period'>.</span><span class='id identifier rubyid_config_directory'><span class='object_link'><a href="../../../Msf/Config.html#config_directory-class_method" title="Msf::Config.config_directory (method)">config_directory</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john.pot</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="jtr_format_to_hashcat_format-instance_method">
|
||
|
||
#<strong>jtr_format_to_hashcat_format</strong>(format) ⇒ <tt>String</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method takes a Metasploit::Framework::PasswordCracker::Cracker.frameworkframework.dbframework.db.credframework.db.cred.privateframework.db.cred.private.jtr_format (string), and returns the string number associated to the hashcat format</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>format</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A jtr_format string</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>The format number for Hashcat</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
132
|
||
133
|
||
134
|
||
135
|
||
136
|
||
137
|
||
138
|
||
139
|
||
140
|
||
141
|
||
142
|
||
143
|
||
144
|
||
145
|
||
146
|
||
147
|
||
148
|
||
149
|
||
150
|
||
151
|
||
152
|
||
153
|
||
154
|
||
155
|
||
156
|
||
157
|
||
158
|
||
159
|
||
160
|
||
161
|
||
162
|
||
163
|
||
164
|
||
165
|
||
166
|
||
167
|
||
168
|
||
169
|
||
170
|
||
171
|
||
172
|
||
173
|
||
174
|
||
175
|
||
176
|
||
177
|
||
178
|
||
179
|
||
180
|
||
181
|
||
182
|
||
183
|
||
184
|
||
185
|
||
186
|
||
187
|
||
188
|
||
189
|
||
190
|
||
191
|
||
192
|
||
193
|
||
194
|
||
195
|
||
196
|
||
197
|
||
198
|
||
199
|
||
200
|
||
201
|
||
202
|
||
203
|
||
204
|
||
205
|
||
206
|
||
207
|
||
208
|
||
209
|
||
210
|
||
211
|
||
212
|
||
213
|
||
214
|
||
215
|
||
216
|
||
217
|
||
218
|
||
219
|
||
220
|
||
221
|
||
222
|
||
223
|
||
224
|
||
225
|
||
226
|
||
227</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 132</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_jtr_format_to_hashcat_format'>jtr_format_to_hashcat_format</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
|
||
<span class='kw'>case</span> <span class='id identifier rubyid_format'>format</span>
|
||
<span class='comment'># nix
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>md5crypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>500</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>descrypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1500</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bsdicrypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>12400</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sha256crypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>7400</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sha512crypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1800</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bcrypt</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3200</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># windows
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>lm</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>lanman</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3000</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>nt</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ntlm</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1000</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mscash</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1100</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mscash2</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2100</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>netntlm</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>5500</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>netntlmv2</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>5600</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># dbs
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mssql</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>131</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mssql05</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>132</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mssql12</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1731</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># hashcat requires a format we dont have all the data for
|
||
</span> <span class='comment'># in the current dumper, so this is disabled in module and lib
|
||
</span> <span class='comment'># when 'oracle', 'des,oracle'
|
||
</span> <span class='comment'># return '3100'
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>oracle11</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-sha1,oracle</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>112</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>oracle12c</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pbkdf2,oracle12c</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>12300</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>postgres</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>dynamic_1034</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-md5,postgres</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>12</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mysql</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>200</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mysql-sha1</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>300</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>PBKDF2-HMAC-SHA512</span><span class='tstring_end'>'</span></span> <span class='comment'># osx 10.8+
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>7100</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># osx
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>xsha</span><span class='tstring_end'>'</span></span> <span class='comment'># osx 10.4-6
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>122</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>xsha512</span><span class='tstring_end'>'</span></span> <span class='comment'># osx 10.7
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1722</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># webapps
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>PBKDF2-HMAC-SHA1</span><span class='tstring_end'>'</span></span> <span class='comment'># Atlassian
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>12001</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>phpass</span><span class='tstring_end'>'</span></span> <span class='comment'># Wordpress/PHPass, Joomla, phpBB3
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>400</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>mediawiki</span><span class='tstring_end'>'</span></span> <span class='comment'># mediawiki b type
|
||
</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3711</span><span class='tstring_end'>'</span></span>
|
||
<span class='comment'># mobile
|
||
</span> <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>android-samsung-sha1</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>5800</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>android-sha1</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>110</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>android-md5</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>10</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hmac-md5</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>10200</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>dynamic_82</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1710</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ssha</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>111</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-sha512</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1700</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-sha256</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1400</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-sha1</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>100</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>raw-md5</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>smd5</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>6300</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ssha256</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1411</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ssha512</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1711</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Raw-MD5u</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>30</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pbkdf2-sha256</span><span class='tstring_end'>'</span></span>
|
||
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>10900</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mode_incremental-instance_method">
|
||
|
||
#<strong>mode_incremental</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method sets the appropriate parameters to run a cracker in incremental mode</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
230
|
||
231
|
||
232
|
||
233
|
||
234
|
||
235
|
||
236
|
||
237
|
||
238
|
||
239
|
||
240
|
||
241
|
||
242</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 230</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mode_incremental'>mode_incremental</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_increment_length'>increment_length</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_wordlist'>wordlist</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_mask'>mask</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_runtime'>max_runtime</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Digits</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_attack'>attack</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='kw'>true</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mode_normal-instance_method">
|
||
|
||
#<strong>mode_normal</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method sets the john to ‘normal’ mode</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
274
|
||
275
|
||
276
|
||
277
|
||
278
|
||
279
|
||
280
|
||
281
|
||
282
|
||
283</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 274</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mode_normal'>mode_normal</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_runtime'>max_runtime</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_mask'>mask</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_wordlist'>wordlist</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_increment_length'>increment_length</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mode_pin-instance_method">
|
||
|
||
#<strong>mode_pin</strong> ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method sets the appropriate parameters to run a cracker in a pin mode (4-8 digits) on hashcat</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
262
|
||
263
|
||
264
|
||
265
|
||
266
|
||
267
|
||
268
|
||
269
|
||
270
|
||
271</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 262</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mode_pin'>mode_pin</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_attack'>attack</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_mask'>mask</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>?d</span><span class='tstring_end'>'</span></span> <span class='op'>*</span> <span class='int'>8</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='kw'>true</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_increment_length'>increment_length</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='int'>4</span><span class='comma'>,</span> <span class='int'>8</span><span class='rbracket'>]</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_runtime'>max_runtime</span> <span class='op'>=</span> <span class='int'>300</span> <span class='comment'># 5min on an i7 got through 4-7 digits. 8digit was 32min more
|
||
</span> <span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mode_single-instance_method">
|
||
|
||
#<strong>mode_single</strong>(file) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method sets the john to single mode</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>file</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A file location of the wordlist to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
288
|
||
289
|
||
290
|
||
291
|
||
292
|
||
293
|
||
294
|
||
295
|
||
296</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 288</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mode_single'>mode_single</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_wordlist'>wordlist</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>single</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_increment_length'>increment_length</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_mask'>mask</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="mode_wordlist-instance_method">
|
||
|
||
#<strong>mode_wordlist</strong>(file) ⇒ <tt>Object</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method sets the appropriate parameters to run a cracker in wordlist mode</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
<p class="tag_title">Parameters:</p>
|
||
<ul class="param">
|
||
|
||
<li>
|
||
|
||
<span class='name'>file</span>
|
||
|
||
|
||
<span class='type'>(<tt>String</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>A file location of the wordlist to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
247
|
||
248
|
||
249
|
||
250
|
||
251
|
||
252
|
||
253
|
||
254
|
||
255
|
||
256
|
||
257
|
||
258
|
||
259</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 247</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_mode_wordlist'>mode_wordlist</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_increment_length'>increment_length</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_incremental'>incremental</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_runtime'>max_runtime</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_mask'>mask</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_wordlist'>wordlist</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>wordlist</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_wordlist'>wordlist</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span>
|
||
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_attack'>attack</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0</span><span class='tstring_end'>'</span></span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="method_details ">
|
||
<h3 class="signature " id="show_command-instance_method">
|
||
|
||
#<strong>show_command</strong> ⇒ <tt>Array</tt>
|
||
|
||
|
||
|
||
|
||
|
||
</h3><div class="docstring">
|
||
<div class="discussion">
|
||
|
||
<p>This method builds the command to show the cracked passwords.</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="tags">
|
||
|
||
<p class="tag_title">Returns:</p>
|
||
<ul class="return">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>Array</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>An array set up for IO.popen to use</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="tag_title">Raises:</p>
|
||
<ul class="raise">
|
||
|
||
<li>
|
||
|
||
|
||
<span class='type'>(<tt>JohnNotFoundError</tt>)</span>
|
||
|
||
|
||
|
||
—
|
||
<div class='inline'>
|
||
<p>if a suitable John binary was never found</p>
|
||
</div>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div><table class="source_code">
|
||
<tr>
|
||
<td>
|
||
<pre class="lines">
|
||
|
||
|
||
562
|
||
563
|
||
564
|
||
565
|
||
566
|
||
567
|
||
568
|
||
569
|
||
570
|
||
571
|
||
572
|
||
573
|
||
574
|
||
575
|
||
576
|
||
577
|
||
578</pre>
|
||
</td>
|
||
<td>
|
||
<pre class="code"><span class="info file"># File 'lib/metasploit/framework/password_crackers/cracker.rb', line 562</span>
|
||
|
||
<span class='kw'>def</span> <span class='id identifier rubyid_show_command'>show_command</span>
|
||
<span class='id identifier rubyid_cmd_string'>cmd_string</span> <span class='op'>=</span> <span class='id identifier rubyid_binary_path'>binary_path</span>
|
||
|
||
<span class='id identifier rubyid_pot_file'>pot_file</span> <span class='op'>=</span> <span class='id identifier rubyid_pot'>pot</span> <span class='op'>||</span> <span class='id identifier rubyid_john_pot_file'>john_pot_file</span>
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>hashcat</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_cmd_string'>cmd_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--show</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--username</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--potfile-path=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_pot_file'>pot_file</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--hash-type=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_jtr_format_to_hashcat_format'>jtr_format_to_hashcat_format</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
||
<span class='kw'>elsif</span> <span class='id identifier rubyid_cracker'>cracker</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>john</span><span class='tstring_end'>'</span></span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_cmd_string'>cmd_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--show</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--pot=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_pot_file'>pot_file</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--format=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_format'>format</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
||
|
||
<span class='kw'>if</span> <span class='id identifier rubyid_config'>config</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--config=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config'>config</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
||
<span class='kw'>else</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--config=</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_john_config_file'>john_config_file</span><span class='rparen'>)</span>
|
||
<span class='kw'>end</span>
|
||
<span class='kw'>end</span>
|
||
<span class='id identifier rubyid_cmd'>cmd</span> <span class='op'><<</span> <span class='id identifier rubyid_hash_path'>hash_path</span>
|
||
<span class='kw'>end</span></pre>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div id="footer">
|
||
Generated on Fri May 8 17:04:03 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> |