Fios G3100 / E3200 Research

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
@Sardukarrr glad to see you checking back on this thread! Sadly, Fios-F1nDr became mostly useless since last update when I realized the serial is broadcast in the packet. This was the only real benefit that bit of code was doing, calculating the serial based on user input MAC and our date codes from the database. Although it’s not very useful at the moment, it will still accurately tell you all the relevant device info for the G3200/E3200. So I hope to update the code with the ability to tell you a bit of info on the various models in this thread then it will at least have some minor benefit again.

Yeah unfortunately the dictionary quickly ballooned to an unmanageable size... even using just the words that I’ve collected in the database creates a huge dictionary. Earlier in the week I output the wordlists again.

Saved 0 unique words to 2_letter_words.txt
Saved 392 unique words to 3_letter_words.txt
Saved 676 unique words to 4_letter_words.txt
Saved 492 unique words to 5_letter_words.txt
Saved 332 unique words to 6_letter_words.txt
Saved 512 unique words to 7_letter_words.txt
Saved 17 unique words to 8_letter_words.txt
Saved 0 unique words to 9_letter_words.txt


The smallest password pattern that I’ve observed is the strict 15-char <word>-<word>-<word> which gives us 7,822,563,840 combinations without including samer59’s contribution. Since the dictionary is going to continue to grow every update, we need to find other ways keep reduce the keyspace. I did have a bit of time to look into this more this week.

First, I had a script match all of the passwords that have a common word. the output is attached below. There are a couple words that have 8-10 matches! Unfortunately, there wasn’t anything that really jumped out to me. Maybe others can check it out and see if they notice anything? The most interesting thing that I saw was a 2 word match in passwords (gym3-tory-germ and gym3-carat-tory) for the ASK-NCQ1338.

Next, I considered the Netgear adjective-verb-digits example, so I looked at the various parts of speech. First I reduced the entries to only those with WiFi passwords with the hyphen (<word>-<word>-<word>), and then had a script use nltk.corpus to identify the parts of speech and then sort them by pattern. Here’s the result:

All <word>-<word>-<word>
Noun Digit Noun Noun - 274 (44%)
Noun Noun Digit Noun - 241 (39%)
Noun Digit Noun Other - 13 (2%)
Noun Digit Noun Adjective - 9 (1%)
Noun Digit Verb Noun - 9 (1%)
Other Noun Digit Noun - 9 (1%)
Adjective Noun Digit Noun - 8 (1%)
Noun Noun Digit Adjective - 8 (1%)
Noun Digit Adjective Noun - 8 (1%)
Noun Noun Digit Other - 7 (1%)
Noun Noun Digit Verb - 7 (1%)
Noun Digit Noun Verb - 7 (1%)
Noun Digit Other Noun - 7 (1%)
Verb Noun Digit Noun - 7 (1%)
Noun Digit Other Other - 2 (0%)
Adjective Noun Digit Adjective - 1 (0%)
Noun Other Digit Noun Noun - 1 (0%)
Noun Digit Other Verb - 1 (0%)
Verb Noun Digit Adjective - 1 (0%)

Total - 620

If we consider only the G3200/E3200 passwords, the trend is mostly the same.

G3100/E3200 <word>-<word>-<word>
Noun Digit Noun Noun - 65 (43%)
Noun Noun Digit Noun - 53 (35%)
Noun Digit Adjective Adjective - 4 (2.5%)
Noun Digit Noun Adjective - 4 (2.5%)
Noun Digit Noun Other - 4 (2.5%)
Adjective Noun Digit Noun - 3 (2%)
Noun Digit Other Noun - 2 (1%)
Noun Digit Verb Noun - 2 (1%)
Noun Noun Digit Other - 2 (1%)
Noun Noun Digit Other - 2 (1%)
Other Noun Digit Noun - 2 (1%)
Verb Noun Digit Noun - 2 (1%)
Noun Digit Noun Verb - 1 (0%)
Noun Digit Other Other - 1 (0%)
Noun Noun Digit Adjective - 1 (0%)
Noun Other Digit Noun Noun - 1 (0%)

Total - 150

Seeing that the majority of passwords are comprised only of nouns made me excited. However, AI tells me that nouns are the most common part of speech.. and unfortunately the other hits cover 20% of the list, which means we can’t eliminate them completely. Structuring a dictionary to put all of the nouns at the top could potentially find a hit faster, but it doesn’t reduce the overall dictionary any.

1748841732716.png

After separating the passwords I also noticed for G3200/E3200/ARC-XCI55AX (255 passwords), none of the first words start with letter L. This is a bit peculiar as the only other letter that’s missing is X. It would only slightly reduce the keyspace, and unfortunately this oddity doesn’t hold across all of the devices. So it may be possible that we just haven’t picked one up yet, but something to consider.

There are 12 permutations of the 15 character <word>-<word>-<word> pattern, so I separated all of these passwords and evaluated the permutation pattern. In the output, #L is the word length, and {D} is where the digit is; here’s the result:

5L{D}-4L-3L = 56 occurrences
5L{D}-3L-4L = 42 occurrences
4L{D}-5L-3L = 39 occurrences
3L-4L{D}-5L = 38 occurrences
3L-5L{D}-4L = 38 occurrences
5L-4L{D}-3L = 38 occurrences
3L{D}-4L-5L = 34 occurrences
3L{D}-5L-4L = 31 occurrences
4L-3L{D}-5L = 31 occurrences
4L{D}-3L-5L = 28 occurrences
4L-5L{D}-3L = 26 occurrences
5L-3L{D}-4L = 26 occurrences


Again, it’s interesting that the passwords with the 5-character word first are at the top of the list, but with all of the other hits we certainly can’t eliminate anything. So after all of this, we haven’t really eliminated anything... but we can at least structure the dictionary in a way that is somewhat favorable. I am not at all convinced that these passwords are truly random, otherwise there is no way to guarantee that the same password wouldn’t be generated multiple times. Like other router algorithms, they are likely using some sort of unique identifier to generate these. We know that the algorithm isn’t on the device, since the password and other info is burned into NVRAM. One thing that caught my attention in my last post was the UUID (universally unique identifier). I was having a bit of FOMO since the UUID isn’t shown on the sticker or QR code... So I decided to look through the unencrypted CR1000A firmware and found this.

Code:
uuid=$(echo "$macaddr" | sed 's/://g')
uuid_config="uuid=87654321-9abc-def0-1234-$uuid"

It looks like for the CR1000A/B we just append the MAC address (with : removed) to the end of this string? Let’s check the capture we have..

Device_List.png
MAC: 0409863d0167 UUID: 876543219abcdef012340409863d0165

Hey that’s cool! The UUID is as expected, but 2 off of the broadcast MAC. Looking at the firmware a bit more we see why.

Code:
 option mac_address '78:67:0E:33:2F:BE'
    option mac_address_eth '78:67:0E:33:2F:BF'
    option mac_address_wlan1 '78:67:0E:33:2F:C0'
    option mac_address_wlan2 '78:67:0E:33:2F:C1'
    option mac_address_wlan3 '78:67:0E:33:2F:C2'
    option mac_address_moca_lan '78:67:0E:33:2F:C3'
    option mac_address_iot1 '78:67:0E:33:2F:C4'

The MAC broadcast in the WiFi packet is for wlan1, but the UUID is based off what I’ll call the “real” MAC. This also explains why this model has “steps” of 7 when we compared the MAC HEX/Serial. Each devices actually takes up 7 MAC addresses!

CR1000_HexSerialCompare.png

Also while poking around the firmware, I found the hidden networks (Backhaul and TV) that @soxrok2212 had mentioned earlier.

Hidden networks.png

Looking locally, I can see that Fios routers are still broadcasting the hidden networks. Without any devices connected to them though, I’m not sure how we would capture the hash.

'Fios-XDmH5' bssid=b8:f8:53:50:54:52
<HIDDEN> bssid=82:f8:53:50:54:52

'Fios-LY7d6’ bssid=3c:bd:c5:25:19:aa
<HIDDEN> bssid=82:bd:c5:25:19:ae
 

Attachments

  • matched_passwords_by_word.txt
    33.7 KB · Views: 13
Last edited by a moderator:

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
I was able to add some new entries to the database this week, but without any new models, websites or search terms we only picked up newly listed items. I did have a large backlog of G1100 images that I needed to manually process so I got those entered. Unfortunately, I still need to try to match the MAC/Serial sticker with the G1100 entries and organize the reference images for uploading... next week. Normally I would run Fios-F1nDr on the new entries, but we don’t need to do that anymore. Most of the entries would have calculated correctly, I think we only had 1 or 2 new date codes this week.

Updated Data Set: router_data_FULL_060225.xlsx

The Dataset now contains:

G3100/E3200 - 571 entries
CR1000 A/B - 117 entries

ARC-XCI55AX - 104 entries
ASK-NCQ1338 - 132 entries
WNC-CR200A - 45 entries
G1100 - 259 entries
Other - 77 entries
Total - 1305 entries


The following devices will stay in the Other category until I collect 50+ entries for them, but let’s see what we have in there.

image_4192502637.jpg
The ASK-NCM1100 and ASK-NCM1100E is a 5G NR Sub 6 WiFi 7 Router manufactured by Askey Computer. The device teardown doesn’t show much, and I couldn’t find the relevant info through other searches. I didn't find any firmware either. The sticker doesn’t offer much info, but the QR code does including the MAC, ESSID, ICCID, and Date. Like the ASK-NCQ1338 these have the 6-digit pin that I still don’t know what it’s for. There are currently 17 entries for these devices

Code:
('WIFI:S:Verizon_9RGMN3;T:WPA;P:gear9-drub-arc;;ROUTER:M:ASK-NCM1100;S:ACR42416174;D:20240708;P:7LZXTZ9YJ;E:354784270372742;C:89148000010537500092;B:3888710BF498;P:963160;;1',)

SSID is Verizon_XXXXXX where X is any char <A-Z><0-9>
SSID Passwords are 14 or 15 characters and either <word><number><word><number><word> format (ex: glance5ane3pore)
or <word>-<word>-<word> with a single digit at the end of the first or second word (ex: dub6-grim-twain)​
Admin Passwords are 9 characters <A-Z><0-9> format (ex: 4HDHGBV9R)
MAC Prefixes 38.88.71


ASK-RTL108_list3_img3.jpg
The ASK-RTL108 is another LTE router. The device teardown is pretty much useless. The QR code has some good info though, including the MAC, ESSID, and Date. There are currently 4 entries for these devices.

Code:
('WIFI:S:LTE-Home-2806;T:WPA;P:listing-instate-jerker;;ROUTER:M:ASK-RTL108;S:G1B6B050898;D:20200709;F:202823;X:LTE-Home-2807;I:admin;P:hair-jibbing-eggnog;E:354447110054868;;1',)

SSID is LTE_Home_XXXX where X is any char hexadecimal <A-F><0-9>
SSID Passwords are 18-23 characters and <word>-<word>-<word> format (ex: listing-instate-jerker)
Admin Passwords are 19-23 characters <word>-<word>-<word>format (ex: hair-jibbing-eggnog)
MAC Prefixes F4.69.42, F8.5B.3B

Fiosrouter_list669_img10.jpgFiosrouter_list669_img10pt2.jpg
The FSNO21VA is an “internet gateway for business” manufactured by Foxconn International Holdings Ltd (FIH). The device teardown is a little better than the previous two models, but I still can’t make out much. The info is split between 2 stickers and the QR code is very hard to read on the black background. I was only able to read one entry for the QR, but it does tell us the relevant info. There are currently 20 entries for these devices.

Code:
('WIFI:S:Verizon_4CDF6H;T:WPA;P:remit9-awl-malt;;ROUTER:M:FSNO21VA;S:ABH30311444;D:02-03-2023;;I:admin;P:G4KZY73MG;E:356405431318345;B:98C8549FBF9C;;;1',)

SSID is Verizon_XXXXXX or where X is any char <A-Z><0-9>
SSID Passwords are 15 characters and <word>-<word>-<word> with a single digit at the end of the first or second word (ex: eft4-neath-gong)
Admin Passwords are are 9 characters <A-Z><0-9> format (ex: Y96XCDZSQ)
MAC Prefixes 98.C8.54

image_4192505636.jpgG1100_2522pt2.jpg
The LVSKIHP is also known as LV55 is a 5G NR/LTE CPE Router, the LVSKM1manufactured by Wistron NeWeb. The LVSKM1 and LVSKR1 are similar from what I can tell. The LVSKIHP device teardown for doesn't show much that I can make out other than these are using Qualcomm chips. The LVSKM1 teardown and LVSKR1 teardown are even worse. The sticker is split in two, but the QR contains the relevant info. Kind of odd, they have placeholder for firmware version but don’t actually list it. There are currently 9 entries for these devices.

Code:
('WIFI:S:Verizon-5G-Home-C169;T:WPA;P:vale7-shoe-raw;;ROUTER:M:LVSKIHP;S:GI1BAM01F158;D:20211027;F:;X:;I:http://192.168.0.1;P:BLGPCDP37;E:355806711286931;B:885A85F4C16C;P:680773;;1')

SSID is Verizon-5G-Home-XXXX or where X is hexadecimal <A-F><0-9>
SSID Passwords are 13 - 15 characters and <word>-<word>-<word> with a single digit at the end of the first or second word (ex: dump7-aft-puma)
Admin Passwords are are 9 characters <A-Z><0-9> format (ex: 44XPWCNPM)
MAC Prefixes 64.FF.0A, 88.5A.85, B8.9F.09


FBLinks_list131_img3.jpg
The NVG558HX is a “fixed broadband gateway” manufactured by ARRIS. The device teardown is also complete shit. Thankfully the sticker and has all of the info we want. These devices have the least secure passwords that we have encountered. There are currently 4 entries for these devices.

Code:
('WIFI:S:Verizon-1776;T:WPA2;P:j3337hg43nrs;;ROUTER:M:NVG558HX;S:MV2134DN3756;D:20210827;F:9.4.0h1d43;I:admin;P:5968372461;;1',)

SSID is Verizon-XXXX or where X is hexadecimal <A-F><0-9>
SSID Passwords are 12 characters <a-z><0-9> (ex: nkn35vnjrm5g)
Admin Passwords are are 10 characters <0-9> format (ex: 5943714157)
MAC Prefixes Unknown

image_32000737.jpg
The WCB6200Q is a network extender manufactured by Actiontec. The device teardown shows a Broadcom chipset, but I am unable to read the CPU model number. All of the typical info is on the sticker and QR code. There are currently 23 entries for these devices.

Code:
('WIFI:S:Home-AA9DE;T:WPA;P:guests977missouri3;;EXTENDER:M:WCB6200Q;S:GWXA8140802285;X:Home-AA9DE-5G;P:expire2but;C:70F2201A45A0;;1',)

SSID is Home-XXXXX or where X is any char <A-Z><0-9> I also picked up 1 Actiontec-XXXX where X is a digit <0-9>
SSID Passwords are 17 or 18 characters and <word><number><word><number>(ex: nevada635gauzy3929)
I also caught several entries that are <number><word><number><word> (ex: 738adoring069owned)
Admin Passwords are are 10 characters <word><number><word> format (ex: drip6smoky)
MAC Prefixes 4C.8B.30, 10.78.5B, 70.F2.20

image_4192500701.jpg
The Actiontec Mi424wr gets caught by our scraping quite often. However, this device doesn’t have a QR code, so I have mostly ignored it for now. Once I run out of things to do maybe I’ll go back and enter these manually.

Well folks, that covers all of the Other Fios/Verizon devices I’ve encountered so far. Next week I’ll highlight some of the devices that I’ve found that are not part of the Verizon network.
 

Attachments

  • image_4192506059.jpg
    image_4192506059.jpg
    518.8 KB · Views: 12

SubZero5

Active member
Feedback: 0 / 0 / 0
Joined
Apr 23, 2020
Messages
306
Reaction score
21
Credits
3,265
Code:
g3100_fw_2.0.0.6.bin -
VERIZON-G3100 ARCADYAN2018000001 G3100 R0A SA SA/01 ARVZ20180001 0000000000 1234567890 123456 0000222220 70 %d Si32260_LCQC_DE 000000000000000000000000000000000000

NAND Dump
VERIZON-G3100 ARVZ201800001 0000000000 G402121100103771  1  G3100  G3100  ROA  SA  SA/01  450  ""  70 SA  SA/01  were4-caw-cruet  123456 0000222220  70  %d  Si32260_000000000000000000000000000000000000  6BNF9CZG7  123456  00002222123456  Verizon_79ZJ3C
Seeing Arcadyan made me remember some AirTies WiFi devices sold in Turkey, Greece and (forgot the 3rd place, sorry) was also produced by Arcadyan...

Also there are some ZyXEL P-660HN-T1 v2 devices sold in Turkey with Zyxel_XXXX one of which had password like ########## (the one I saw was with CC:32:E5:XX:XX:XX)
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
@SubZero5 yes Arcadyan is the manufacture of many different routers. I haven’t seen any of their other routers use similar passwords to Verizon/Fios however. Let me know if you find any!

I realized this week that my eBay scraping tool wasn’t working as expected anymore as it was getting flagged as a bot. So I switched the code to use a real browser and did a DEEP scrape again to see if I missed anything. I processed 36218 images from 4441 listings. I’ve only had a chance to add the entries that had QR reads, so I have a bunch of manual entries that I still have to go through.

Updated Data Set: router_data_FULL_060825.xlsx

The Dataset now contains:

G3100/E3200 - 608 entries
CR1000 A/B - 127 entries
ARC-XCI55AX - 120 entries

ASK-NCQ1338 - 139 entries
WNC-CR200A - 45 entries
G1100 - 313 entries
NVG558HX - 54 entries
Other - 95 entries
Total - 1501 entries


We managed to jump from 4 to 54 entries for the NVG558HX, so now they have their own sheet in the database. We already saw that the SSID is generated from the last 4 characters of the MAC, but we already caught a SSID collision!

NVG_CollisionA.jpeg NVG_CollisionB.jpg

I mentioned last post that these devices have the least secure passwords that we have encountered. This was based on the 12 character length, <a-z><0-9>. However, I failed to check the calculations. For each position, there are 26 characters +10 digits = 36 possible choices. The number of possible password combinations is 36^12 = 4,738,381,338,321,616,896 which is uncrackable. Now that we have more entries, we see some characters are omitted (a,e,i,l,o,u,0,1) = 28 possible choices. 28^12 = 232,218,265,089,212,416 which is significantly smaller, but still uncrackable :cry:.


We also have over 300 entries for G1100 now! I finally had a chance to match a good many of the second stickers, which adds the MAC address, Hardware version, Firmware version, and a few missing Serial numbers. Now we can fill in some of the missing info from before!

SSID is FiOS_XXXXX or Fios_XXXXX where X is any char <A-Z><0-9> (The FiOS prefix is unique to this device)
SSID Passwords follow <word><number><word><number><word> (They’re rare, but I did find a few that are <number><word><number><word>)
Admin Passwords are 8-10 characters and follow <word><number><word>

From this sample we can gain some other info:
  • SSID passwords are 16-18 characters long (16 characters is rare, but a few entries so far)
    • These appear to be the most complex out of all of the devices.
  • Password <word> are between 3-6 characters for SSID Password
  • MAC Prefixes 18.78.D4, 20.C0.47, 48.5D.36, C8.A7.0A, D4.A9.28
  • HW version 1.03 and 1.04
  • Shipped firmware is 0.17.17 to 02.02.00.14
I also found a bit more information about this device. When translated, this site elaborates on the way to get root. CVE-2019-3916 was a password salt information disclosure. The final result is a response from the device that looks like this response "passwordSalt":"6299bfce-1d56-4a6c-9bd8-352dc9ce865c. Hey, we recognize that as the UUID! The device stores the admin password as a SHA-512 using the UUID as the salt.

The admin password is also stored as a SHA-512 hash in the CR1000A firmware:

option default_gui_pwd ‘ad7336a048595ddcb52007daf66fe750007a30c88a594a1882a2971c432b1007e381cc8ca5556c4f77f7df1aefc82bc5f083eb799b5e5867470cf3fe6731dcc3

However looking a bit more at the code, we see instead they take the password --> MD5 --> SHA-512

hash_guipwd=$(echo -n $guipwd | xargs echo -n | openssl md5 | awk '{printf $2}' | openssl sha512 | awk '{printf $2}')



Researching other Verizon CVEs I found CVE-2022-28376 for the LVSKIHP
WNC_engineer_pwd.png

"This function reveals that the engineering username is "verizon" and the engineering password is the first and last 7 characters of the SHA256 hash of the Serial Number concatenated with the Model Number of the device.

Similarly, CVE-2022-28377 provides us with this info:

Line 162 of InDoorUnit /etc/init.d/wnc_factoryssidkeypwd:
rpc_pwd=`/usr/sbin/wnc_get_sec_2 $baseMAC`

An attacker must extract the binary from the firmware image, run it in an ARM environment with the string "DEVICE_MANUFACTURER='Wistron_NeWeb_Corp.'" in a file /etc/device_info, and provide the IDU's base ethernet MAC address.


The author shows where the firmware was originally downloaded from: https://4g2.vzwdm.com/oma-dlserver/requestdd?imagename=WNC_LVSKIHP_1648140226730
Unfortunately the link returns an error for me.

WNC_404.png

Verizon made improvements after the disclosure, but it looks like there still might be a keygen on the device?
WNC_keygen.png
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
Hey everyone, it’s time again for another update. I was able to manually process most of the images from last week's large scrape. I added some more of the G1100 MAC addresses. Unfortunately, we didn’t add to many entries to the database this week.

Updated Data Set: router_data_FULL_061425.xlsx

The Dataset now contains:
G3100/E3200 - 613 entries
CR1000 A/B - 138 entries
ARC-XCI55AX - 122 entries
ASK-NCQ1338 - 142 entries
WNC-CR200A - 46 entries
G1100 - 322 entries
NVG558HX - 58 entries
Other - 118 entries
Total - 1559 entries


This week’s scrape did match 2 VERY similar passwords however. Certainly this can’t be a coincidence?

We caught a WNC-CR200A with the WiFi password grille9-yea-ode
We also have a CR1000A with the WiFi password yea-grille9-ork

image_CR100545.jpeg

image_4192504518 copy.jpeg


I also figured out that the script to decrypt the CR1000A config file also works for the G3100! Modifying the config file was has been used to enable SSH on G1100 and CR1000. Unfortunately, on the latest firmware the G3100 doesn’t give us much to work with, just a bunch of files with the normal configuration parameters.

decrypted_config.png system.png

My device is currently on the latest firmware 3.4.0.10, so I tried to rollback my firmware using https://192.168.1.1/#/firmware_upgrade. I was able to roll back to 3.4.0.4, but anything before that was unsuccessful.

Firmware rollback.png

During this, I realized that the firmware was one version newer than my OP, so here are the links to the newest Firmware for G3100 and E3200
Code:
https://cpe-ems34.verizon.com/firmware/BHRx/g3100_fw_3.4.0.10_loader.bin
https://cpe-ems34.verizon.com/firmware/BHRx_Ext/e3200_fw_3.4.0.9_loader.bin

Also I’m excited to share that with a bit of help from @soxrok2212 I was able to find some more previously unknown firmware links!

Here are the links for the G1100
Code:
http://cpe-ems0001.verizon.com/firmware/frontier4_vz_stepstone_release_01.03.01.02_firmwareupgrade.bin.signed
https://cpe-ems34.verizon.com/firmware/bhr4_release_02.03.00.13_firmwareupgrade.bin.signed
https://cpe-ems34.verizon.com/firmware/bhr4_release_02.03.00.14_firmwareupgrade.bin.signed

The first and last link I found in the firmware. Kind of strange, I expected to find more firmware versions, but I fuzzed the links using the file prefixs: bhr4, bhr4_release, and bhr4_stepstone_release, for firmware versions 01.00.00.00 to 03.05.06.30 followed by _firmwareupgrade or -FTR_firmwareupgrade ending with both .bin or .bin.signed on the base URLs https://cpe-ems33.verizon.com/firmware/, https://cpe-ems34.verizon.com/firmware/, and https://cpe-ems34.verizon.com/firmware/BHR4/. I also checked for frontier4_vz_stepstone_release, bhr4_stepstone_release, and bhr4_release on .

The firmware contained these 2 links, but nothing is available there anymore.
Code:
https://cpe-ems34.verizon.com/firmware/bhr4_release_02.02.00.16_firmwareupgrade.bin.signed
https://cpe-ems34.verizon.com/firmware/bhr4_release_02.03.00.04_firmwareupgrade.bin.signed

We also found firmware links for the ASK-NCQ1338, I was able to figure out that the firmware naming is in the format ASK-NCQ1338_<current version>_<new version>.bin. Since I already collected the firmware version in the database, It was easy to enumerate other links! There were a few links missing files, I’m guessing that there is probably another firmware version in between. I could try fuzzing to find them, but I don’t think it’s entirely necessary at the moment. These links are accessible even if you’re not on the Fios network.

Code:
https://cdn2.vzwdm.com/ASK-NCQ1338_212331_212431.bin
https://cdn2.vzwdm.com/ASK-NCQ1338_212431_213231.bin
https://cdn2.vzwdm.com/ASK-NCQ1338_213231_214322.bin
<missing>https://cdn2.vzwdm.com/ASK-NCQ1338_214322_214727.bin
<missing>https://cdn2.vzwdm.com/ASK-NCQ1338_214727_220745.bin
<missing>https://cdn2.vzwdm.com/ASK-NCQ1338_220745_220847.bin
<missing>https://cdn2.vzwdm.com/ASK-NCQ1338_220847_222146.bin
https://cdn2.vzwdm.com/ASK-NCQ1338_220847_222146.bin
<missing>https://cdn2.vzwdm.com/ASK-NCQ1338_222656_222746.bin

Running binwalk on the firmware, it pops right open! I haven’t found anything too exciting, but I still need to poke around more.
NCQ1338.png
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
This week was just a typical scrape, but we managed to add over 100 new entries! I also got the MAC addresses entered for the NVG558HX entries. We have added model CE1000A to the scrape, they get added under CR1000A/B.

Updated Data Set: router_data_FULL_062425.xlsx

The Dataset now contains:
G3100/E3200 - 646 entries
CR1000 A/B - 158 entries
ARC-XCI55AX - 130 entries
ASK-NCQ1338 - 151 entries
WNC-CR200A - 49 entries
G1100 - 352 entries
NVG558HX - 60 entries
Other - 130 entries
Total - 1676 entries



I wanted to highlight some of the devices that get caught in the QR scrape but are out of scope for this thread. Maybe sometime I will have some time to check them out further. I have seen a dozen or so devices, but most of the time the QR only contains the SSID / Password. Here are a few that are a bit more interesting.

Century_C4000LG.jpg

The QR code has the SSID, WiFi Password, Model, Serial, and Admin password.
Code:
('WIFI:T:WPA;S:CenturyLink2155;P:qtu72q46dmj5r4;www.centurylink.com/home/account/installmyapp.html;C4000LG;C4000LG2034582155;192.168.0.1;admin;Ux5sc7Ta;',)

Linksys_MX20WH.jpeg

The QR code is structured a bit differently, but contains all of the info that’s on the sticker.
Code:
('S/N:50D10M2BD07603\rMAC:80691A6ECE42\rName:_VelopSetupE42\rPassword:ktxt0dhzrj\rRecovery Key:67502',)

Motorola_.MG8702jpg.jpg

The QR code has the SSID, WiFi password, MAC, Serial, Model
Code:
('WIFI:T:WPA2;S:MOTOB34E;P:glassfly525;;DEVICE:M:00403696B34E;S:1163-MG8702-30-1189;T:MG8702;;',)

TMobile_KVD21.jpeg

The QR code is missing the Serial and IMEI
Code:
('{"ID":"TMOBILE-7DF4",\n"KY":"award.wackiness.scabbed.jam",\n"U":"admin",\n"P":"wasp.raking.renewal.unleaded",\n"BT":"TMOBILE-7D-F4",\n"PN":"FMNT055AX000J",\n"23S":"ACDF9F1B7DF8"}',)

TPlink_AX11000.jpg

Not much info in the QR code, but the sticker contains everything we would expect. These passwords are 8 characters all digits and very easy to crack as seen here and on WPA-SEC.
Code:
('WIFI:T:WPA;S:TP-Link_BB4E;P:43582969;;',)
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
The weeks go by quick and it’s time for another update already! This week I didn’t run any scrapes or process any images for passwords, which means we don’t have a database update.

@samer59 shared his wordlists collected from the TMobile KVD21 on the hashcat post, so I thought I should extract all of the words in my database to their appropriate lists again. I have also included these Fios words in my lists.

Saved 454 unique words to 3_letter_words.txt
Saved 888 unique words to 4_letter_words.txt
Saved 611 unique words to 5_letter_words.txt
Saved 379 unique words to 6_letter_words.txt
Saved 564 unique words to 7_letter_words.txt
Saved 7 unique words to 8_letter_words.txt


Without including samer59’s contrubution, using the dictionary generator I previously posted would create a dictionary of 14,779,552,320 possible combinations for the strict 15-char <word><word><word> SSID passwords. Unfortunately I still haven’t found a way to reduce this list further.

It’s not all bad news this week though, I’ve made a bit of progress with the firmware! I shared the list of firmware links that I've found, and a GitHub user is hosting them for people that can’t download directly from Verizon :wink: (https://3to.moe/verizon_fw/). My G3100 device is currently on version 3.4.0.10, which I thought was the latest version. However, I had noticed version 3.6.0.6 was listed on the verizon firmware page. We already know the URL to find this firmware, so it was easy to find the link. Other devices had newer firmware listed too, so we grabbed those. I updated the fuzzing script with the new info and here’s what we found.

Code:
G3100:
https://cpe-ems34.verizon.com/firmware/BHRx/g3100_fw_3.6.0.5_loader.bin
https://cpe-ems34.verizon.com/firmware/BHRx/g3100_fw_3.6.0.6_loader.bin

E3200:
https://cpe-ems34.verizon.com/firmware/BHRx_Ext/e3200_fw_3.6.0.3_loader.bin

CR1000A:
https://cpe-ems34.verizon.com/firmware/CHRA/chr2fa_fw_3.6.0.2_BD_loader.bin

CR1000B:
https://cpe-ems34.verizon.com/firmware/CHRB/chr2fb_fw_3.6.0.2_BD_loader.bin

I was also rereading the huge OpenWRT thread on unlocking the CR1000A again, which this post had a link to firmware that I previously overlooked. These file names would be much harder for me to fuzz since they include a timestamp. However searching for the "cdn3.vzwdm” I came across these links. These files are also able to be directly downloaded by anyone!

Code:
https://cdn3.vzwdm.com/hdm/chr2fa_fw_3.2.0.11_oldsig_1685136655890.bin
https://cdn3.vzwdm.com/hdm/chr2fa_fw_3.3.0.11_loader_1715281399811.bin
https://cdn3.vzwdm.com/hdm/chr2fa_fw_3.3.1.2_1735849764361.bin

The firmware with the oldsig caught my attention. That is the first time we’ve seen this in the file name, and version 3.2.0.11 is actually one that we didn’t previously have. Unfortunately we don’t get any different outcomes using binwalk on these newly found firmware. However, the G3100/E3200 are Broadcom devices, and I found this script (BRCM-Unpack) that is supposed to unpack their firmware. Sadly it doesn’t correctly extract any of the G1100/G3100/E3200 firmware, but we get the following output for ALL of the CR1000A/B.


Code:
Image Processing Started on Thu 26 Jun 08:04:50 EDT 2025

Log: output.log
Source: chr2fa_fw_3.2.0.11_oldsig.bin
Size: 61219600

Checking Package Version

SQFS Offset: 55468552
Saved: root_fs.sqfs

Checking for FDT Pattern

FDT Offset: 256
Saved: chr2fa_fw_3.2.0.11_oldsig.dtb
chr2fa_fw_3.2.0.11_oldsig.dts: Warning (unit_address_vs_reg): /images/script/hash@1: node has a unit name, but no reg property
chr2fa_fw_3.2.0.11_oldsig.dts: Warning (unit_address_vs_reg): /images/hlos-199b4e2d5c82b8034f572c5225279453506f03d4/hash@1: node has a unit name, but no reg property
chr2fa_fw_3.2.0.11_oldsig.dts: Warning (unit_address_vs_reg): /images/rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450/hash@1: node has a unit name, but no reg property
chr2fa_fw_3.2.0.11_oldsig.dts: Warning (unit_address_vs_reg): /images/wififw_v1-45b62ade000c18bfeeb23ae30e5a6811eac05e2f/hash@1: node has a unit name, but no reg property
chr2fa_fw_3.2.0.11_oldsig.dts: Warning (unit_address_vs_reg): /images/wififw_v2-d1ec7b26faa44d75a2a40afa9a11c844f2b6ead3/hash@1: node has a unit name, but no reg property
Saved: chr2fa_fw_3.2.0.11_oldsig.dts

Description: Flashing emmc 200 200
Nodes: images
Images: script hlos-199b4e2d5c82b8034f572c5225279453506f03d4 rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450 wififw_v1-45b62ade000c18bfeeb23ae30e5a6811eac05e2f wififw_v2-d1ec7b26faa44d75a2a40afa9a11c844f2b6ead3

Extracting: script
  Description:  flash.scr
  Created:      Wed May 24 13:38:48 2023
  Type:         Script
  Compression:  uncompressed
Saved: script

Extracting: hlos-199b4e2d5c82b8034f572c5225279453506f03d4
  Description:  openwrt-ipq-ipq807x_64-qcom-ipq807x-hkxx-fit-uImage.itb.padded
  Created:      Wed May 24 13:38:48 2023
  Type:         Firmware
  Compression:  uncompressed
Saved: hlos-199b4e2d5c82b8034f572c5225279453506f03d4

Extracting: rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450
  Description:  openwrt-ipq-ipq807x_64-squashfs-root.img
  Created:      Wed May 24 13:38:48 2023
  Type:         Firmware
  Compression:  uncompressed
Saved: rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450

Extracting: wififw_v1-45b62ade000c18bfeeb23ae30e5a6811eac05e2f
  Description:  wifi_fw_squashfs.img
  Created:      Wed May 24 13:38:48 2023
  Type:         Firmware
  Compression:  uncompressed
Saved: wififw_v1-45b62ade000c18bfeeb23ae30e5a6811eac05e2f

Extracting: wififw_v2-d1ec7b26faa44d75a2a40afa9a11c844f2b6ead3
  Description:  wifi_fw_ipq8074_qcn9000_squashfs_v2.img
  Created:      Wed May 24 13:38:48 2023
  Type:         Firmware
  Compression:  uncompressed
Saved: wififw_v2-d1ec7b26faa44d75a2a40afa9a11c844f2b6ead3

Finished Image Processing: Thu 26 Jun 08:05:15 EDT 2025

Started Kernel Processing: Thu 26 Jun 08:05:15 EDT 2025
All Processing Completed on Thu 26 Jun 08:05:15 EDT 2025

The script extracted several images for us! That rootfs looks nice, but its LUKS encrypted.
Code:
rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 4d12098e-44d5-46f4-8dd4-2622485ae277

The file that starts with “hols-“ is actually the U-Boot image (fit-uImage.itb.padded), and is also encrypted. Fortunately the user spol-eff posted a script to decrypt this image. The original script was in Swift code, but I ported it to python.

Python:
import hashlib
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import os
import struct

def decrypt_hlos(input_filepath, output_filepath):
    """
    Decrypts the HLOS image using SHA384 for key derivation and AES-256 CBC.

    Args:
        input_filepath (str): Path to the input encrypted HLOS file.
        output_filepath (str): Path for the decrypted output file.
    """
    # 1. Key Derivation (SHA384)
    # The Swift code uses SHA2(variant: .sha384).calculate(for: ...)
    # The input bytes are [0x26, 0x46, 0x35, 0x75, 0x61, 0x23, 0x4f, 0x72, 0x36, 0x56]
    key_material = bytes([0x26, 0x46, 0x35, 0x75, 0x61, 0x23, 0x4f, 0x72, 0x36, 0x56])
    sha384_hash = hashlib.sha384(key_material).digest()

    # The AES key is the first 0x20 (32) bytes of the SHA384 hash.
    # SHA384 produces a 48-byte hash, so we take the prefix.
    aes_key = sha384_hash[:0x20] # 32 bytes for AES-256

    # 2. AES Setup (CBC Mode, No Padding)
    # IV is Array(repeating: 0x0, count: 0x10) -> 16 null bytes
    aes_iv = bytes([0x0] * 0x10) # 16 bytes for AES block size

    # Initialize AES cipher
    cipher = Cipher(algorithms.AES(aes_key), modes.CBC(aes_iv), backend=default_backend())
    decryptor = cipher.decryptor()

    # 3. File Handling and Decryption
    try:
        # Ensure output directory exists if output_filepath includes one
        os.makedirs(os.path.dirname(output_filepath), exist_ok=True)

        with open(input_filepath, 'rb') as input_file:
            # Read the first 4 bytes (UInt32) for image size (little-endian)
            # and then seek back and past the 0x200 offset.
            # Swift code reads 4 bytes, then seeks to 0, then seeks to 0x200.
            # We can directly seek to 0x200 and read the rest.
            
            # First, read the full content after the header to calculate size if needed
            # For this script, we'll mimic the Swift behavior for imageSize display
            
            input_file.seek(0)
            size_bytes = input_file.read(4)
            if len(size_bytes) < 4:
                raise ValueError("Input file too small to read image size header.")
            
            # The Swift code loads as UInt32 littleEndian.
            # struct.unpack('<I', ...) parses 4 bytes as unsigned int, little-endian.
            image_size = struct.unpack('<I', size_bytes)[0]
            print(f"Image size (from header): {image_size} bytes")

            # Seek to the actual start of the encrypted data
            input_file.seek(0x200)
            image_bytes = input_file.read() # Read the rest of the file

            # Decrypt the image bytes
            decrypted_bytes = decryptor.update(image_bytes) + decryptor.finalize()

        # Write decrypted data to output file
        with open(output_filepath, 'wb') as output_file:
            output_file.write(decrypted_bytes)

        print(f"Done: written {len(decrypted_bytes)} bytes to {output_filepath}")

    except FileNotFoundError:
        print(f"Error: One of the files was not found.")
        print(f"Input: {input_filepath}")
        print(f"Output: {output_filepath}")
    except Exception as e:
        print(f"An error occurred: {e}")

Once the hlos- file is decrypted, the image unpacks cleanly with unblob! The U-Boot image contains /etc/keyfile
hlos_image.png


On a Linux system with cryptsetup installed, we can use this keyfile to decrypt and open the LUKS encrypted rootfs.

Rich (BB code):
#sudo cryptsetup --key-file=keyfile luksOpen <file_path> <mapping_name> -v
sudo cryptsetup --key-file=keyfile luksOpen rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450 CR1000A_rootfs -v

This command has -v for verbose output, and should display:
Key slot 0 unlocked.
Command successful.


The decrypted SquashFS image will be located at /dev/mapper/<mapping_name>, so we can extract the image with
Rich (BB code):
#sudo unsquashfs /dev/mapper/<mapping_name>
sudo unsquashfs /dev/mapper/CR1000A_rootfs

Which gives us the full, decrypted rootfs :giggle:

SquasFS_root.png


The keyfiles themselves aren’t in plain text, but we can view/share them using the command

Rich (BB code):
cryptsetup luksDump —dump-master-key —key-file <keyfile path> <rootfs path> 

WARNING!
========
The header dump with volume key is sensitive information
that allows access to encrypted partition without a passphrase.
This dump should be stored encrypted in a safe place.

Are you sure? (Type 'yes' in capital letters): YES
LUKS header information for rootfs-38f7ad8fe7922c1367cfac77ce43c6ee879dc450
Cipher name:       aes
Cipher mode:       xts-plain64
Payload offset:    4096
UUID:              4d12098e-44d5-46f4-8dd4-2622485ae277
MK bits:           256
MK dump:    30 c8 8e 47 a9 a0 d2 90 bb 3c 22 27 3f c7 53 a6 
        71 e7 29 80 53 1f 43 67 e1 dd ca d4 5c c9 3a f4

I tried all of the above steps on the latest CR1000A firmware (chr2fa_fw_3.6.0.2_BD_loader.bin), everything works as expected!

Code:
LUKS header information for rootfs-d616347925ecd1d9eb4366fd0013d30798e505f5
Cipher name:       aes
Cipher mode:       xts-plain64
Payload offset:    4096
UUID:              36281f72-7198-49fb-aa70-70b1557b8b1b
MK bits:           256
MK dump:    82 29 97 83 3e 52 25 92 6b c5 c8 10 4c 32 a8 ea
        be 99 f1 68 ae 08 6a c8 c7 86 fe 3d 31 aa 27 39

I haven’t had much of a chance to poke around, but please let me know if anything catches your eye.
 

Attachments

  • 3_letter_words.txt
    1.7 KB · Views: 6
  • 4_letter_words.txt
    4.1 KB · Views: 10
  • 5_letter_words.txt
    3.4 KB · Views: 10
  • 6_letter_words.txt
    2.5 KB · Views: 10
  • 7_letter_words.txt
    4.3 KB · Views: 11
  • 8_letter_words.txt
    62 bytes · Views: 11

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
This week we’ve returned to our regularly scheduled scrapes, but only managed to snag 89 new entries.

Updated Data Set: router_data_FULL_070525.xlsx

The Dataset now contains:
G3100/E3200 - 680 entries
CR1000 A/B - 166 entries
ARC-XCI55AX - 137 entries
ASK-NCQ1338 - 158 entries
WNC-CR200A - 58 entries
G1100 - 364 entries
NVG558HX - 65 entries
Other - 137 entries
Total - 1765 entries


EB07_1858.jpeg
We have a new device this week, the CME1000. I had been aware of this device for a while, but the sticker doesn’t have much information and I hadn’t found an image with a readable QR code yet. However, when we can read the QR code it has all of the relevant information. There is no device tear down, though I would like to see inside just for fun
Code:
('WIFI:S:Verizon_MP6P3L;T:WPA;P:oak3-spigot-pay;;EXTENDER:M:CME1000;S:AAB21103062;B:08B05532DB18;P:NKFYQD94G;;2',)

I am a bit embarrassed to admit it, but I also realized this week we could have extracted the G1100 firmware since my original post :poop:. This GitHub page was part of my initial research, and until recently it contained the only known G1100 firmware (bhr4_release_01.03.02.02-FTR_firmwareupgrade.bin.signed and bhr4_stepstone_release_1.2.0.36.98.0_firmwareupgrade.bin.signed). Both of these firmware are encrypted with a PGP key, but fortunately jameshilliard has already extracted the Private Keys for us! Here are the keys, I have also attached them below.

G1100_key1
Code:
-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=UtFV
-----END PGP PRIVATE KEY BLOCK-----

G1100_key2
Code:
-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=c6nn
-----END PGP PRIVATE KEY BLOCK-----

We can add these to our keyring using the commands
Code:
gpg --import G1100_key1.txt
gpg: key 945FDCF4BDDB877F: "Verizon BHR4 <eu@greenwavesystems.com>" not changed
gpg: key 945FDCF4BDDB877F: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1


Code:
gpg --import G1100_key2.txt
gpg: key ABC74851666276E5: "Verizon BHR4 <eu@greenwavereality.com>" not changed
gpg: key ABC74851666276E5: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1


Then we can decrypt the firmware with the keys using this command
Rich (BB code):
gpg --output <decrypted_output_file> --decrypt <encrypted_input_file> 
gpg --output decrypted_bhr4_stepstone_release_1.2.0.36.98.0_firmwareupgrade.bin.signed --decrypt bhr4_stepstone_release_1.2.0.36.98.0_firmwareupgrade.bin.signed

Finally we extract the decrypted firmware with
Code:
binwalk -Me decrypted_bhr4_stepstone_release_1.2.0.36.98.0_firmwareupgrade.bin.signed
Binwalk_firmware.png

And this is where I have been stuck... binwalk only extracts a system.dtb and I am not really sure what to do from there. It took me way too long to realize that the decrypted firmware extracts cleanly with unblob!

Code:
unblob decrypted_bhr4_stepstone_release_1.2.0.36.98.0_firmwareupgrade.bin.signed

Unblob_firmware2.pngG1100_rootfs.png

The PGP Keys also work to decrypt the firmware that I found (bhr4_release_02.03.00.13_firmwareupgrade.bin.signed and bhr4_release_02.03.00.14_firmwareupgrade.bin.signed), but frontier4_vz_stepstone_release_01.03.01.02_firmwareupgrade.bin.signed is still missing the key.

Poking around the firmware just a bit, every version has this in /etc/shadow
root:$6$rFBGnLMRIiVVPTZ8$1J3zPn31Wfrht0oOCKZW52YhbA.lmNieZ6C7zaJ3sANjVYYk28E3FAA1xEMN4ezAu1IAQBRShs4vRl/atc5tF0:15861:0:99999:7:::
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
I didn’t bother to run the scrapes again this week. Since we are really only catching newly listed hits, I will probably update the database every 2-3 weeks from now on. That doesn’t mean that we don’t have some good info to share this week though!

This week I posted the root hashes that I've found for G1100 and NCQ1338, and @Sparton has successfully cracked the G1100 root:thinkgreen. THANKS! We are still looking for $1$7uheFpms$9IpAGF0yM8EV4CvwnpgD.1

I also reached out to @RealEnder, who shared the hcxpcapngtool -D output for all of the Verizon/Fios captures uploaded to WPA-SEC. As we know, the broadcast packets give us the MAC, MANUFACTURER, MODELNAME, SERIALNUMBER, DEVICENAME, UUID, ESSID. The first thing that I did was look for new Models. There are a good many MiFi devices. I looked a few of these up on eBay, and it doesn’t seem like they show their default password since the device has a screen. There are also a good many Extenders/Repeaters that are just broadcasting the Verizon/Fios SSID.

LRV5-2.pngLRV5.png

The one new device that I was able to identify is the LVR5-100, which is a 5g/4g cellular router manufactured by Wistron NeWeb. The device teardown shows the CPU is a stm32wb35, wihich is an Arm Cortex-M4 32-bit RISC core operating at a frequency of up to 64 MHz. Unfortunately, It doesn’t have a QR code, so we haven’t caught it with our scrape. There are only 2 entries for this device, which is unfortunate because the password is an easy to crack 8 character lowercase HEX! This model has been included with LVSKIHP in the packet database.

There is a device that just shows Broadcom and the same SN/UUID for all of the entries. I checked the MAC prefixes 10:78:5B and 70:F2:20 in the password database and identified this model as WCB6200Q. The only model that I didn’t find entries for is the ASK-RTL108, but here are a ton of entries for ALL of the other devices covered in this thread. Let’s take a look...

Download: verizon_broadcast_info .xlsx
The verizon_broadcast_info data contains:
ARC-XCI55AX - 688 entries
ASK-NCM1100 - 49 entries
ASK-NCQ1338E - 671 entries
CR1000 - 2448 entries
CME1000 - 18 entries
E3200 - 669 entries
FSNO21VA - 132 entries
G1100 - 2793 entries
G3100 - 3081 entries
LVSKIHP - 15 entries
NVG558HX - 23 entries

WCB6200Q - 265 entries
WNC-CR200A - 327 entries
Total - 11179 entries

Note: Here MACS is what I’ve been calling “steps” throughout the thread. It’s calculated by comparing the differences in MAC address vs differences in Serial number. This results in a whole number that indicates how many MAC addresses each devices occupies.

Model: ARC-XCI55AX
Manufacture: Arcadyan
Device: Titan2
Serial Prefix: ABU GRR
Serial Length: 11
MACS: 4
MAC Prefix: 04:09:86 04:70:56 18:58:80 4C:22:F3 54:B7:BD 74:90:BC 84:90:0A 84:A3:29 8C:83:94 A8:A2:37 AC:B6:87 BC:F8:7E C0:D7:AA C8:99:B2 DC:F5:1B F4:CA:E7
UUID: All entries are bc329e001dd811b28601XXXXXXXXXXXX, where X is 1 less than the broadcast MAC Address
EX: 04098647eaa3 = bc329e001dd811b2860104098647eaa2
SSID: Verizon_XXXXXX

Model: ASK-NCM1100
Manufacture: Arcadyan
Device: TITAN4
Serial Prefix: ACL ACN ACQ ACR
Serial Length: 11
MACS: 6
MAC Prefix: 38:88:71
UUID: All entries are bc329e001dd811b28601XXXXXXXXXXXX, where X is 2 less than the broadcast MAC Address
EX: 3888710aee34 = bc329e001dd811b286013888710aee32
SSID: Verizon_XXXXXX

Model: ASK-NCQ1338E
Manufacture: Askey
Device: NCQ1338
Serial Prefix: AA1 AAM ABB ABF ABG G1C G1D G1E
Serial Length: 11
MACS: 4
MAC Prefix: 88:DE:7C 2C:EA:DC 4C:AB:F8 A4:97:33 FC:12:63 74:93:DA
UUID: All entries are 876543219abcdef01234XXXXXXXXXXXX, where X is 1 less than the broadcast MAC Address
EX: 2ceadc10f653 = 876543219abcdef012342ceadc10f652
SSID: Verizon_XXXXXX

Model: CR1000
Manufacture: Arcadyan
Device: ath1 or CHR2f
Serial Prefix: ABJ AB2 AAW AAY ACZ ABP ABQ ABV ABW
Serial Length: 11
MACS: 7 (CR1000A) or 9 (CR1000B)
MAC Prefix: 04:70:56 58:96:71 04:09:86 1C:D6:BE 24:41:FE 34:19:4D 3C:F0:83 4C:22:F3 54:B7:BD 74:90:BC 78:67:0E 84:90:0A 84:A3:29 86:67:0E 88:5A:85 8C:83:94 A8:A2:37 AC:91:9B AC:B6:87 BC:F8:7E C8:99:B2 DC:4B:A1 DC:F5:1B
UUID: All entries are 876543219abcdef01234XXXXXXXXXXXX, where X is 2 less than the broadcast MAC Address. This matches what we discovered earlier.
EX: 047056582046 = 876543219abcdef01234047056582044
SSID: FiOS-XXXXX, Fios-XXXXX or Verizon_XXXXXX

Model: CME1000
Manufacture: Arcadyan
Device: CHR2tte
Serial Prefix: ABA
Serial Length: 11
MACS: 6
MAC Prefix: 4C:22:F3 54:B7:BD 74:90:BC 84:A3:29 8C:83:94 BC:F8:7E DC:F5:1B
UUID: All entries are bc329e001dd811b28601XXXXXXXXXXXX, where X is 2 less than the broadcast MAC Address
EX: 4c22f34c6688 = bc329e001dd811b286014c22f34c6686
SSID: Verizon_XXXXXX

Model: E3200
Manufacture: Arcadyan
Device: E3200
Serial Prefix: E301 E302 AA62 AA63 AA64
Serial Length: 16
MACS: 6
MAC Prefix: 04:A2:22 3C:BD:C5 62:A2:22 62:BD:C5 62:F8:53 6A:A2:22 6A:BD:C5 6A:F8:53 72:A2:22 72:BD:C5 72:F8:53 74:90:BC B8:F8:53 DC:F5:1B
UUID: Appears to be random
SSID: Fios-XXXXX or Verizon_XXXXXX

Model: FSNO21VA
Manufacture: Arcadyan
Device: ath0
Serial Prefix: ABH
Serial Length: 11
MACS: 1
MAC Prefix: 98:C8:54
UUID: All entries are 876543219abcdef01234XXXXXXXXXXXX, but the last 6 digits of X doesn’t match the MAC address
EX: 98c854a7a4e0 = 876543219abcdef0123498c8549951e8
EX: 98c854a8d4af = 876543219abcdef0123498c8549aaa86
SSID: Verizon_XXXXXX

Model: G1100
Manufacture: GreenWave
Device: GreenWave
Serial Prefix: G1A1 G1A2 S1A1
Serial Length: 15
MACS: 5
MAC Prefix: 18:78:D4 20:C0:47 20:C0:C7 29:6A:0B 48:5D:36 C8:A7:0A D4:A9:28
UUID: Appears to be random
SSID: FiOS-XXXXX or Fios-XXXXX

Model: G3100
Manufacture: Arcadyan
Device: G3100
Serial Prefix: G401 G402
Serial Length: 16
MACS: 11 or 8 depending on manufacture date
MAC Prefix: 04:A2:22 3C:BD:C5 B8:F8:53
UUID: Appears to be random
SSID: Fios-XXXXX or Verizon_XXXXXX

Model: LVSKIHP
Manufacture: WNC
Device: Verizon K2
Serial Prefix: GI1A GI1B (identified from image scrape data)
Serial Length: 12
MACS: Unknown
MAC Prefix: 64:FF:0A 88:5A:85 B8:9F:09 44:E4:EE
UUID: All entries are 876543219abcdef01234XXXXXXXXXXXX, where X is 2 less than the broadcast MAC Address.
EX: 64ff0a558556 = 876543219abcdef0123464ff0a558554
SSID: Verizon-5G-Home-XXXX or Verizon-LRV5-XXXX

Model: NVG558HX
Manufacture: Commscope
Device: <same as Serial Number>
Serial Prefix: MV2
MACS: 12
MAC Prefix: 20:F3:75 58:60:D8 8C:5A:25 E4:F7:5B
UUID: Appears to be random
SSID: Verizon-XXXX

Model: WCB6200Q
Manufacture: Broadcom
Device: <blank>
Serial Prefix: GWXA GWXB MWXB (identified from image scrape data)
Serial Length: 14
MACS: 16 (calculated from image scrape data)
MAC Prefix: 10:78:5B 4C:8B:30 70:F2:20
UUID: ALL entries show a single UUID d96c7efc2f8938f1efbd6e5148bfa812
SSID: FiOS-XXXXX or Fios-XXXXX
Note: This device is an extender only, so it is broadcasting the base SSID/Password

Model: WNC-CR200A - 327 entries
Manufacture: Arcadyan
Device: ath0 or ath1
Serial Prefix: ACA AC0
Serial Length: 11
MACS: 4
MAC Prefix: 58:96:71 24:41:FE AC:91:9B DC:4B:A1
UUID: All entries are 876543219abcdef01234XXXXXXXXXXXX, where X is 1 less than the broadcast MAC Address
EX: 589671080e92 = 876543219abcdef01234589671080e91
SSID: Verizon_XXXXXX

I noticed that the new model from last week, the CME1000 has the device name CHR2tte, which looks very similar to CHR2f (CR1000). So I added it to the firmware fuzzing script and we found the firmware for it!
Code:
https://cpe-ems34.verizon.com/firmware/chr2tte_fw_3.2.0.9.bin
https://cpe-ems34.verizon.com/firmware/chr2tte_fw_3.2.0.11.bin
https://cpe-ems34.verizon.com/firmware/chr2tte_fw_3.2.0.12.bin

It seems to extract ok with unblob, leaving us with 3 files. Unfortunately the root is LUKS encrypted and this is where I’m stuck.
CME1000_unblob.png

cat CONTROL
BOARD=mt7986a-ax8400-2500wan-emmc-rfb-sb

file kernel
Device Tree Blob version 17, size=21649753, boot CPU=0, string block size=194, DT structure block size=21649160

file root
LUKS encrypted file, ver 1 [aes, xts-plain64, sha256] UUID: 8856759b-9e7d-41db-b48e-7f1deb53cbb0

binwalk -E chr2tte_fw_3.2.0.9.bin

chr2tte_fw_3.2.0.9.bin.png

binwalk -Me chr2tte_fw_3.2.0.9.bin
---------------------------------------------------------------------------------------------------
DECIMAL HEXADECIMAL DESCRIPTION
---------------------------------------------------------------------------------------------------
256 0x100 POSIX tar archive, file count: 4
---------------------------------------------------------------------------------------------------
Analyzed 1 file for 85 file signatures (187 magic patterns) in 173.0 milliseconds

---------------------------------------------------------------------------------------------------
DECIMAL HEXADECIMAL DESCRIPTION
---------------------------------------------------------------------------------------------------
256 0x100 POSIX tar archive, file count: 4
---------------------------------------------------------------------------------------------------
[+] Extraction of tarball data at offset 0x100 completed successfully
---------------------------------------------------------------------------------------------------

sysupgrade-mt7986a-ax8400-2500wan-emmc-rfb-sb/kernel
---------------------------------------------------------------------------------------------------
DECIMAL HEXADECIMAL DESCRIPTION
---------------------------------------------------------------------------------------------------
0 0x0 Device tree blob (DTB), version: 17,
CPU ID: 0, total size: 21649465 bytes
----------------------------------------------------------------------------------------------------
[+] Extraction of dtb data at offset 0x0 completed successfully
----------------------------------------------------------------------------------------------------
Analyzed 5 files for 85 file signatures (187 magic patterns) in 1.5 seconds




T-Mobile Hotspot.jpg
Last weeks scrape caught a TMOHS1 from T-Mobile. I noticed that it has HUGE weakness. They use the last 8 digits of the IMEI as the password, and the last 4 digits for the SSID. The admin password is even easier to “guess" 🤣

I reached out to @RealEnder with this info. He confirmed that only 2 of the submitted hashes had been found, but both of them followed this pattern. He was able to quickly crack most of the other hashes; there are now 42 found! Looking back at the found hashes, ALL of the passwords start with the first 4 digits 5000-7999. This leaves us with 3000 possible candidates, which means you could probably crack it live without a handshake haha. It’s a very small contribution, but it makes me happy to have discovered this! Using this hashcat command should instantly crack the hash, here we are on a Raspberry Pi 4.

T-Mobile Hotspot_3613_2.4GHz
WPA*02*f61b53de19d07fb2f875d56fa45269bf*a4d7952abcb0*3e4bdfe15ce0*542d4d6f62696c6520486f7473706f745f333631335f322e3447487a*92ca24dea47338cbdb9eb12cf752aee13e9d5cbab214df0e48ab880d9c1375b0*0103007502010a000000000000000000012513a7b3328129988b18743eadc5e58224c6afa79b6a47acf5ce1ae6c54f01d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac028000*82

Rich (BB code):
hashcat -m 22000 -a 3 TMobile.txt -1 567 ?1?d?d?d<4 digits from SSID>
hashcat -m 22000 -a 3 TMobile.txt -1 567 ?1?d?d?d3613

TM_Hotspot_hash.png
 
Last edited by a moderator:

Nickthesail0r

New member
Feedback: 0 / 0 / 0
Joined
Jul 14, 2025
Messages
3
Reaction score
0
Credits
21
Good evening! I'm new here. I have a network on my wifi with the initials bssid DC:F5:1B.
where can I find your script to find the password wifi key? I'm in Greece! I'd be grateful for that!
 

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
@Sardukarrr I have just uploaded my new Fios-F1nDr script to GitHub (https://github.com/FiosFiend/Fios-F1nDr/blob/main/Fios-F1nDr.py). It will now identify all of the devices outlined in my previous post. Sadly there’s nothing magical going on here, the script simply uses the information that I have collected in my password database along with the data shared from WPA-SEC. I have removed the part that calculates serial as it’s really not needed. To use it just run the script and it will ask for a MAC address.

@Nickthesail0r In this example I made up the last part of your MAC address, but all of the information would still be the same. I am surprised to see one of these devices in Greece, someone from the US likely brought it with them. Just beware, if the SSID isn’t something like the default (ex: Verizon_P3K6DX) it’s likely the default password has been changed as well.

Enter MAC address(es) (comma-separated, or file.csv/.txt): DC:F5:1B:69:69:69

--- Processing MAC: dcf51b696969 ---
Model: G3100 or E3200
Manufacture: Arcadyan
Device: E3200
Serial Prefix: E301 E302 AA62 AA63 AA64
Serial Length: 16
MACS: 6
MAC Prefix Matched: dcf51b
UUID: Appears to be random
SSID: Verizon_XXXXXX
SSID Password Length: 15
SSID Password Format: <word>-<word>-<word> + 1 <digit>
Note: <word> is always comprised of a 3-letter, 4-letter, and 5 letter word
<digit> can be 3,4,6,7,9 and always after 1st or 2nd word, never 3rd
SSID Example: bonny-pug9-trek
Admin Password Length: 9
Admin Password Format: All Uppercase, no A,E,I,M,O,U,W,Y
Admin Example: HRF4TD9K3
 

RealEnder

Active member
Feedback: 0 / 0 / 0
Joined
Dec 30, 2019
Messages
31
Reaction score
57
Credits
228
@FiosFiend mentioned cracking T-Mobile Hotspot on RPi, so let’s reduce the keyspace further. Since these devices are using the last 8 digits of the IMEI as passwords, they are great targets for imeigen. After a bit of digging, I’ve found the other TAC 35200857, in addition to the already known 86055005. Having in mind that the last 4 digits are in the SSID, we can attack like this:
Code:
(imeigen 35200857 && imeigen 86055005) | grep 3613$ | hashcat -m22000 TMobile3613.22000
This reduces the keyspace from 3000 to just 200 candidates :)
Also added T-Mobile Hotspot support to imeigen HEAD.
 

Nickthesail0r

New member
Feedback: 0 / 0 / 0
Joined
Jul 14, 2025
Messages
3
Reaction score
0
Credits
21
@FiosFiend As far as I know, there are many Greek routers with the mac address (DC:F5:1B) and the SSID (COSMOTE-XXXXXX).
It seems that they use the same algorithm.
I can't run the script, give me some information about this network: bssid: DC:F5:1B:2B:BC:Ε2 & ssid: COSMOTE-135866
I see the same ssid twice with a different last digit on the mac (DC:F5:1B:2B:BC:Ε6).
 

Nickthesail0r

New member
Feedback: 0 / 0 / 0
Joined
Jul 14, 2025
Messages
3
Reaction score
0
Credits
21
I also have a router with bssid: 4C:22:F3 .. the password is 20 digits only numbers .. I can share it with you to see ..

I have the impression that the bssid (DC:F5:1B) of Greece must also have a 20 digit wifi key password
 

Attachments

  • IMG_1767 (1).jpg
    IMG_1767 (1).jpg
    905.3 KB · Views: 13

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
@RealEnder great job with the imeigen, I will have to look at the Verizon/Fios IMEIs. ZerBea posted on the hashcat thread. I haven't had a chance to see which devices these are yet.
"You can also add "T-Mobile Broadbandxx" to your list: PSK pattern = ?d?d?d?d?d?dxx"

@Nickthesail0r unfortunately, other than having the MAC prefix DC:F5:1B the devices don’t seem to share much in common. I couldn't find many images for these devices. Since they share the prefix with the Verizon devices, they are slightly interesting to me, so attached below is the hcxpcapngtool -D shared from WPA-SEC. You’ll see there are a wide variety of devices that share this space, including your COSMOTE- devices. Fios-F1nDr has been updated to differentiate between ARC-XCI55AX, CR1000, CME1000, E3200 for this MAC prefix, so thank you for drawing my attention to this.

This week I was able to add 63 new entries to the password database.

Updated Data Set: router_data_FULL_072325.xlsx
The Dataset now contains:
G3100/E3200 - 697 entries
CR1000 A/B - 177 entries
ARC-XCI55AX - 143 entries
ASK-NCQ1338 - 165 entries
WNC-CR200A - 62 entries
G1100 - 374 entries
NVG558HX - 67 entries
Other - 143 entries
Total - 1828 entries


XC46BE_2.jpeg
We caught a new device too, the XC46BE, which is also manufactured by Arcadyan. The device teardown shows a variety of chips. I believe the Mediatek MT6990V is the ARM CPU, but I couldn’t find much info. The device QR code and sticker provide a great bit of info.
Code:
('WIFI:S:Verizon_TC9CP6;T:WPA;P:bet9nearly8mane;;ROUTER:M:XC46BE;S:ACS44201412;D:11-26-2024;F:3.4.0.5;P:4CLBGTZS7;E:357632330053454;B:3806E60264DD;;1',)

I found the device using the data from WPA-SEC, here is the info broadcast in the packet. The device is the DRAGON :cool:
Code:
2037f022cf12 Arcadyan XC46BE ACS50602760 DRAGON bc329e001dd811b286012037f022cf10 Verizon_BJ3F49

Model: XC46BE
Manufacture: Arcadyan
Device: DRAGON
Serial Prefix: ACS
MACS: Not enough Info
MAC Prefix: 20:37:F0 38:06:E6
UUID: All entries are bc329e001dd811b28601XXXXXXXXXXXX, where X is 2 less than the broadcast MAC Address
EX: 3806e6801442 = bc329e001dd811b286013806e6801440
SSID: Verizon-XXXX

The 3 password entries I was able to find show that The SSID password is 15 characters, and follows a new format <word><digit><word><digit><word>. So far, these passwords are comprised of a 3-letter, 4-letter, and 6-letter word with single digits. The admin password is 9 character alphanumeric as we’ve seen with a lot of the other devices.
1753217762931.png


CSG_37.jpeg
The CSG m106 was also caught in the scrape, which is some sort of Verizon device though it doesn’t have the Verizon/Fios SSID. There QR code is just a link to the CSG website. However, the password is 8 character hex that is actually just the end of the serial number. Unfortunately, this device does not broadcast any ESSID information. I did the normal eBay, FB, OfferUp scrape and caught 19 entries. The serial numbers appear to be a a random 16 character hex, possibly a truncated hash. So I had a script try various user input, as well as Unix Epoch time against the password. There are several hashes that produce the password, but none that produce the full serial, so I suspect they are false positives. @RealEnder found the firmware (https://connectcsg.com/pages/firmware-updates), which extracts nicely...so I checked to see how the SN is being generated.

In the file gl_init we see
Code:
uci set glconfig.general.factory_mac=$(get_default_mac_with_colon)
uci set glconfig.general.factory_sn=$(get_default_sn)

 ssid=`uci get glconfig.general.factory_mac | awk -F ":" '{print $(NF-1)$NF}'`
uci set wireless.@wifi-iface[$index].ssid="CSG-${ssid}"
 key=`uci get glconfig.general.factory_sn | awk '{print substr($0,9)}'`

So we see The SSID is generated from the MAC, and the key is last 8 characters of the factory_sn. Unfortunately the factory_sn is pulled from NVRAM.

GL-SFT1200.jpg
The data collected for CSG m106 all have the MAC prefix 94:83:C4, so I checked there in the WPA-SEC data. There are not any CSG entries since they don’t broadcast the information, however there are several GL-SFT1200 that overlap the address space. The firmware for this device is also available (https://dl.gl-inet.com/router/sft1200/stable), extracts cleanly, and is very similar to the CSG m106 with some minor vendor changes. In gl_init file for both firmware we see
Code:
ssid_prefix="GL-"${model}
uci set wireless.@wifi-iface[$index].key=goodlife

As the image above shows, devices with the SSID GL-<model> have the default password “goodlife”. The firmware shows other models this applies to AR300M, AR750, B1300, B2200, E750, MT750, S200, S1300, X750, X1200

GL-MT3000.jpegGL-MT6000.jpeg
One of the devices that the default password doesn’t work on is the GL-MT3000 and GL-MT6000, which we see has a 10 character alphanumeric password :frown:. We have the firmware for this device too (https://dl.gl-inet.com/router/mt3000/stable and https://dl.gl-inet.com/router/mt6000/stable). The password seems to be pulled from NVRAM.
Code:
wifi_password=`lua /usr/bin/get_unique_password.lua`
lfactory.get_unique_password()

But the guest networks may still have the default password “goodlife"
Code:
set wireless.$1.key=goodlife
set wireless.$guest.device="$device"
 

Attachments

  • Ddcf51b.txt
    37.1 KB · Views: 10

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
This week I didn’t actually do any Verizon/Fios research. However, I did find some cool stuff just poking around at devices on eBay. The next 2 posts will cover what I’ve discovered.


TM-NOK5G21_36.jpeg
Model NOK 5G21
SSID TMOBILE-XXXX
MAC prefixes 0C:7C:28, 28:74:F5, 38:A0:67, 40:E1:E4, AC:8F:A9. DC:8D:8A, E0:1F:2B


This device is affectionately referred to as the trashcan. There is a firmware dump in this Reddit post, but I couldn’t find any algorithm. As you can see the WIFI Key is a 10 character hex password. Since it has a QR code I was able to scrape our normal marketplaces and snagged 51 entries (attached below). From this we can see the password actually has some very interesting weaknesses. First the digits 0 and 1 are never used, reducing the character set to 14. However, the really helpful part is that the 3rd character is ALWAYS “a” and the 6th character is ALWAYS “2” which significantly reduces the keyspace to 1475789056 possible combinations. These can be brute-forced using the command


hashcat -m 22000 -a 3 NOK5G21_hash.txt --custom-charset1=23456789abcdef '?1?1a?1?12?1?1?1?1’

MR1100_8.jpeg
Model MR1100
SSID ATT-WIFI-XXXX
MAC prefixes 10:0C:6B, 44:A5:6E, 8C:3B:AD, CC:40:D0


This device has a 8 mixed case alphanumeric password, but they also have a huge weakness. The last 4 characters in the SSID are part of the password. The first character (SSID) is the 2nd character (password), similarly the 2nd character (SSID) is the 4th character (password), the 3rd character (SSID) is the last character (password), and the 4th character (SSID) is the 6th character (password). So ATT-WIFI-1234 would have a password X1X2X4X3. I have attached data on 10 of these devices below as a proof of concept. If I were to collect more data we could possible reduce the character space further, but for now there are 14776336 possible combinations. Using the image above as our example, this hashcat command should crack it.

hashcat -m 22000 -a 3 MR1100_hash.txt -1 '?l?u?d' '?1J?12?13?1p'

Alcatel MW41TM.jpeg
Model MW41TM
SSID Alcatel LINKZONE XXXX
MAC prefixes 4C:4E:03, 5C:77:76

IMEI TAC 01473400

Password is the last 8 digits of IMEI, SSID has last 4 digits.


Alcatel_MW41NF.png
Model MW41NF
SSID Internet Movie Orange_XXXX
MAC prefixes 9C:4F:CF


Password is the last 8 digits of MAC address, SSID has last 4 digits.

T-Mobile_Z917.png
Model Z917
SSID T-Mobile BroadbandXX
MAC prefixes 34:69:87
IMEI TAC 86891502


Password is the last 8 digits of IMEI, SSID has last 2 digits.

T-Mobile_MF61 .jpeg

Model MF61
SSID T-Mobile BroadbandXX
MAC prefixes Unknown
IMEI TAC 35578604


Password is the last 8 digits of IMEI, SSID has last 2 digits.

ZTE-MF64.jpeg

Model MF64
SSID T-Mobile BroadbandXX
MAC prefixes 4C:16:F1
IMEI TAC 86449702


Password is the last 8 digits of IMEI, SSID has last 2 digits.

T-Mobile_MF96.jpeg
Model MF96
SSID T-Mobile BroadbandXX
MAC prefixes 4C:16:F1
IMEI TAC 86896200


Password is the last 8 digits of IMEI, SSID has last 2 digits.

T-Mobile_MF915.jpeg

Model MF96
SSID T-Mobile BroadbandXX
MAC prefixes Unknown
IMEI TAC 86464602


Password is the last 8 digits of IMEI, SSID has last 2 digits.


 

Attachments

  • NOG_5G21_Info.txt
    6.5 KB · Views: 8

FiosFiend

Active member
Feedback: 0 / 0 / 0
Joined
Apr 6, 2025
Messages
242
Reaction score
331
Credits
3,591
Moxee K779HSDL (Tether).jpeg Moxee K779HSDL(Hotspot).jpeg
Model K779HSDL
SSID Moxee HotspotXX
or Moxee TetherXX
MAC prefixes Unknown
IMEI TAC 35890230 or 35199511

Password is the last 8 digits of IMEI, SSID has last 2 digits.


ATT_MF279.jpeg
Model MF279
SSID ATT-WI-XXXX
MAC prefixes Unknown

Password is 8 digits, but not related to IMEI

ATT-MF923.jpeg

Model MF923
SSID ATT-WIFI-XXXX
MAC prefixes Unknown

Password is 8 digits, but not related to IMEI

ATT-MF985.jpeg

Model MF985
SSID ATT-WIFI-XXXX
MAC prefixes Unknown

Password is 8 digits, but not related to IMEI
 

Sardukarrr

Active member
Feedback: 0 / 0 / 0
Joined
Sep 4, 2022
Messages
38
Reaction score
9
Credits
316
@FiosFiend you are doing an amazing work. Please continue!
BTW you have re-sparked my interest in TMOBILE-XXXX AP's. Thank you.
 

Sardukarrr

Active member
Feedback: 0 / 0 / 0
Joined
Sep 4, 2022
Messages
38
Reaction score
9
Credits
316
However I found out that at least two more models besides Model NOK 5G21 that use SSID TMOBILE-XXXX with a different password scheme.
 

Attachments

  • dsfsfsdf.jpg
    dsfsfsdf.jpg
    102.3 KB · Views: 19
  • s-l16fdg.jpg
    s-l16fdg.jpg
    313.1 KB · Views: 19
Top