<?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: ff02x9e</title>
    <description>The latest articles on DEV Community by ff02x9e (@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: ff02x9e</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>Active Directory Explained like you are ...</title>
      <dc:creator>ff02x9e</dc:creator>
      <pubDate>Fri, 31 Jul 2026 14:52:16 +0000</pubDate>
      <link>https://dev.to/ff02x9e/active-directory-explained-like-you-are--4e0c</link>
      <guid>https://dev.to/ff02x9e/active-directory-explained-like-you-are--4e0c</guid>
      <description>&lt;h2&gt;
  
  
  LIKE YOU ARE 5
&lt;/h2&gt;

&lt;p&gt;Imagine Active Directory is a giant Theme Park World:&lt;/p&gt;

&lt;p&gt;Forest (The Theme Park World): This is the entire park (like Disney World). Everything inside shares the same master rules, ticket systems, and main security gates.&lt;/p&gt;

&lt;p&gt;Domain (The Specific Parks): These are the individual parks inside (like Magic Kingdom or Epcot). Each park has its own manager, but if your ticket works for the World, you can visit them all.&lt;/p&gt;

&lt;p&gt;OU / Organizational Unit (The Specific Land/Rides): These are sections inside a single park, like Fantasyland. The manager groups similar rides together here so they can set rules for that whole area at once (like "everyone in Fantasyland must wear hats").&lt;/p&gt;

&lt;p&gt;Group (The VIP Clubs): These are wristband groups. Instead of checking every single kid one by one to see if they're tall enough or have a VIP pass, the park puts matching wristbands on a bunch of kids so they can all ride the roller coaster together.&lt;/p&gt;

&lt;h2&gt;
  
  
  LIKE YOU ARE 10
&lt;/h2&gt;

&lt;p&gt;Forest The Concept: The entire video game world (like Minecraft or Roblox).&lt;br&gt;
The Tech: It holds the Schema (the game's code rules that say what a "player" or "block" is) and the Global Catalog (a cheat map showing where every item in the game is). It uses Transitive Trusts, meaning if Server A trusts Server B, and Server B trusts Server C, then Server A automatically trusts Server C.&lt;/p&gt;

&lt;p&gt;Domain The Concept: A specific game server inside that world (like a Survival Server or Creative Server).&lt;br&gt;
The Tech: Controls Security Principals—anything that gets an ID card (SID), like user accounts or computer accounts. It sets the local rules, like how long your password has to be or how Kerberos login tickets work.&lt;/p&gt;

&lt;p&gt;OU (Organizational Unit) The Concept: A specific team folder or guild room inside that server.&lt;br&gt;
The Tech: Used for GPO Scoping (sending specific mod settings to just one team) and Delegation of Control (giving a helper mod permission to kick people only in their specific room, instead of giving them full admin power).&lt;/p&gt;

&lt;p&gt;Group The Concept: A VIP role badge.&lt;br&gt;
The Tech: Used for RBAC (Role-Based Access Control). Instead of typing every single player's name into a secret door's access list (ACL), you give the door access to the "VIP Badge" group, and just give players the badge.&lt;/p&gt;

&lt;p&gt;GPO (Group Policy Object) The Concept: The Server Admin's master remote control.&lt;br&gt;
The Tech: Automatically pushes settings and scripts to computers. Split into two pieces: GPC (the settings listing inside Active Directory) and GPT (the actual script/config files stored in a shared folder called SYSVOL). It processes rules in LSDOU order (Local, Site, Domain, OU)—and whatever rule runs last overrides the older ones.&lt;/p&gt;

&lt;p&gt;Red Team Hack ⚡ If you find a user account that has Write Access to a GPO, you win the game. You can inject a secret command into that GPO, wait for the target computers to restart, and the GPO will run your code as the highest level authority (SYSTEM) on every machine in that folder!&lt;/p&gt;

&lt;h2&gt;
  
  
  LIKE YOU ARE 13
&lt;/h2&gt;

&lt;p&gt;Alright kid, let's break down the actual tech, the jargon, and the acronyms so you know what’s really going on under the hood:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Forest
What it is: The top dog. The highest security border in Active Directory.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Tech: It holds the Schema (the database blueprint defining what objects can exist) and the Global Catalog (GC) (a searchable master index of every object in the whole network). It uses Transitive Trusts, meaning if Domain A trusts Domain B, and Domain B trusts Domain C, Domain A automatically trusts Domain C.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Domain
What it is: A boundary for control and login rules.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Tech: Houses Security Principals—anything the system can authenticate and slap a SID (Security Identifier) onto, like User accounts, Computer accounts, and Service accounts. It enforces a single set of security rules (like Kerberos ticket lifetimes and password length).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OU (Organizational Unit)
What it is: A logical folder inside a domain used to group stuff together.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Tech: Used specifically for GPO Scoping (pointing policies at specific groups of machines/users) and Delegation of Control (giving a low-level admin permission to reset passwords only in that specific folder, without making them a full Domain Admin).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Group
What it is: A bucket of Security Principals used for access control.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Tech: Used for RBAC (Role-Based Access Control). Instead of adding a single user to a file share's Access Control List (ACL), you throw the user into a Group, and give the Group the permissions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GPO (Group Policy Object)
What it is: The remote control for the whole network.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Tech: A set of configurations pushed out by admins. It splits into two parts: the GPC (Group Policy Container, stored in Active Directory metadata) and the GPT (Group Policy Template, actual files and scripts stored in the SYSVOL network share). Applied via LSDOU order (Local, Site, Domain, OU)—where the last rule applied overwrites the ones before it.&lt;/p&gt;

&lt;p&gt;Red Team Pro-Tip 🏴‍☠️&lt;br&gt;
If you ever compromise an account that has Write permissions on a GPO, you win. You can attach a malicious startup script to that GPO, wait for the target machines to reboot, and instantly get system-level shell access across every box linked to that OU.&lt;/p&gt;

&lt;h2&gt;
  
  
  LIKE YOU ARE A PROFESSIONAL HACKER
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Left as an exercise for the reader&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>architecture</category>
      <category>beginners</category>
      <category>computerscience</category>
      <category>security</category>
    </item>
    <item>
      <title>Why ISPs Block dig ANY</title>
      <dc:creator>ff02x9e</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>ff02x9e</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>
