<?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: HashCrack</title>
    <description>The latest articles on DEV Community by HashCrack (@hashcracknet).</description>
    <link>https://dev.to/hashcracknet</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3827671%2Fdda586be-6181-49ab-9ba3-075e751c7934.png</url>
      <title>DEV Community: HashCrack</title>
      <link>https://dev.to/hashcracknet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hashcracknet"/>
    <language>en</language>
    <item>
      <title>10,000 NTLM hashes, 3.5 hours, 90% cracked — here’s what the passwords looked like</title>
      <dc:creator>HashCrack</dc:creator>
      <pubDate>Mon, 16 Mar 2026 16:31:59 +0000</pubDate>
      <link>https://dev.to/hashcracknet/10000-ntlm-hashes-35-hours-90-cracked-heres-what-the-passwords-looked-like-30fe</link>
      <guid>https://dev.to/hashcracknet/10000-ntlm-hashes-35-hours-90-cracked-heres-what-the-passwords-looked-like-30fe</guid>
      <description>&lt;p&gt;Got a fat NTDS.dit dump last week. 10,247 NTLM hashes from a mid-sized company, no context, no hints - just hashes. Figured I'd document the process since people keep asking me how this actually works in practice.&lt;/p&gt;

&lt;p&gt;Running a multi-GPU RTX cluster, getting about 5.3 TH/s on NTLM mode 1000. Yeah, trillion with a T.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## First thing - don't even touch the GPUs yet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before I waste a single watt of electricity, every hash goes through our lookup database. We've built up a collection of 1.5 billion+ cracked pairs over time. Flat file lookup, takes about 2 minutes for the whole batch.&lt;/p&gt;

&lt;p&gt;4,312 out of 10,247 came back instantly. 42% of the dump, gone, no cracking needed. These are reused passwords from old breaches, defaults, the usual garbage that people keep recycling between their Netflix and their domain account.&lt;/p&gt;

&lt;p&gt;(We actually have this as a free tool on &lt;a href="https://hashcrack.net" rel="noopener noreferrer"&gt;hashcrack.net&lt;/a&gt; - paste an NTLM, MD5 or SHA1 hash and it checks against the full 1.5B database. Instant results if it's in there.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Wordlist + rules - where the real damage happens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Loaded up our main wordlist (~18GB, curated over the years) with a custom rule stack. At 5.3 TH/s the whole thing rips through in about 45 minutes.&lt;/p&gt;

&lt;p&gt;3,891 more fell. We're at 80% now.&lt;/p&gt;

&lt;p&gt;Looking at what cracked - it's depressing, honestly. Company2024! type stuff. Welcome1. First names with birthdays. The same patterns over and over. I've cracked maybe 200 dumps at this point and I could probably guess 30% of corporate passwords without any tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Masks based on what already cracked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where it gets more targeted. I look at the passwords from stages 1 and 2, spot the patterns, and build masks:&lt;/p&gt;

&lt;p&gt;?u?l?l?l?l?l?d?d?d?d?s - Capital + lowercase + 4 digits + symbol. Your classic Server2024! enjoyer.&lt;/p&gt;

&lt;p&gt;Pure numeric 8-digit for the PIN crowd. Keyboard walks for the 1qaz2wsx people.&lt;/p&gt;

&lt;p&gt;8-char masks at our speed = minutes. 9-10 chars with a targeted charset = still doable, maybe an hour or two depending on the mask.&lt;/p&gt;

&lt;p&gt;+712. Running total: 87%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Hybrid + extended brute&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Combinator mode (word + brute suffix), then full charset brute-force for anything 8 chars and under. The full 95^8 keyspace on NTLM takes about 20 minutes at our speed, which still blows my mind.&lt;/p&gt;

&lt;p&gt;+387 more. Final count: &lt;strong&gt;9,302 / 10,247 - 90.8%&lt;/strong&gt; in about 3.5 hours.&lt;/p&gt;

&lt;p&gt;The remaining ~9% are 11+ character passwords with no dictionary root. Genuinely random stuff, probably from a password manager. Could push to 93-95% with PRINCE and more time, but diminishing returns.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2F2gzz9txrulsmq0v9rl1w.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.amazonaws.com%2Fuploads%2Farticles%2F2gzz9txrulsmq0v9rl1w.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## The patterns never change&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After doing this for a while you start seeing the same passwords everywhere:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Season+Year+Symbol&lt;/strong&gt; is king. Summer2024!, Winter2023!, January2025#. Every. Single. Dump. I'm convinced there's a tutorial somewhere telling people this is a "strong password."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Company name + digits&lt;/strong&gt; is #2. If the company is called Acme, I guarantee at least 15 people have Acme123 or Acme2024!.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First name + birthday&lt;/strong&gt; rounds out the top 3. Michael1985, sarah0312, etc. Easy to guess if you have the username too (association attack, hashcat -a 9).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Why NTLM is basically broken&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No salt. No iterations. Single MD4 hash. It was designed for fast authentication on a trusted network, not to resist offline attacks. Every password a normal human would choose is crackable - it's just a question of GPU-hours.&lt;/p&gt;

&lt;p&gt;The only thing that actually resists cracking is 14+ characters of random garbage. Which is why password managers exist. Or just use certificate auth and skip the whole mess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to check your own hashes&lt;/strong&gt;&lt;br&gt;
Free lookup for NTLM, MD5 and SHA1 at hashcrack.net — 1.5 billion pairs, instant results. No account needed.&lt;/p&gt;

&lt;p&gt;For stuff the free lookup doesn’t catch, or for harder algorithms (Kerberos, bcrypt, MetaMask wallets, encrypted files) — we run a professional cracking service. $100/hash for fast types, no-crack-no-charge. Details on the site or DM on Telegram.&lt;/p&gt;

&lt;p&gt;Obligatory disclaimer: this describes work done under authorized pentest engagements. Don’t crack hashes you don’t have permission to crack.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want to check your own hashes
&lt;/h2&gt;

&lt;p&gt;Free lookup for NTLM, MD5 and SHA1 at &lt;a href="https://hashcrack.net" rel="noopener noreferrer"&gt;hashcrack.net&lt;/a&gt; - 1.5 billion pairs, instant results. No account needed.&lt;/p&gt;

&lt;p&gt;For stuff the free lookup doesn't catch, or for harder algorithms (Kerberos, bcrypt, MetaMask wallets, encrypted files) - we run a professional cracking service. $100/hash for fast types, no-crack-no-charge. Details on the site or DM on &lt;a href="https://t.me/HashCrackNet" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Obligatory disclaimer: this describes work done under authorized pentest engagements. Don't crack hashes you don't have permission to crack.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opsec</category>
      <category>hashcat</category>
      <category>password</category>
      <category>security</category>
    </item>
  </channel>
</rss>
