Hacking on a plane: Leaking data of millions and taking over any account
rez0.blog
rez0.blog
> Wednesday (November 23rd) resolution has already been tested and deployed
That's a pretty nice response time - compared to some big companies that are asking security researchers to not disclose vulnerability for six months.
Does anyone have any more information about whether or not this person was compensated for their work?
the fact that he mentions the bounty but not the reward means he probably got a reward. If he did not get one, he would have mentioned it.
it was not a ridiculous amount because 1. he would have refused it and talked about it. 2. the money was good enough for him to comply and not cite the companies
was it a large amount ? it could be the reason why he's not telling it. Companies don't want to be spammed by script kiddies attracted by the "largest reward in town".
The fingers basically always seem to be off in these AI generated images.
Back in the day, when it was first rolling out, you could (theoretically ofc) join the plane's network and scan for MAC addresses, then clone someone else's for free access.
I think the authentication is a bit more sophisticated these days, but it's clear that these providers treat security as an afterthought. At least the one in the article had a bug bounty program and responded quickly, I guess.
Unrelated, I think it's funny that the AI artist put a little picture of a house on the airplane's interior wall in the article's header image. Maybe plane trips would be more bearable if the cabins didn't look like a utopian abbatoir's waiting room.
Given that the MAC address is the only thing the access point has to tie your packets to a (paid) session in an unencrypted network, I'd expect this to still work today, or am I missing anything?
OWE [1] might help in this scenario (if it‘s possible to reliably bind that to a login session somehow), but that's pretty new, and given how long upgrade cycles on airplane hardware are, I wouldn't count on seeing that within the next couple of years.
[1] https://en.wikipedia.org/wiki/Opportunistic_Wireless_Encrypt...
What did you try exactly?
There's several of these "I changed X and got Y" without ever showing what X is, just alluding to it. That grinds my gears in any blog post, perhaps only second to not stating which version/system some code is running against.
But this? This is just straight up careless, thoughtless design with zero regard for security whatsoever. It's inexcusable.
As luck would have it, I've got a flight coming up in a few days on a plane using the provider implicated in this article. I'll be doing some poking around myself for sure.
In practice, PCI standards compliance is a mess of people selling "point and click compliance solutions," companies being too big to be properly audited, code churn between audits, companies misleading auditors or hiding key data. Security theater is especially pervasive in PCI compliance.
* run scanner
* print out report
not a lot of deep diving
Can you recommend companies that you've personally worked with who employ knowledgeable security engineers (hackers) to perform real penetration tests and conduct valuable security scans resulting in value-add reports your engineering team can work with?
Not looking for naming and shaming...but rather "Who doesn't suck at doing this?".
Trail of Bits is another big name because they hire and retain talent across a large number of enterprise, emerging tech, and research verticals.
Other established firms include Atredis Partners, IOActive, Security Innovation. There are more one could list.
Sometimes these companies work with partners who ask to publicly disclose some artifact resulting from the test. Here is a collection of those reports aggregated by firm: https://github.com/juliocesarfort/public-pentesting-reports (Edit: note this is not a great way to evaluate any particular company, but it does provide an objective listing of companies that exist in the pentesting space).
Each firm will also have variability in their personnel for your project which can yield different results for two independent tests on the same target from the same firm.
I could have done all of this myself and saved the company tens of thousands of dollars but I think management insisted it came from an outside company. It would be nice though to find an actual pen tester from the back alley of DEFCON who you have to pay in crypto or precious metals and have them do some actual hacking. :)
I've done tests several years on a row where I pop a service using the first years report.
But if you read their reports, it’s all “no, no, no, no way!!!!!!”
A lot of “consultations” are really “inform/get informed, and ignore it all and do what you were going to do all along anyway”.
But you can check the box to say you did your consultations.
Instead, they are interested in delivering buttons, fields, and streamlined workflows. Technical debt and library upgrades? Os upgrades? Forget about it. They need to deliver value back to the business in terms of faster business processes.
Only when the business is hacked or they fail compliance does the business leadership start to care.
Blaming the people with the hands on the tools is not fair when the business will not give the resources to do their work properly.
[1] I'm thinking in particular of Ars Digita's second system effect Java replacement for their original Tcl environment. It tried to turn everything into late 1990s Java buzzwords and was completely opaque, as well as being comically inefficient.
The fact that you could put in an email address in lieu of a username/userID seems irrelevant; lots of systems allow email addresses as a username. What stands out about this to me is: We see in both requests the same `uxd_id` field. This looks to be a temporary login key or validation key generated by the server, that the client would probably use to validate further requests or validate a password change request from that username. It's different in the email than in the live server response so they are generated in different sessions. So...
1) The email reset has two calls. What does the author mean that the first call validates the user's auth? If this is a "forgot password" link for a user who's not logged in, there should be no existing auth (unless that old uxdID functions as a permanent password, but even then, it should be specific to the user). That link should go to a page that issues a new email with a temporary validation token that's tied to the specific user and then emailed back to that user's email address. Unless you could intercept the named user's email there should be no way to know the new token and reset the password.
2) If, on the other hand, it was a reset pass call with the user already logged in, why is the server not checking that uxd_id matches the active login session which also matches the user whose password is to be changed? What's the point of the uxd_id field in the PUT call if not to check that calling user == authorized user == user whose password should be changed? Who would write something like that? For that reason, this looks more like a backdoor for testing password resets that was unintentionally left open.
Am I misunderstanding something about the way this thing is taking tokens to change passwords...? Or is what's described really as simple as "system doesn't check if uxd_id matches user's email on an active session"?
Meaning, those $_SESSION variables in PHP are stored on the server, but the server only knows which session to access based on a key passed with every call from the client. A hacker copying someone's php session id would "trick" PHP into using the target's server side variables.
If you're coming from a reset password email and the user has no active session, a token has to be sent via GET and checked, which means you have to look it up and verify it.
If anyone has a story about how "that's not enough" I'm eager to hear it. Can't be too careful, can we?
Assuming you're a black hat exploiting this bug, what can you do, if the target is using a VPN?
I don't know what "address of the credit cards" means, but let's assume it's the target's home address.
You don't get their credit card number or security code. You don't get access information on any of their web accounts. Correct?
If you spy on their internet activity during the flight, it's all encrypted. You won't learn anything.
However, you do have the ability to change their password, so they can't get into their own account anymore.
You could also bill all your own activity to their account. I don't know if you can bill other things to the account.
You could get access to whatever data was stored in that account. I don't know what that would be, other than when & how much you used it in the past.
Is this a complete summary of the potential damage?
Since there's no Reply button for the two answers to this:
Neither of them answer my last question ("is this a complete summary..."). Should I assume it is?
And I never said "oh but the data leak isn't really that bad of a vulnerability" -- you did.
This has to do with API endpoints that exposed customer information and allowed password changes without checking that the request was coming from the customer. The customer didn't have to be logged in to the account, or even on the flight in the first place. If they had an account, it was exposed.
Maybe you could just admit that and end the argument. This doesn't require you to minimize the seriousness of the bug.
I tried to summarize what the vulnerability is. Why are you so upset about that?
Going by the same logic, what can a black hat exploiting this bug do if the target ISN'T using a VPN?
Using or not using a VPN in the context of this bug is totally irrelevant.
OP said "what would not being on VPN let someone do to you?"
not
"what harm could occur if you're not in the air?" or
"does using a VPN protect you from all harm?"
and the question/assertion is, "if you were in the air, and not on VPN, then could a black hat who's compromised your account spy on your traffic?"
And even if they could, any sensitive page should be using HTTPS, so the data will be encrypted. A VPN still wouldn't make a difference.
I did read the article and "use a VPN" is solid advice; moreover it's something you have complete control over, whereas the system on board the airplane is beyond your control.
Except you can just not use it, which is probably the best advice of all.
It's the equivalent of me coming into the thread and saying "the sky is blue". It's a factual statement, it's kind of in the realm of being related, considering airplanes fly in the sky, and yet it is completely and utterly tangential to the article and vulnerability. It's as off topic as a comment can be.
Using a VPN to protect you from the dangers of public Wi-Fi is worthless, because HTTPS already does everything VPN companies claim their VPNs do to protect you, such as protecting people from snooping your banking information or redirecting you to some "Wells Fargo But It's A Phishing Frontend" website, because HTTPS provides both encryption and, through certificate verification by way of the browser's own trust store, validation that you're connecting to the domain you think you're connecting to and an MITM attack isn't going on.
If I'm somehow wrong about any part of that, I'd like to know.