Verizon / Fios WiFi Wordlists

FiosFiend

Active member
Joined
Apr 6, 2025
Messages
177
Reaction score
204
Credits
2,844
I have a thread here where I have been working on collecting / analyzing WiFi passwords for various Verizon devices. I have managed to collect quite a few. Through analysis, I have found a subset that is vulnerable to brute force. Here’s what I’ve found:

From my observations, the correct MAC address (BSSID) is broadcast in the handshake.

For G3100/E3200 devices
MAC address Block 3C.BD.C5.50.05.44 to 3C.BD.C5.FF.FF.FF and all of the DC.F5.1B, 74.90.BC MACS
  • SSID is Verizon_XXXXXX where X is any char <A-Z><0-9>
    SSID Passwords are 15 char and follow <word>-<word>-<word> with a single digit at the end of one word (ex: range-joy3-okey)
    Admin Passwords are 9 characters that are <A-Z><0-9> (ex: NQ4BJLC7H)
Dict_example.png

Because of the hyphens, single digit and 15 character limit <word> is ALWAYS comprised of a 3 character, a 4 character and a 5 character word. No other pattern is mathematically possible. Additionally, the <number> is always a single digit that is NEVER 0,1, 2, 5, or 8 and NEVER on the last word.


The ARC-XCI55AX follow the exact same pattern (except for a single 14 character entry). I doubled checked and the MAC prefixes 04.09.86, 18.58.80, 4C.22.F3, 54.B7.BD, A8.A2.37, AC.B6.87, C8.99.B2, F4.CA.E7 currently appear unique to this device. 84.90.0A and BC.F8.7E are found in the CR1000 dataset, but the current entries in this space also fit this pattern.

So those would be the MAC prefixes vulnerable to the built dictionary. Attached below, I have separated the collected passwords into 3 letter (372), 4 letter (605) , and 5 letter (412)words. I have also included the words from these wordlists and removed duplicates. Currently there are 5,563,483,200 possible combinations. The built dictionary would be over 95 GB, and change the next time I update the password list. So I am including a python script to build the dictionary instead. The script will ask you where the 3 wordlists are located, and then calculate the # of combinations and file size, and prompt you to continue before generating the combinations and saving output_combinations.txt to the same folder.

Please let me know if you encounter any errors or issues with the script. I’d love to hear your results if you give the dictionary a try!

Code:
import os
from tkinter import Tk, filedialog, messagebox
from itertools import product, permutations

def load_words(file_path):
    try:
        with open(file_path) as f:
            return [line.strip() for line in f if line.strip()]
    except FileNotFoundError:
        print(f"File not found: {file_path}")
        return []

def estimate_output_size(word_counts, digits=5, line_len=18):
    total_lines = 0
    for perm in permutations([3, 4, 5]):
        w1, w2, w3 = word_counts[perm[0]], word_counts[perm[1]], word_counts[perm[2]]
        total_lines += w1 * w2 * w3 * digits * 2  # 2 positions for the digit
    est_size_bytes = total_lines * line_len
    est_size_mb = est_size_bytes / (1024 * 1024)
    return total_lines, est_size_mb

def main():
    # Open folder picker dialog
    root = Tk()
    root.withdraw()
    folder_path = filedialog.askdirectory(title="Select Folder with Word Lists")

    if not folder_path:
        print("No folder selected.")
        return

    # File paths
    file3 = os.path.join(folder_path, "3_letter_words.txt")
    file4 = os.path.join(folder_path, "4_letter_words.txt")
    file5 = os.path.join(folder_path, "5_letter_words.txt")

    # Load word lists
    words = {
        3: load_words(file3),
        4: load_words(file4),
        5: load_words(file5)
    }

    if not all(words.values()):
        print("One or more word lists are empty or missing.")
        return

    # Estimate total combinations and size
    word_counts = {k: len(v) for k, v in words.items()}
    total_lines, est_size_mb = estimate_output_size(word_counts)

    print(f"Estimated combinations: {total_lines:,}")
    print(f"Estimated output file size: {est_size_mb:.2f} MB\n")
    proceed = input("Do you want to proceed? (y/n) ")
  
    if (proceed == "n"):
        print("User canceled generation.")
        return

    digits = ['3', '4', '6', '7', '9']
    output_file = os.path.join(folder_path, "output_combinations.txt")

    print("Generating combinations...")

    with open(output_file, "w") as f:
        for order in permutations([3, 4, 5]):
            wlist1, wlist2, wlist3 = words[order[0]], words[order[1]], words[order[2]]
            for w1, w2, w3 in product(wlist1, wlist2, wlist3):
                for d in digits:
                    f.write(f"{w1}{d}-{w2}-{w3}\n")
                    f.write(f"{w1}-{w2}{d}-{w3}\n")

    print(f"Done! Output saved to:\n{output_file}")

if __name__ == "__main__":
    main()
 

Attachments

  • 3_letter_words.txt
    1.5 KB · Views: 32
  • 4_letter_words.txt
    3 KB · Views: 32
  • 5_letter_words.txt
    2.4 KB · Views: 34

samer59

Member
Joined
Feb 25, 2021
Messages
18
Reaction score
14
Credits
142
I have these wordlists i've been compiling for quite sometime for all verizon routers listed in this thread ( 3 letter - 9 letter ). The 7 - 9 letter are for admin login passwords. I've actually cracked a few passwords with my wordlists.
 

Attachments

  • 3lista.txt
    7.2 KB · Views: 18
  • 4lista.txt
    28.8 KB · Views: 9
  • 5lista.txt
    20.6 KB · Views: 10
  • 9lista.txt
    130 bytes · Views: 12
  • 8lista.txt
    340 bytes · Views: 10
  • 7lista.txt
    5.4 KB · Views: 10
  • 6lista.txt
    22.4 KB · Views: 10

FiosFiend

Active member
Joined
Apr 6, 2025
Messages
177
Reaction score
204
Credits
2,844
Updated wordlists with @samer59 contributions.
 

Attachments

  • 3_letter_words.txt
    5.8 KB · Views: 18
  • 9_letter_words.txt
    119 bytes · Views: 17
  • 8_letter_words.txt
    341 bytes · Views: 16
  • 7_letter_words.txt
    6.4 KB · Views: 15
  • 6_letter_words.txt
    20 KB · Views: 14
  • 5_letter_words.txt
    17.8 KB · Views: 17
  • 4_letter_words.txt
    24 KB · Views: 19

Buunta

New member
Joined
Dec 7, 2023
Messages
2
Reaction score
1
Credits
12
Thank you so much for this. Generating now, if I get some hits i'll let you know!
 

samer59

Member
Joined
Feb 25, 2021
Messages
18
Reaction score
14
Credits
142
These are the most updated wordlists I have compiled for Verizon Fios.
 

Attachments

  • 7lista.txt
    7.3 KB · Views: 10
  • 5lista.txt
    21.3 KB · Views: 10
  • 3lista.txt
    7.2 KB · Views: 8
  • 8lista.txt
    410 bytes · Views: 9
  • 6lista.txt
    23.3 KB · Views: 7
  • 4lista.txt
    28.9 KB · Views: 9
  • 9lista.txt
    141 bytes · Views: 10

RifRafus

New member
Joined
May 31, 2025
Messages
3
Reaction score
1
Credits
19
@FiosFiend so I just randomly found out that the python scrip does not work on VPSes because of tkinter module. There is no GUI for a pop-up box to select files for this script, hence it errors out.
Would you be so kind to modify the script so it can be run on CLI only on remote servers? Thank you in advance!
 

FiosFiend

Active member
Joined
Apr 6, 2025
Messages
177
Reaction score
204
Credits
2,844
@RifRafus sorry for not getting back to you sooner. The python script is vibe coded, so you can easily toss it back to your favorite AI to add or remove the parts that you don’t want. Ideally you should have it rewritten in rust, with parallel processing to speed things up significantly.

Yeah unfortunately the dictionary that the python script creates isn’t really that useful. It is only helpful for a small subset of Verizon captures, and even then it would take a good bit to run. Unfortunately Verizon has done a great job at using a wide variety of words which makes the dictionary balloon to crazy sizes. When I originally posted this I thought it might be more helpful than what it actually is.
 
Top