<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Heymun Pareek</title>
    <description>The latest articles on DEV Community by Heymun Pareek (@ff02x9e).</description>
    <link>https://dev.to/ff02x9e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3957100%2F1baa5331-80b1-4059-95bd-15ee87ff7fd3.png</url>
      <title>DEV Community: Heymun Pareek</title>
      <link>https://dev.to/ff02x9e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ff02x9e"/>
    <language>en</language>
    <item>
      <title>Why ISPs Block dig ANY</title>
      <dc:creator>Heymun Pareek</dc:creator>
      <pubDate>Thu, 09 Jul 2026 11:46:02 +0000</pubDate>
      <link>https://dev.to/ff02x9e/why-isps-block-dig-any-48o</link>
      <guid>https://dev.to/ff02x9e/why-isps-block-dig-any-48o</guid>
      <description>&lt;p&gt;Running &lt;code&gt;dig ANY target.com&lt;/code&gt; on a home internet connection usually results in a timeout. However, if you append &lt;code&gt;@8.8.8.8&lt;/code&gt; to query Google DNS directly, it works instantly.&lt;/p&gt;

&lt;p&gt;Your ISP isn't broken. They block &lt;code&gt;ANY&lt;/code&gt; queries by default to prevent a specific type of cyberattack called a DNS Amplification DDoS.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Mechanics of the Attack
&lt;/h3&gt;

&lt;p&gt;DNS queries normally use UDP, which means there is no handshake. Because there is no handshake, an attacker can easily fake (spoof) their IP address to look like a victim's IP.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;ANY&lt;/code&gt; tag tells a DNS server to return every single record it has (A, MX, TXT, etc.). This creates a massive payload discrepancy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Request:&lt;/strong&gt; ~50 bytes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response:&lt;/strong&gt; ~1000+ bytes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If an attacker sends millions of these tiny &lt;code&gt;ANY&lt;/code&gt; requests using the victim's spoofed IP to open DNS servers, those servers will blast massive responses at the victim. The victim's bandwidth gets flooded, knocking them offline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Your ISP Blocks It (But Google Doesn't)
&lt;/h3&gt;

&lt;p&gt;Your ISP blocks &lt;code&gt;ANY&lt;/code&gt; requests at the router level because normal web browsing never uses them. It is a simple way to stop their network from being used in DDoS attacks.&lt;/p&gt;

&lt;p&gt;Google (&lt;code&gt;8.8.8.8&lt;/code&gt;) and Cloudflare (&lt;code&gt;1.1.1.1&lt;/code&gt;) allow them because they have massive global scrubbing networks to filter out spoofed traffic. They also use "TCP Fallback." If a response gets too big, they force the connection to switch to TCP. Since TCP requires a real handshake, spoofing becomes impossible.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Fix for Recon
&lt;/h3&gt;

&lt;p&gt;When doing CTFs, Hack The Box, or bug bounties, home internet security configurations will regularly block your traffic.&lt;/p&gt;

&lt;p&gt;Skip your ISP's local resolver and query a public server directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig @8.8.8.8 ANY target.com +short

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49qlnl4vl20wmgrc0lff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49qlnl4vl20wmgrc0lff.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cli</category>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>security</category>
    </item>
    <item>
      <title>Hash Identification Reference Guide</title>
      <dc:creator>Heymun Pareek</dc:creator>
      <pubDate>Sun, 28 Jun 2026 18:53:48 +0000</pubDate>
      <link>https://dev.to/ff02x9e/hash-identification-reference-guide-3kl7</link>
      <guid>https://dev.to/ff02x9e/hash-identification-reference-guide-3kl7</guid>
      <description>&lt;p&gt;&lt;em&gt;With commands and tools&lt;/em&gt;&lt;br&gt;
This document serves as a professional, end-to-end reference for identifying, parsing, and cracking cryptographic hashes and encodings encountered during penetration tests, CTFs, and practical exams (like the CPTS).&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Deep Dive: The Bcrypt Hashing Algorithm
&lt;/h2&gt;
&lt;h3&gt;
  
  
  How to Identify Bcrypt
&lt;/h3&gt;

&lt;p&gt;Bcrypt is an adaptive, salted cryptographic hash function based on the Blowfish cipher. In database dumps, a bcrypt hash is immediately recognizable by its structured layout, modular delimiters (&lt;code&gt;$&lt;/code&gt;), and a fixed length of exactly &lt;strong&gt;60 characters&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Structural Breakdown
&lt;/h3&gt;

&lt;p&gt;A standard bcrypt string is split into four distinct fields:&lt;/p&gt;

&lt;p&gt;Plaintext&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  $2y$13$e9zuohgFZzGtbQalcn9Mz.5PJbjxob00GMBXo8NHp3P/B42LUg0lS
  \ / \/ \____________________/\_____________________________/
   |   |            |                        |
 Identifier Cost   22-Char Salt            31-Char Hash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identifier (Prefix):&lt;/strong&gt; Defines the specific variant of the bcrypt algorithm.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `$2a$`: The classic implementation.

- `$2b$`: Modern implementation fixing minor caching bugs.

- `$2y$`: Specifically generated by PHP (e.g., Laravel, custom frameworks) to handle specific password hashing variations.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cost Factor:&lt;/strong&gt; A two-digit integer indicating the work factor. It represents the number of key-expansion rounds as a power of 2 ($2^{\text{cost}}$).&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- _Example:_ A cost of `13` means $2^{13} = 8,192$ iterations. This intentional slowness (key stretching) thwarts brute-force hardware.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Salt:&lt;/strong&gt; A globally unique, 22-character string that prevents rainbow table attacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ciphertext (Digest):&lt;/strong&gt; The remaining 31-character output containing the actual scrambled data.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key Learning:&lt;/strong&gt; Bcrypt uses a custom Base64 alphabet (&lt;code&gt;./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&lt;/code&gt;). This is why you will see characters like &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;/&lt;/code&gt; scattered through the text, but never padding signs like &lt;code&gt;=&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. Comprehensive Identification Matrix: Encodings vs. Hashes
&lt;/h2&gt;

&lt;p&gt;As a pentester, you must distinguish between data that is merely encoded (reversible) and data that is cryptographically hashed (one-way).&lt;/p&gt;

&lt;h3&gt;
  
  
  Non-Cryptographic Encodings (Reversible)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Character Set&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Length Characteristics&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Structural Indicators / Giveaways&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Base64&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;A-Z&lt;/code&gt;, &lt;code&gt;a-z&lt;/code&gt;, &lt;code&gt;0-9&lt;/code&gt;, &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Always a multiple of 4.&lt;/td&gt;
&lt;td&gt;Frequently ends with &lt;code&gt;=&lt;/code&gt; or &lt;code&gt;==&lt;/code&gt; padding characters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hexadecimal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;0-9&lt;/code&gt;, &lt;code&gt;a-f&lt;/code&gt; (or &lt;code&gt;A-F&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Always an even number of characters.&lt;/td&gt;
&lt;td&gt;No letters past &lt;code&gt;F&lt;/code&gt; will ever appear.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ROT13&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;A-Z&lt;/code&gt;, &lt;code&gt;a-z&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Matches the original plain text length.&lt;/td&gt;
&lt;td&gt;Retains all native punctuation, spaces, and numbers.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;URL Encoding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;0-9&lt;/code&gt;, &lt;code&gt;A-F&lt;/code&gt;, &lt;code&gt;%&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Variable.&lt;/td&gt;
&lt;td&gt;Dominated by percentage signs (&lt;code&gt;%20&lt;/code&gt;, &lt;code&gt;%3f&lt;/code&gt;, &lt;code&gt;%2b&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Base64 Example:&lt;/strong&gt; &lt;code&gt;YWRtaW4xMjM=&lt;/code&gt; $\rightarrow$ Decodes to &lt;code&gt;admin123&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hex Example:&lt;/strong&gt; &lt;code&gt;61646d696e313233&lt;/code&gt; $\rightarrow$ Decodes to &lt;code&gt;admin123&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ROT13 Example:&lt;/strong&gt; &lt;code&gt;nqzva123&lt;/code&gt; $\rightarrow$ Decodes to &lt;code&gt;admin123&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Standard Linear Hashes (Fast Hashes)
&lt;/h3&gt;

&lt;p&gt;These are raw hexadecimal outputs. They do not store their salt natively inside the output string and are identified entirely by character count.&lt;/p&gt;

&lt;h4&gt;
  
  
  MD5 (Message Digest 5)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Length:&lt;/strong&gt; 32 characters (128-bit)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Format:&lt;/strong&gt; Hexadecimal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;0192023a7bbd73250516f069df18b500&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  SHA-1 (Secure Hash Algorithm 1)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Length:&lt;/strong&gt; 40 characters (160-bit)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Format:&lt;/strong&gt; Hexadecimal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;a0f7169bb83ab40d21d51a6579cf299e5a1532f7&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  SHA-256
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Length:&lt;/strong&gt; 64 characters (256-bit)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Format:&lt;/strong&gt; Hexadecimal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;240a1921a37c15234f9a0c6a589cf299e5a1532f7a0f7169bb83ab40d21d51a65&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application &amp;amp; OS Hashes (Slow / Salted Hashes)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  SHA-512 Crypt
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Where found:&lt;/strong&gt; Linux &lt;code&gt;/etc/shadow&lt;/code&gt; files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Indicator:&lt;/strong&gt; Starts explicitly with &lt;code&gt;$6$&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;$6$rounds=5000$saltsalt$HashedOutputStrings...&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Argon2 (2i / 2id)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Where found:&lt;/strong&gt; Modern enterprise databases, KeePass databases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Indicator:&lt;/strong&gt; Starts with &lt;code&gt;$argon2i$&lt;/code&gt; or &lt;code&gt;$argon2id$&lt;/code&gt;, followed by resource allocation variables (&lt;code&gt;m=&lt;/code&gt; memory, &lt;code&gt;t=&lt;/code&gt; time, &lt;code&gt;p=&lt;/code&gt; parallelism).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;$argon2id$v=19$m=65536,t=3,p=4$Y29v...&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  NetNTLMv2
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Where found:&lt;/strong&gt; Sniffed over Windows networks via Responder or LLMNR/NBT-NS poisoning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Indicator:&lt;/strong&gt; Look for username, domain, and challenge blocks divided by double colons (&lt;code&gt;::&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;Administrator::DOMAIN:1122334455667788:A1B2C3D4...&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Cracking Suite Toolkit: Hashcat vs. John the Ripper
&lt;/h2&gt;

&lt;p&gt;Understanding when to deploy specific cracking engines determines how quickly you recover credentials.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architectural Differences
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hashcat (The GPU Beast):&lt;/strong&gt; Specifically engineered for massively parallel hardware acceleration. It leverages graphics cards (GPUs) via OpenCL/CUDA.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;John the Ripper (The Flexible CPU Swiss-Army Knife):&lt;/strong&gt; Highly optimized for single-core or multi-core CPU architecture. It excels at parsing non-standard formats and handling heavily customized syntax structures easily.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Definitive Use-Case Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Scenario&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Recommended Tool&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Core Reason&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Massive Hex Lists (MD5/SHA256)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hashcat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;GPUs process simple linear math algorithms millions of times faster than CPUs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Complex Linux/Windows Files&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;John the Ripper&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Native internal tools (like &lt;code&gt;unshadow&lt;/code&gt; or &lt;code&gt;ssh2john&lt;/code&gt;) easily parse raw system formatting into crackable structures.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bcrypt / Argon2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;John / Hashcat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tied. Because these hashes are intentionally slow, high-end GPUs lose their structural scaling advantage over CPUs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom Rulesets &amp;amp; Mangling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;John the Ripper&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;JTR’s custom rule syntax engine is highly descriptive for complex conditional character modifications.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  4. Practical Execution Reference (Commands)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Identifying a Hash Programmatically
&lt;/h3&gt;

&lt;p&gt;Before running an intensive attack, use automated validation scripts to rule out edge cases:&lt;/p&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Method 1: Using hashid&lt;/span&gt;
hashid &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s1"&gt;'$2y$13$e9zuohgFZzGtbQalcn9Mz.5PJbjxob00GMBXo8NHp3P/B42LUg0lS'&lt;/span&gt;

&lt;span class="c"&gt;# Method 2: Using hash-identifier&lt;/span&gt;
hash-identifier
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Hashcat Execution Reference
&lt;/h3&gt;

&lt;p&gt;Hashcat requires you to define the mode parameter (&lt;code&gt;-m&lt;/code&gt;) corresponding to the specific algorithm target.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Hash Type&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Mode ID (-m)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MD5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SHA-1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SHA-256&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1400&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bcrypt&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3200&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NetNTLMv2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;5600&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Standard Wordlist Attack (Straight Mode)
&lt;/h4&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hashcat &lt;span class="nt"&gt;-m&lt;/span&gt; 3200 &lt;span class="nt"&gt;-a&lt;/span&gt; 0 targets.txt /usr/share/wordlists/rockyou.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-m 3200&lt;/code&gt;: Specifies the target format is Bcrypt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-a 0&lt;/code&gt;: Direct straight attack (runs lines exactly as they appear in the dictionary file).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Rule-Based Mangling Attack
&lt;/h4&gt;

&lt;p&gt;Applies complex changes (capitalization, character substitution, padding) to every item in the wordlist:&lt;/p&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hashcat &lt;span class="nt"&gt;-m&lt;/span&gt; 3200 &lt;span class="nt"&gt;-a&lt;/span&gt; 0 targets.txt /usr/share/wordlists/rockyou.txt &lt;span class="nt"&gt;-r&lt;/span&gt; /usr/share/hashcat/rules/best64.rule
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  John the Ripper Execution Reference
&lt;/h3&gt;

&lt;p&gt;John natively attempts to auto-detect formats, but manually defining the configuration flag (&lt;code&gt;--format=&lt;/code&gt;) prevents parsing errors.&lt;/p&gt;

&lt;h4&gt;
  
  
  Standard Wordlist Attack
&lt;/h4&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;john &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;bcrypt &lt;span class="nt"&gt;--wordlist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/share/wordlists/rockyou.txt targets.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Cracking Linux Shadow Files (Unshadow Workflow)
&lt;/h4&gt;

&lt;p&gt;John handles system authentication structures natively by merging configuration databases:&lt;/p&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Combine passwd and shadow files into a cohesive crackable layout&lt;/span&gt;
unshadow /etc/passwd /etc/shadow &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; unshadowed.txt

&lt;span class="c"&gt;# Step 2: Run the attack using John's default internal rule settings&lt;/span&gt;
john &lt;span class="nt"&gt;--wordlist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/share/wordlists/rockyou.txt unshadowed.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Checking Found Credentials
&lt;/h4&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;john &lt;span class="nt"&gt;--show&lt;/span&gt; unshadowed.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Situational Problem Solving (Troubleshooting)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Problem 1: "Hashcat returns an 'Assocated hash encoding salt length exception' error"
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Root Cause:&lt;/strong&gt; The input format is broken. Fast hashes (MD5/SHA) cannot have extra white spaces, trailing newlines, or username descriptions appended without explicit syntax flags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; Clean the target file using string utilities:&lt;/p&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Clean trailing spaces and convert strings to lowercase completely
tr -d ' ' &amp;lt; broken_hashes.txt | tr '[:upper:]' '[:lower:]' &amp;gt; clean_hashes.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Problem 2: "Bcrypt cracking speeds are painfully slow ($&amp;lt;500$ hashes/sec)"
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Root Cause:&lt;/strong&gt; This is expected behavior. Bcrypt's internal cost factor causes it to compute deliberately slow loops to mitigate massive computing arrays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; Do not attempt massive multi-gigabyte wordlists right away. Optimize your dictionary strategy:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Extract custom words from the target's public-facing website using &lt;code&gt;cewl -w custom.txt http://target.htb&lt;/code&gt;.

&lt;ol&gt;
&lt;li&gt;Run top-tier password structures first (e.g., &lt;code&gt;rockyou.txt&lt;/code&gt; trimmed down to the top 10,000 entries).
&lt;/li&gt;
&lt;/ol&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;


Problem 3: "John the Ripper fails to recognize a valid SSH Private Key"
&lt;/h3&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Root Cause:&lt;/strong&gt; Modern keys must be stripped of extraneous header markers and reformatted into a standard linear cryptographic string.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; Process the file through the appropriate formatting tool before attacking:&lt;/p&gt;

&lt;p&gt;Bash&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh2john id_rsa &amp;gt; rsa_hash.txt
john --wordlist=/usr/share/wordlists/rockyou.txt rsa_hash.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>algorithms</category>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
