Archer-TX50UH
Archer-TX50UH

⚠️ Hacking should only ever be done with consent for pentesting (“ethical hacking”) and not for malicious purposes. Check your local laws before doing anything, I’m not responsible for your actions.

After looking for a potential upgrade to my Wi-Fi hacking dongle, I recently posted this onto my personal Signal “Sysadmin” group:

Just ordered a triband (2.4 – 6 GHz) Wi-Fi (6E) USB stick which should work with Linux’ drivers and support monitor mode and packet injection. I’ll let you know my findings once I got it and plugged it into Kali Linux.
Note: There is currently no USB Wi-Fi 7 that match this criteria, at least according to my findings.
There is however, PCIe Wi-Fi 7 cards that match the criteria.
The triband Wi-Fi 6E chipset on USB which supports monitor mode and packet injection is the mt7921au which is supported since Linux 5.18, with AP support added in 5.19 and P2P mode added in 6.4. The recommended kernel is 6.6 or later.
The TP-Link TXE50UH has the mt7921au chipset, so I ordered it for 40 EUR.
However, the device uses custom VID/DID, so it won’t show as mt7921au and won’t work plug and play. This can however be solved by writing a simple udev rule.
Native support will come in Linux 6.14 but writing an udev rule should be a good workaround until then.
I’ll have it on Tuesday and will test it out.

It’s now Tuesday, I got it, and it’s time to test it out. :D

On the USB stick’s sticker I can see it read “Archer TX50UH(EU) Ver:1.0″! That’s off by one letter… let’s continue anyway, maybe we’re lucky…

Plugging it into my M1 MacBook Air and attaching it to my Kali Linux (2024.4) VM (VMware Fusion) and running lsusb I can see this device:

Now, Realtek sounds wrong, but keep in mind this device is designed for Windows and will first emulate a CDROM drive such that users can install the drivers straight from the stick. We don’t want the CDROM mode, and instead want to put it into the Wi-Fi card mode:

usb_modeswitch -KW -v 0bda -p 1a2b

which will output:

Uh oh, that failed. Well, we simply run usb_modeswitch again:

That worked! Now when we run lsusb again we can see:

Hmmm, still a Realtek Wi-Fi adapter… that’s… wrong.

We’re expecting a device with ID 35bc:0107 and instead we’re getting 35bc:0101… hm. Let’s run ip link and iwconfig… nothing. Let’s try lsmod and grep for mt and rt… nothing of relevance… Hm…

Let’s be naughty, and try something… let’s forcefully load the correct driver and force it upon this device. :D

modprobe mt7921u

And we can see in dmesg:

Now for the really naughty part:

echo 35bc 0101 > /sys/bus/usb/drivers/mt7921u/new_id

And what does dmesg say?

Seems we really got the wrong chipset here…

*Starlight Glimmer Sindastra sips from cup with annoyed look*

Hmmm, perhaps this really is just a Realtek Wi-Fi chipset… Ok, but can we get it to run as such, at least?

rmmod mt7921u mt7921_common mt792x_usb mt792x_lib mt76_usb mt76_connac_lib mt76

Ok, we got rid of the wrong kernel modules, and dmesg confirms this:

Now, let’s see… lsusb doesn’t really reveal much other than that it’s a “Realtek 802.11ax WLAN Adapter” which is very generic. Time to Google. Aha!
Someone in a forum post stated that they contacted TP-Link and got this response from TP-Link “[…] TX50UH V1 is RTL8832CU […]”

Well, “RTL8832CU” is definitely more informative… let’s see… I can see a kernel module called rtl8xxxu… that’s the closest matching; Let’s try our luck…

modprobe rtl8xxxu

And dmesg:

But it seems this driver doesn’t offer any means to do echo 35bc 0101 > /sys/bus/usb/drivers/rtl8xxxu/... hm… let’s take a closer look at the driver:

modinfo rtl8xxxu

Will output:

filename:       /lib/modules/6.11.2-arm64/kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko.xz
firmware:       rtlwifi/rtl8192fufw.bin
firmware:       rtlwifi/rtl8710bufw_UMC.bin
firmware:       rtlwifi/rtl8710bufw_SMIC.bin
firmware:       rtlwifi/rtl8188fufw.bin
firmware:       rtlwifi/rtl8723bu_bt.bin
firmware:       rtlwifi/rtl8723bu_nic.bin
firmware:       rtlwifi/rtl8192eu_nic.bin
firmware:       rtlwifi/rtl8192cufw_TMSC.bin
firmware:       rtlwifi/rtl8192cufw_B.bin
firmware:       rtlwifi/rtl8192cufw_A.bin
firmware:       rtlwifi/rtl8188eufw.bin
firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
firmware:       rtlwifi/rtl8723aufw_B.bin
firmware:       rtlwifi/rtl8723aufw_A.bin
license:        GPL
description:    RTL8XXXu USB mac80211 Wireless LAN Driver
author:         Jes Sorensen <[email protected]>
[...]

It doesn’t seem to mention any firmware files for this specific chipset… my guess is that this is the wrong driver.

Let’s check for packages:

apt search rtl8

Hm, realtek-rtl88xxau-dkms does seem interesting. I mean, it’s an “a” instead of a “c” but my experience shows that sometimes one driver covers multiple similarly named chips.

But, nope! That just installs the realtek-rtl8814au-dkms which provides the kernel module rtl8821ae… not the right one…

*More Googling and asking girlfriend to Google along*

Ok, there’s this GitHub repo here that looks promising: https://github.com/morrownr/rtl8852cu-20240510

git clone https://github.com/morrownr/rtl8852cu-20240510
cd rtl8852cu-20240510
apt install linux-headers-6.11.2-arm64
./install-driver.sh

After successfully building and installing the driver we can optionally edit the driver options file at /etc/modprobe.d/8852cu.conf

We reboot and pray…

Oh! Ooooh! Blue blinking light on the Wi-Fi stick!

And what does ip link say? There’s wlan0! :D

But can we get into monitor mode?

airmon-ng check kill
airmon-ng start wlan0

Output:

ip link still only shows wlan0 despite “monitor mode enabled” hmmm…

airodump-ng wlan0 fails as well…

How about hcxdumptool -i wlan0? Nope:

So, we got Wi-Fi working but we can’t get into monitor mode. I also tried setting the country code (in the config file) and rebooting, because I know some Wi-Fi cards get sad if they don’t have a CC set, but it din’t change anything. I guess this driver and/or firmware just doesn’t do monitor mode. I spent an evening on this and am tired now, but I hope it was still an interesting read and that you could learn something on the way. Towards the end of the article I kept it more brief compared to the verbose beginning to not waste anyone else’s time.

The takeaway is: TX50UH is not TXE50UH and it won’t have the desired chipset. It’s not a device suitable for hacking, and I don’t recommend it for general use on Linux, either.

I can’t find the supposed TP-Link TXE50UH anywhere (at least not in my market). I could import that model from the US, but I’m not in the mood to deal with international shipping and customs. If anyone knows where to get the TP-Link TXE50UH with the supposed mt7921au chipset or another USB stick with the mt7921au chipset in the EU/EFTA market, please let me know.

Ok, fuck it, I’ll order it from the US… let’s see, 70 USD… Fine. Let’s check out… Oof. With shipping and customs we’re now at a little over 100 USD (pretty much close to 100 EUR). I can reduce this to 95 USD with slow shipping, but still not worth it. If anyone wants to donate a significant amount of the price to help me out, I’ll order the device and review it.

In any case, feel free donate at Ko-fi… As for this device here, looks like I’ll return it.