Bad times in corporate wireless networks
rachelbythebay.com
rachelbythebay.com
But to increase the adoption of EAP, what would be better is a super simple daemon, you point it at LDAP or a file, and it sets itself up for PEAP or EAP-TTLS and you just have to point your APs at it. FreeRADIUS is far to complex for most use cases.
I note that many APs now come with nice web interfaces and can integrate with LDAP and Active Directory directly, which is a great step forward.
Ideally AD would support something like SRP directly so you wouldn't even need server certificates.
You mean like hostapd provides? :)
##### Integrated EAP server ###################################################
# Optionally, hostapd can be configured to use an integrated EAP server
# to process EAP authentication locally without need for an external RADIUS
# server. This functionality can be used both as a local authentication server
# for IEEE 802.1X/EAPOL and as a RADIUS server for other devices.
# Use integrated EAP server instead of external RADIUS authentication
# server. This is also needed if hostapd is configured to act as a RADIUS
# authentication server.
eap_server=0
# Path for EAP server user database
# If SQLite support is included, this can be set to "sqlite:/path/to/sqlite.db"
# to use SQLite database instead of a text file.
#eap_user_file=/etc/hostapd.eap_user
https://w1.fi/cgit/hostap/plain/hostapd/hostapd.confSadly, setting up a RADIUS server is the only way I can see this is possible.. way to complicated, I'd sooner just put a static file on the router, but I'm not sure if this is possible.
There is also the problem of so many eap modes. There are some interesting EAP modes that have come along - like EAP-PWD - that remain unimplemented on major platforms, and are basically unusable. So you're left with EAP-TTLS with PEAP and MSCHAPv2 (stores passwords weakly), or EAP-TLS with client certificates. And no one wants to manage client certificates if they can help it.
Both of the above make WPA2 Enterprise on BYO devices quite a challenge.
It's not obvious that you're better off security-wise with EAP-PWD than you'd be on WPA3-PSK for example, the UX for PSK is better, and the compatibility story for WPA3 is probably acceptable today, so there's no reason to want EAP-PWD now even if it might have been better than the status quo five years ago.
MSCHAPv2 is garbage but that's Microsoft's fault, and the uncomfortable reality for almost any medium or large organisation will be that there is a bunch of Microsoft stuff and so whatever crap they shovelled into Windows is what you have to put up with.
The more I think about "evil twin" and read/ re-read this thread, the more I think maybe the most attractive new-build answer is throw away WPA2 Enterprise in favour of WPA3 with no password†, then do BeyondCorp / ZeroTrust and defend your systems at their edge not by hoping a poorly defended WiFi network or VPN saves you from doom.
†In WPA3 networks with no password are still secured against passive adversaries, so the UX is nicer but it's just as safe as having a WiFi PSK that inevitably is easy to find out. And unlike MSCHAPv2 it doesn't let bad guys harvest all your users' credentials for the price of a DES cracker.
We currently use PEAP with MSCHAPv2 since the user credentials are protected in transport and our domain controllers are pretty secure, but it'd be nice to be more flexible.
I agree; I think the problem is that it looks hard, with a truckload of config files and settings. It's not obvious that you wouldn't need to touch most of them. That's a UI/UX problem really...
https://openwrt.org/docs/guide-user/network/wifi/freeradius
the config file syntax looks funny, but it doesn't look particularly challenging.
- attwifi
- Google Starbucks
- xfinitywifi
- hhonors
The list goes on and on. Depending on what AP you are using you can easily do 16+ SSIDs
I was pissed when my Android phone connected to the McDonald's wifi without me telling it to do it.
the main advantage of saving a network is not to retype the (should-be-)hard-to-remember password, but the popular ones are usually open, in which case that advantage goes away. but when you've curated the order of the list just so, you may not want to delete them outright, but rather turn off auto-join.
naughty!
Actually, on second thought, this doesn't really help Rachel's scenario. If the imposter knows our PSK then WPA3 does not defeat that. Huh.
[Also there ought to be a way to zap that +Karma on a comment that I now realise isn't helpful ]
Original post follows:
Note that WPA3 is intended to fix this, but...
* Your corp network probably doesn't talk WPA3 yet
* Even if it does it probably also allows WPA2 back compatibility for older devices
* Lots of devices can be fooled into accepting that just because the 'foocorp' AP it usually talks to is WPA3 maybe this 'foocorp' AP is WPA2-only and that's fine
* Cheap devices (maybe not your laptop or iPhone, but perhaps a cheaper phone and definitely other devices) are too constrained to safely run the secure algorithm.
WPA3 uses a PAKE here (it calls this "Simultaneous Authentication of Equals but it's just the Dragonfly PAKE) so the advantage is that devices don't tell anybody what the PSK is. But we're probably a decade from being able to tell people (especially conservative corp sites) to turn off WPA2 altogether.
If you already use a sane 802.1x setup instead of a PSK WPA3 doesn't meaningfully improve anything and you needn't rush to update, but of course random cheap consumer WiFi gizmos that expect a PSK won't work.
Of course, vendors don’t help here. Spending six digits on Cisco gear to get “out-of-the-box” end-to-end authentication (that then is weirdly inflexible in hooking up to your corporate AD) is certainly not on most small companies’ radar, especially when they get cheap APs that “work”.
For home use, I’ve bee looking for decent APs (_not_ proprietary fancy mesh setups) that support 802.1x and don’t cost an arm and a leg, and I’ve been seriously considering ripping out my Airports (which are amazing Wi-Fi gear, and sadly discontinued) and going with a combination of OpenWRT gear and an embedded RADIUS server.
But I’ve been wondering if there are decent SOHO solutions out there for 6-12 APs and up to 50 users — it would be great for small companies/startups.
MITRE/CVE's: https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=Mikrotik
"Most MikroTik routers fail to get patched a month after severe security issues disclosed" https://portswigger.net/daily-swig/most-mikrotik-routers-fai...
"Finding and exploiting CVE-2018–7445 (unauthenticated RCE in MikroTik’s RouterOS SMB)" https://movaxbx.ru/2020/01/29/finding-and-exploiting-cve-201...
"Coinhive malware infects tens of thousands of MikroTik routers" https://searchsecurity.techtarget.com/news/252446369/Coinhiv...
"Kenin said malicious actors were exploiting a vulnerability in the routers that MikroTik had patched in April -- just one day after the flaw was first discovered."
So an exploit was found (it happens) and patched within 24 hours.
From memory this was only vulnerable if you didn't block incoming winbox traffic on your wan port (which is of course good practice, and I believe the default configuration).
Upgrading a mikrotik router is a matter of running "system package update install". You could stick that in a scheduled script if you wanted.
Upgrading a cisco or juniper router requires things like support contracts, tac accounts, and other nonsense, then in many cases doing things like using tftp (!!) to copy a binary to the router, then ensuring you have a serial connection (!!) to the switch for when it breaks.
In my previous experience both from my ISP days and some time in a corporate IT "networks" department, almost nobody upgrades their "enterprise" (Cisco) routers or switches. It's too risky.
https://it.cornell.edu/wifi/connect-eduroam-android
Notice this does not setup certificate validation (and therefore does not authenticate the AP is actually from Cornell). It also tells you to use the completely broken MSCHAPV2 and login with credentials that allow access to a number of other university services. So in this setup, not only can you still trivially impersonate a Cornell AP, all clients also give you their specific login credentials in a way that allows you to recover their passphrase.
But it will be talking to Cornell to authenticate you and so no you can't "recover their passphrase".
EduROAM is a global federation. So what's happening goes like this:
Let's say I'm a Cornell student
1. I follow these instructions, probably while on campus to make my, let's say, iPhone work with WiFi. My "NetID" is tialaramex for this example.
2a. Probably my phone automatically concludes that network-access.it.cornell.edu is really network-access.it.cornell.edu because it has a Web PKI cert that says so, just like on an HTTPS website.
2b. But if not I have a step where I tell the phone this certificate looks OK. This is effectively TOFU (Trust On First Use) because I'm a naive user which isn't great but it'll protect against many attacks later.
3. I go to the University of Sydney, in Australia, as an example.
4. My device sees an AP named "eduroam" because I'm at a university in a developed country and the Network Effect means it makes sense for all universities to join eduroam.
5. My device says "Hi I'm tialaramex@cornell.edu † let me in"
6. Sydney's AP talks to an Australian server which talks to Cornell, which agrees to talk to my device about this, over TLS
7. My device confirms that this TLS connection matches the certificate we saw earlier, or has a trusted certificate for network-access.it.cornell.edu
8. Using the risible MSCHAPv2 protocol (but happily inside TLS) my device proves I am really tialaramex@cornell.edu
9. Cornell tells Sydney that yup, I am an authorised Cornell network user, let me in.
10. I get the same privileges as a local Sydney student/ professor in terms of network access. If there's any problem (maybe I use 40GB in one day from PornHub) Sydney know which Cornell user I am and they can take it up with Cornell. In extremis they can "blacklist" me.
† It is possible to arrange that the local institution does not find out your "real" username at your home institution, since they don't need to know that in order to connect to the right authentication service. But mostly nobody cares.
And the situation isn’t really all that dire because once you connect to the real university wireless once it will pop up a warning if another network with the same SSID appears but doesn’t present the cert.
Access protection is usually done more diligently for important networks, but the simplicity of a MITM attack makes it apparent that all corporate networks need RADIUS or similar protection.
In fact the way it's presented it even seems that was 'authored by rachel, the anonymous valley dev'.
Harmless attitude when it's just someone trying to land a hotsite and earn some extra bucks/attention. But later don't complain when the same attitude is in place by big companies/VCs draining your career.
Tech scene really reached a new low these days: "put the minimum effort; try to extract and profit the most" -- while trying to be 'smart/efficient' people lost the self perception of predatory behavior.
Maybe could be renamed to Grasshopper By the Bay. :P
The company also had 2 different networks, one for data and one for VOIP. They had wall plates in the conference rooms that had a data RJ45 and a VOIP RJ45. Someone decided to plug a cable from the VOIP port into the conference phone (which had a pass through), and plug a cable from the pass through on the phone into the data port, causing all kinds of weird chaos. That was a fun one to track down.
And it does, kinda. Except it doesn't stop you from capturing clients on your "fake" network, and the goal isn't necessarily to be on the "real" network, the goal might be to just man-in-the-middle a juicy site or two, with is on the big Internet (say, the company's bank)
Capture the controller's login into the bank and win "free money"
In my discussions with such people[1], I have found that a preponderance of them believe that a MAC address filter is a strong protection against unauthorized equipment on their wireless network.
[1] I have had many occasions in my career where I have hired people in the IT/Ops role and during the interview process I have often probed their understanding of the plumbing of IT beyond the parameters necessary to enter on a screen in order to get something "up." My admittedly non-scientific sampling suggests that "knowing the plumbing" is not a valued skill for many of these people.
* The goal stated in the article is to lure clients onto a rogue AP far away from the office anyway.
1. Have access to their computer to retrieve the wpa key. 2. Create a clone of the wifi network, spoof a bunch of sites and hope to catch one that doesn't use http.
Why can't I replace step 2 with: Install a root kit since I already have access to their machine.
1. Find some one to steal a key from but which I don't care about. 2. Locate a third person that I want to target and move close to them in non office hours. 3. Create a clone of their wifi and try to spoof some website. Hopefully I can be close enough to their device that it would join my clone instead of their other preferred networks.
At step 2 seems like a better idea to move close to the office and start probing around?
To get near a target in the wild isn't that hard, especially if you know where they like to go on a regular basis.
It's lot easier than a lot of other methods, especially for a high level target like a C-level exec who might have access to bank accounts with millions of dollars and like to work at a local coffee shop on weekends.
Or park a car outside
An attacker wants to decrypt the packets passed on as the man in the middle without alerting the victim. A big red "insecure connection" browser warning due to an untrusted certificate used by the MITM can easily thwart the attack.
To make this work, the attacker needs access to a CA the victim trusts to sign certificates on the fly. If the attack is limited to a single target page, stealing the associated private key from the legitimate website operator is an option, too.
Redirect all traffic to a site which looks like the corporation you're spoofing, asking for corporate login credentials, how many will enter them reflexively, especially with poor corporations that ask for authentication on a frequent basis.
From memory captive hotspot popups on apple devices at least don't even show the URL they have loaded, but www.targetcorp.com-secure.com etc works well in many cases.
If you were signing into "Starbucks.com" then logically we can arrange that the AP needs to prove it has a certificate for starbucks.com or some-wifi-made-up-prefix.starbucks.com or something and it could use the Web PKI to make that work safely for everybody.
But APs do not have FQDNs. The WiFi industry has talked about trying to get to roughly the same place by a circuitous route, but the problem they run into is: Who is allowed to call their AP "Starbucks" and why? If you decide it's fine we'll hide a signifier elsewhere, then the user doesn't know why this Starbucks and that Starbucks don't interoperate. Their experience is disappointing and even if you claim it's for security reasons they're left puzzled.
However, there is no need to involve "deploying certs" anyway.
You can use your existing (very likely) Active Directory or similar and single-sign-on infrastructure to allow employees WiFi devices to prove who they are to the WiFi AP, without giving away any secrets. There are an impressively confusing array of different ways to do this, but the good news is that even the really terrible ones are safer than a PSK.
You can even federate this system, a good proportion of all degree institution students and staff in the industrialised world have EduROAM, their laptops (iPhones, whatever) connect to any AP that claims it is EduROAM (maybe in Venice, or New York, or Sydney) and they tell it their email address with their home institution (e.g. where they're employed or registered to take classes) and then they give that institution credentials to connect. The local institution can see that e.g. OK this NYU student is on our network, and if there's a problem (looking at PornHub in class? Not here) they can tell NYU about it and if necessary blacklist a problem user. But they don't get credentials for the user, and the user doesn't get local credentials. No more need for toxic "guest" networks for visitors.
So there's really no way to do so currently, correct?
> There are an impressively confusing array of different ways to do this, but the good news is that even the really terrible ones are safer than a PSK.
Which would be actually the safest one that would primarily avoid evil twin attacks?
> But they don't get credentials for the user
Assuming there's no easy misconfigurations made by the user? E.g. they can't click "accept this invalid cert" somewhere?
AFAIK Nobody does this today. It would be difficult to retrofit.
> Which would be actually the safest one that would primarily avoid evil twin attacks?
Ah. Unfortunately this "evil twin" impersonates an AP and 802.1x does not end up giving us confidence in the identity of the AP per se.
For example say you're using PEAP-EAP-MSCHAPv2 (a common way to set things up with an Active Directory service authenticating your users) - if the bad guys can connect to the server you're doing PEAP-EAP-MSCHAPv2 on from their "evil" AP then your users will consider everything looks fine. The bad guys can't directly learn their credentials in the process because there's a TLS layer, but your users end up connected to their "evil" AP.
Even with certificates (say EAP-TLS) this is no different, if the bad guys are able to talk to your legitimate service they can have your users authenticate with your legitimate service on their AP.
So the main thrust ends up being: Do not trust the network. Use TLS and other technologies to secure your traffic so that you don't care who is providing the network, whether it is who you expected or somebody else.
Sorry.
> Assuming there's no easy misconfigurations made by the user? E.g. they can't click "accept this invalid cert" somewhere?
Good point. That would definitely vary by client device. There's no good reason why a device should let you do that, but I wouldn't be surprised if lots of them do.
You mean BSSID. It looks like a MAC address and in some cases it actually is one, but it’s not required to be. Each AP broadcasting for a given network will have a different one and I’m not aware of client side native behavior to alert or enforce a whitelisted set. Even if there was, you could easily spoof the BSSID too, just would need to war drive to get it.
This is why major OS providers are taking it on themselves to tackle some of these issues independently of the WiFi setup - like taking the location in consideration and warning you if you connect to the same network in a different location.
I would contend that this is a problem with wireguard. It shouldn't be trusting the name of the wifi network.
Also my wireguard box isn’t fast enough to handle gigabit speeds so on my home network it slows things down too much.
You misunderstood the issue. Modern enterprise wifi won’t detect a “rouge AP” that’s setup near a worker’s home (or coffee shop), only ones in radio range of the corporate APs.
I’m not sure if there is some kind of MDM policy that would restrict locations that are valid for wifi use, but expect it is coming soon.
Actually, that’s the exact opposite of what I was quoting. That’s client side detection, not “rogue ap containment” which is an entirely different thing. Rogue AP containment is where a Wi-Fi controller detects unauthorized APs within its AP’s radio range and sends client disconnects to the devices connected to it, effectively isolating (“containing”) users from it.
You can imagine what happens when two corporations are in adjacent spaces in the same building and both have their WiFi configured to "contain" the neighboring tenant's access points.
I don’t need to imagine, I’ve done it to my apartment complex before by mistake. I have an Aruba 3200XL controller and a bunch of APs (couple 335s, couple 225s, and some older 105s, with the 105s being used as Air and Spectrum monitors). Decided to see the impact and quickly learned all my neighbors lost WiFi access.
Giving that network a VLAN to exist on with just an internet gateway should be trivial.
Coupling the VLAN with client isolation should be adequate for most companies.
Any reasonably administered corporate network should be able to then provide company issued devices with more reasonable security.
Posture assessment and other aspects of network management are important for compliance.
None of that should scare anyone. You can still stream music in the bathroom while offering more security for corporate devices.
To my knowledge, it will not. So you'd need that SSID and VLAN to be something like a guest wifi. Preferably with a key that rotates often enough that people will not try and remember the network.
Cause otherwise, it just became a whole lot easier to get a layer 1 MitM on anyone who has that network on auto connect.