Lμke Switzer retweeted
If an attacker parks outside your building with a $1,500 software-defined radio, a 5G smartphone will still drop its connection, connect to a fake 1991-era GSM tower, and hand over its permanent hardware identity in cleartext.
Every modern baseband modem still carries legacy 2G mpatibility, and that 2G stack has no way to verify if a cell tower is real.
1. The architectural flaw: One-way tower trust
In 4G (LTE) and 5G, mobile networks enforce mutual authentication after the initial attach.
When your phone connects to an LTE tower, the network sends a random cryptographic challenge (RAND) alongside an Authentication Token (AUTN). Inside your SIM card, a secure processor checks that token against a 128-bit secret root key (K) burned in at the factory. If the tower cannot prove it shares that key with your carrier, the baseband drops the connection before any voice or text data flows.
In 2G (GSM), that check only runs in one direction.
When GSM was standardized in 1991, commercial software-defined radios did not exist. The protocol was built so the tower authenticates the SIM card to stop billing fraud, while the SIM card never authenticates the tower.
A 2G baseband processor will connect to any transmitter broadcasting a valid Mobile Country Code and a stronger signal (RXLev) than the surrounding towers.
2. How rogue base stations force the downgrade
Because a rogue tower cannot forge a 4G cryptographic signature, it forces the phone's baseband to abandon 4G and 5G entirely.
An attacker using an Ettus USRP B210 and a 10-watt RF power amplifier triggers this fallback in two ways:
* Selective RF jamming: The radio floods local 4G and 5G downlink frequencies with noise while leaving a 2G GSM frequency clean. When the phone loses its LTE signal, the baseband's cell reselection state machine scans all supported bands and locks onto the attacker's clean 2G beacon.
* Protocol downgrade injection: The attacker broadcasts a rogue LTE signal just long enough to catch the phone's tracking area update, then replies with an unauthenticated Tracking Area Update Reject (EMM Cause #7: EPS services not allowed) or an RRCConnectionRelease redirecting the modem straight to a 2G frequency.
The baseband assumes you walked into a dead zone and switches to 2G in about 10 seconds without prompting the user.
3. Identity theft, A5/0, and the SMS relay catch
Once the phone camps on the rogue 2G station, the attacker sends a standard Identity Request packet. The phone replies in cleartext with its 15-digit International Mobile Subscriber Identity (IMSI) and its hardware IMEI.
Next comes encryption. Normal 2G traffic uses the 64-bit A5/1 stream cipher, which can already be cracked in seconds using 2TB Kraken rainbow tables. Worse, the 3GPP specification (TS 44.018) requires every phone to obey a Ciphering Mode Command set to A5/0 (null cipher).
When the rogue tower sends A5/0, the phone turns off air-interface encryption completely. Any outgoing SMS or call from the victim's phone travels to the attacker's laptop as unencrypted GSM 7-bit bytes.
To intercept incoming two-factor SMS codes from a bank, the attacker has to go one step further. Because a rogue SDR in a car is not wired into your real carrier's core network, the bank's SMS won't route to the attacker's laptop automatically. Either the attacker uses a second radio to relay your phone's handshake back to the real carrier's 2G tower and cracks the A5/1 downlink key, or they simply jam 4G so your phone drops onto the real carrier's 2G tower and passively crack the A5/1 air traffic in Wireshark.
4. The modern defense: Cutting legacy silicon
You cannot patch a 1991 radio handshake without breaking backward compatibility, so OS vendors finally gave users a kill switch for the baseband:
* Android 12+ 2G kill switch: Android added the setAllowedNetworkTypesForReason API to the Radio Interface Layer (RIL). Turning off "Allow 2G" instructs the modem firmware to disable its GSM stack at the silicon level. If 4G is jammed, the phone stays in "No Service" instead of dropping to 2G.
* Android 14 & 15 null-cipher locks: Android 14 added a modem toggle to reject A5/0 null-cipher connections outright on supported hardware, and Android 15 added live system alerts whenever a tower requests an unencrypted connection or cleartext IMSI.
* iOS Lockdown Mode: Turning on Lockdown Mode disables the 2G baseband stack on iPhones.
* 5G Standalone (5G SA) SUCI: Even on 4G LTE, a phone still sends its IMSI in cleartext during the very first attach request before encryption starts. Pure 5G Standalone fixes this last gap: the SIM card uses ECIES public-key cryptography to encrypt your IMSI into a Subscription Concealed Identifier (SUCI) before a single packet leaves the antenna.
Every modern baseband modem still carries legacy 2G mpatibility, and that 2G stack has no way to verify if a cell tower is real.
1. The architectural flaw: One-way tower trust
In 4G (LTE) and 5G, mobile networks enforce mutual authentication after the initial attach.
When your phone connects to an LTE tower, the network sends a random cryptographic challenge (RAND) alongside an Authentication Token (AUTN). Inside your SIM card, a secure processor checks that token against a 128-bit secret root key (K) burned in at the factory. If the tower cannot prove it shares that key with your carrier, the baseband drops the connection before any voice or text data flows.
In 2G (GSM), that check only runs in one direction.
When GSM was standardized in 1991, commercial software-defined radios did not exist. The protocol was built so the tower authenticates the SIM card to stop billing fraud, while the SIM card never authenticates the tower.
A 2G baseband processor will connect to any transmitter broadcasting a valid Mobile Country Code and a stronger signal (RXLev) than the surrounding towers.
2. How rogue base stations force the downgrade
Because a rogue tower cannot forge a 4G cryptographic signature, it forces the phone's baseband to abandon 4G and 5G entirely.
An attacker using an Ettus USRP B210 and a 10-watt RF power amplifier triggers this fallback in two ways:
* Selective RF jamming: The radio floods local 4G and 5G downlink frequencies with noise while leaving a 2G GSM frequency clean. When the phone loses its LTE signal, the baseband's cell reselection state machine scans all supported bands and locks onto the attacker's clean 2G beacon.
* Protocol downgrade injection: The attacker broadcasts a rogue LTE signal just long enough to catch the phone's tracking area update, then replies with an unauthenticated Tracking Area Update Reject (EMM Cause #7: EPS services not allowed) or an RRCConnectionRelease redirecting the modem straight to a 2G frequency.
The baseband assumes you walked into a dead zone and switches to 2G in about 10 seconds without prompting the user.
3. Identity theft, A5/0, and the SMS relay catch
Once the phone camps on the rogue 2G station, the attacker sends a standard Identity Request packet. The phone replies in cleartext with its 15-digit International Mobile Subscriber Identity (IMSI) and its hardware IMEI.
Next comes encryption. Normal 2G traffic uses the 64-bit A5/1 stream cipher, which can already be cracked in seconds using 2TB Kraken rainbow tables. Worse, the 3GPP specification (TS 44.018) requires every phone to obey a Ciphering Mode Command set to A5/0 (null cipher).
When the rogue tower sends A5/0, the phone turns off air-interface encryption completely. Any outgoing SMS or call from the victim's phone travels to the attacker's laptop as unencrypted GSM 7-bit bytes.
To intercept incoming two-factor SMS codes from a bank, the attacker has to go one step further. Because a rogue SDR in a car is not wired into your real carrier's core network, the bank's SMS won't route to the attacker's laptop automatically. Either the attacker uses a second radio to relay your phone's handshake back to the real carrier's 2G tower and cracks the A5/1 downlink key, or they simply jam 4G so your phone drops onto the real carrier's 2G tower and passively crack the A5/1 air traffic in Wireshark.
4. The modern defense: Cutting legacy silicon
You cannot patch a 1991 radio handshake without breaking backward compatibility, so OS vendors finally gave users a kill switch for the baseband:
* Android 12+ 2G kill switch: Android added the setAllowedNetworkTypesForReason API to the Radio Interface Layer (RIL). Turning off "Allow 2G" instructs the modem firmware to disable its GSM stack at the silicon level. If 4G is jammed, the phone stays in "No Service" instead of dropping to 2G.
* Android 14 & 15 null-cipher locks: Android 14 added a modem toggle to reject A5/0 null-cipher connections outright on supported hardware, and Android 15 added live system alerts whenever a tower requests an unencrypted connection or cleartext IMSI.
* iOS Lockdown Mode: Turning on Lockdown Mode disables the 2G baseband stack on iPhones.
* 5G Standalone (5G SA) SUCI: Even on 4G LTE, a phone still sends its IMSI in cleartext during the very first attach request before encryption starts. Pure 5G Standalone fixes this last gap: the SIM card uses ECIES public-key cryptography to encrypt your IMSI into a Subscription Concealed Identifier (SUCI) before a single packet leaves the antenna.
41
139
1,141
66,228
Tires and other sensors yelling into the air... mostly about air.
Simple rtl_433 wrapper into a massive classifier. Around 400 signatures coming to the next C2 release.
Simple rtl_433 wrapper into a massive classifier. Around 400 signatures coming to the next C2 release.
2
0
17
649
Working on code for this little toy. Tamper detection, simple recon, pathfinding, 2.4GHz waterfall
Connects to existing AntiHunters over encrypted ESP-NOW
Connects to existing AntiHunters over encrypted ESP-NOW
0
0
5
282
BLE is full of juicy packets. Now you can classify devices onboard.
GitHub: github.com/lukeswitz/Anti…
GitHub: github.com/lukeswitz/Anti…
0
7
94
3,796
Kits are up on the AntiHunter store
No tricks just treats 🎃 - orders of two or more include a free tactical tripod
Then the store goes on vacation for the rest of the month. Have a good weekend gang!
Get yours: lectronz.com/products/antih…
No tricks just treats 🎃 - orders of two or more include a free tactical tripod
Then the store goes on vacation for the rest of the month. Have a good weekend gang!
Get yours: lectronz.com/products/antih…
1
0
15
1,405
Lμke Switzer retweeted
If you have a VoLTE sierra modem (or other QMI +AT modem) on Linux, you can now just
git clone github.com/MercuryWorksho…
./start.sh --qmi-ims [--apn ims] [--apn_data vzwinternet]
and then make calls. No there isn't even really a catch, it kinda just works.
git clone github.com/MercuryWorksho…
./start.sh --qmi-ims [--apn ims] [--apn_data vzwinternet]
and then make calls. No there isn't even really a catch, it kinda just works.
3
6
100
4,547
New esp32s3 display. For awareness, tamper detection and simple recon.
The recent work by @lozaning with LoRa, and esp-sdr made my day.
ESPARGOS: github.com/ESPARGOS/esp-s…
LORA32: github.com/lozaning/LORA32
The recent work by @lozaning with LoRa, and esp-sdr made my day.
ESPARGOS: github.com/ESPARGOS/esp-s…
LORA32: github.com/lozaning/LORA32
0
0
13
979
This is the largest update to AntiHunter in a while. It addresses some big bugs and adds killer new features
v1.0.3: github.com/lukeswitz/Anti…
v1.0.3: github.com/lukeswitz/Anti…
1
1
24
1,219
WiFi channels can sense moving bodies. ISPs proved that years ago. After two months, I’m pretty satisfied with this.
CSI is an odd 🦆. I won’t call it done by a long shot. But I’m nauseously optimistic about this upcoming release.
GitHub: github.com/lukeswitz/Anti…
CSI is an odd 🦆. I won’t call it done by a long shot. But I’m nauseously optimistic about this upcoming release.
GitHub: github.com/lukeswitz/Anti…
6
23
226
18,242
AH C2 Feature branch updates
New alerts: Signal, Matrix, Discord, ntfy, IFTTT, browser push, and Apple/Google Home.
Improvements: protobuf support, fleet integrity (each node keeps a reliable radio identity), Meshtastic radios are detected automatically, Live movement CSI detections are at the top of Sentinel. Install script & system updates fixed.
Built-in Tailnet: Not a sidecar, runs inside AHCC. Login from your phone or another machine using Tailscale. It is never exposed to the public internet. Only accounts on your list make it to the login page.
Signal: isolated so it can only send alerts. It has no open port, uses a verified binary, and alert text cannot be turned into commands. Its settings can only be changed by an admin with 2FA.
Secure storage: the key that encrypts alert credentials is kept in macOS Keychain, in Windows DPAPI, or in an owner-only file on Linux.
Hardening: unique login signing keys per install, Discord mention abuse blocked, services listen on localhost only, and no secrets are baked into Docker images.
I’d like to test it a bit before pulling it into main. If you want to try it out, detailed instructions are here: github.com/lukeswitz/Anti…
New alerts: Signal, Matrix, Discord, ntfy, IFTTT, browser push, and Apple/Google Home.
Improvements: protobuf support, fleet integrity (each node keeps a reliable radio identity), Meshtastic radios are detected automatically, Live movement CSI detections are at the top of Sentinel. Install script & system updates fixed.
Built-in Tailnet: Not a sidecar, runs inside AHCC. Login from your phone or another machine using Tailscale. It is never exposed to the public internet. Only accounts on your list make it to the login page.
Signal: isolated so it can only send alerts. It has no open port, uses a verified binary, and alert text cannot be turned into commands. Its settings can only be changed by an admin with 2FA.
Secure storage: the key that encrypts alert credentials is kept in macOS Keychain, in Windows DPAPI, or in an owner-only file on Linux.
Hardening: unique login signing keys per install, Discord mention abuse blocked, services listen on localhost only, and no secrets are baked into Docker images.
I’d like to test it a bit before pulling it into main. If you want to try it out, detailed instructions are here: github.com/lukeswitz/Anti…
1
2
18
993
The whole firmware catalog run from an app. Run em all at once, wardrive and PCAP it too.
In his DC talk, @_colonel_panic encourages being creative with his work and detection- I appreciate it a lot.
Runs distributed ESPNOW nodes with standalone features on dongles. Check it
github.com/lukeswitz/oui-…
In his DC talk, @_colonel_panic encourages being creative with his work and detection- I appreciate it a lot.
Runs distributed ESPNOW nodes with standalone features on dongles. Check it
github.com/lukeswitz/oui-…
3
3
28
1,495
Pushing node support for a gang of s3/c5 devices later. 24 engines at once too much? Nah, just too much fun
Winner is the battery powered m5 sticks- runs detection with/without an app and beeps at me
Winner is the battery powered m5 sticks- runs detection with/without an app and beeps at me
0
0
2
229
Custom order headed out 🚀
Dropping a few nodes and kits on the store tomorrow…
lectronz.com/stores/antihun…
Dropping a few nodes and kits on the store tomorrow…
lectronz.com/stores/antihun…
0
1
23
1,197


























