A lazy router manufacturer handed me a master key, and it still worked eight years later.

The setup

Some years back I went down a rabbit hole every curious tinkerer eventually falls into: how much effort does it actually take to break into a Wi-Fi network? The target was a small startup’s office network — a setup I had explicit permission to test, the kind of low-key engagement where someone says “see if you can get in, we want to know how bad we are.”

The standard playbook for grabbing a Wi-Fi password goes like this:

  1. Sniff the air until you spot a target network.
  2. De-authenticate a connected device — slap the user off the network with a forged “goodbye” packet.
  3. When their device reconnects, capture the 4-way handshake, the cryptographic “hello” between router and client.
  4. Take that handshake home and crack it offline, with no further interaction needed.

Step 4 is where the fun begins. The handshake is mathematically locked: you have to guess the password and check whether it produces the same handshake. Guess fast enough and eventually you win.

The appeal of offline cracking is that the router has no idea you’re trying. No rate limiting, no lockouts, no alerts. Just you, a laptop, and a very patient for loop.

The wall I hit

I started with the obvious moves:

  • Default password lists — the rockyou.txt classics. Nothing.
  • Brute force across small character spaces. Nothing.
  • Online hash crackers that throw the handshake at massive cloud rigs, all the way up to 14 characters. Still nothing.

The password was clearly long. Too long for blind brute force, and too odd to live in any standard wordlist.

Then I remembered something. The router was a specific brand — an employee had been bragging about how good these units were a while back. I went digging, and noticed their default SSIDs all had a certain flavour to them.

The pattern

Forum posts, manuals, photos people had posted of the little sticker on the back of their unit. The default passwords looked like this:

  • bravetiger905
  • sunnyvalley189
  • quietriver472

Every one followed the same recipe:

adjective + noun + 3 digits

That was the secret sauce. Probably a script on a factory line picking from two word lists and appending a random number. It looks secure — sunnyvalley472 is 14 characters of mixed letters and digits, and a naive estimate would call it uncrackable.

It isn’t. Not even close.

Building the master list

I needed every common English adjective and noun, so I wrote a small scraper, pointed it at a few dictionary sites, and pulled down a clean list of each.

Then I fired up John the Ripper. It has a mode that combines two wordlists into every possible pairing, so brave + tiger becomes bravetiger, quiet + river becomes quietriver, and so on. That gave me a few thousand plausible base passwords.

On top of that went a mask attack: ?d?d?d appended to every entry, so sunnyvalley expanded into sunnyvalley000 through sunnyvalley999.

Final candidate count: a few million passwords. Which sounds like a lot, and isn’t.

The crack

I pointed John at the captured handshake on an Intel i5 MacBook — not a cracking rig, just a regular laptop — and let it run.

Forty-three minutes later, at 76% through the list, the password fell out. Some adjective, some noun, three digits, exactly as predicted.

That wordlist stayed useful for years. Every so often someone would ask me to check their own network — friends, family, the occasional informal favour — and if it was this brand still on the factory password, the list had the answer within minutes. It never failed. A pattern printed on a sticker was still handing out keys most of a decade later.

And that was an old i5. On a modern GPU the same attack finishes in seconds.

“But my password is 18 characters”

You’d think a long password is a safe password, and against pure brute force you’d be right. A truly random 18-character password drawn from the full keyboard — lowercase, uppercase, digits, symbols, about 94 options per slot — gives you:

94^18 ≈ 3.3 × 10^35 possible combinations.

Suppose you had a monster GPU farm managing a trillion guesses per second. That’s wildly optimistic — real WPA2 cracking on a high-end GPU runs closer to a few hundred thousand to a few million per second, because the hashing is deliberately slow. Even so:

3.3 × 10^35 ÷ 10^12 ≈ 3.3 × 10^23 seconds ≈ 10 quadrillion years

Roughly 750,000 times the current age of the universe. So yes: a genuinely random 18-character password is, for practical purposes, unbreakable.

But sunnyvalley472 is also “14 characters of mixed letters and digits”. On paper it looks strong. In reality it lives in a search space of:

~1,000 common adjectives × ~1,000 common nouns × 1,000 digit combinations ≈ 1 billion candidates

Against 10^35 that’s a rounding error — the difference between searching every grain of sand on Earth and searching one beach. A modern GPU chews through a billion WPA2 candidates in minutes.

Password strength isn’t length, it’s entropy: how much genuine randomness is baked in. A predictable pattern, however long, collapses the search space to nothing. The manufacturer thought it was generating secure defaults. It was publishing a recipe.

Does this still work in 2026?

Partly, and the exceptions are worth knowing.

Step 2 has got harder. Access points with 802.11w — protected management frames — reject forged deauthentication outright, so you can’t kick a client off on demand. An attacker just waits for a natural reconnect instead. Slower, and it costs them nothing.

Step 4 is the one that actually breaks. The whole premise depends on WPA2’s handshake being crackable away from the network. WPA3’s SAE handshake removes that: every guess has to be made against the live access point, which turns a few million offline candidates into an attack that never finishes. If your router supports WPA3, this entire class of attack closes.

The takeaway

Default passwords are still the soft underbelly of consumer networking. Manufacturers like patterns because patterns are easy to print on a sticker and easy to support over the phone. Every pattern is a gift to anyone willing to spend a weekend working out the recipe.

So, two pieces of homework.

Change your router password. You don’t need a 20-character nightmare full of !@#$%. A passphrase of five or six truly random words is excellent — something like cabinet-orbit-pencil-whale-thunder-mango. It’s easy to remember, easy to type on a phone or a TV or a smart fridge, and mathematically very strong: six words drawn from the EFF’s 7,776-word list gives about 78 bits of entropy, or 2 × 10^23 combinations. Centuries of cracking, even on a GPU farm.

The catch is the word random. You can’t pick them yourself — you’ll reach for “summer”, “beach”, “love” and your dog’s name, and a hybrid wordlist eats that for breakfast. Use a password manager, or roll actual dice against the EFF’s Diceware list. Let the entropy come from the selection process, not from how strange the characters look.

Then check whether you can turn on WPA3. A good password stops this attack. WPA3 stops the attack from being possible.

What killed sunnyvalley472 wasn’t its length. It was that an algorithm, not a random process, generated it from a tiny predictable space. Avoid that and you’re fine — because somewhere out there, someone is wondering whether your manufacturer got lazy too, and the answer is depressingly often yes.


This post is for educational and defensive purposes. Capturing handshakes from networks you don’t own, or don’t have explicit written permission to test, is illegal in most jurisdictions. Get authorisation first.