Posted
by
samzenpuson Monday March 19, 2012 @05:03AM
from the known-weakness dept.

angry tapir writes "Luigi Auriemma, the researcher who discovered a recently patched critical vulnerability in Microsoft's Remote Desktop Protocol (RDP), published a proof-of-concept exploit for it after a separate working exploit, which he said possibly originated from Microsoft, was leaked online on Friday. Identified as CVE-2012-0002 and patched by Microsoft on Tuesday, the critical vulnerability can be exploited remotely to execute arbitrary code on systems that accept RDP connections."

The incident brings into question vulnerability Microsoft's program which is intended to alert security partners before the patches themselves are released. The idea is to give the security vendors time to prioritise and test the fixes, however in this instance, it left their customers vulnerable.

tldr: Microsoft gave hole in Windows to security guys. Security guys gave it to black hats. Customers lost (probably not for the first time...)

tldr: Microsoft gave hole in Windows to security guys. Security guys gave it to black hats. Customers lost (probably not for the first time...)

As soon as you release a patch fixing a problem you've given the black hats enough to exploit it if it is exploitable. A simple binary diff should be enough to figure out what was changed and then it's all over. Releasing actual exploit code only lowers the barrier to entry but a small amount.

As soon as you release a patch fixing a problem you've given the black hats enough to exploit it if it is exploitable. A simple binary diff should be enough to figure out what was changed and then it's all over. Releasing actual exploit code only lowers the barrier to entry but a small amount.

The Microsoft security partners may also receive actual proof-of-concept code to make it easier for them to create signatures which will help recognize an attack. By receiving actual PoC code the would-be attackers don't even need to reverse engineer anything.

A number of MAPP partners are chinese companies. Given that this was circulating on chinese sites, the chinese MAPP partners should anticipate an upcoming security audit from MS.

... and not to trust the security of people that can't even keep their stuff running when it's a leap year too much. They've even had stuff that executes arbitrary code inside images - some of their software just trusts the environment too much so that you have to control the environment their software runs in very carefully.

Climb down off your high horse. RDP for years now has been encrypted and certificate authenticated using TLS. There is no inherent reason when it should not be save to connect to a windows 6.x (Vista / 7 / Server '08) machine over the internet with RDP. You don't always use SSH over VPN do you? Its not as if that has never had a vulnerability.

Any particular reason why a SSH tunnel is inherently more secure than a TS gateway?

...one is part of a Microsoft product?

I hate to say it, but the mods should not be so quick here. Microsoft does have an awful lot of security holes. Most people would be crazy to let anyone connect to any kind of Microsoft based service over an Internet connection. Wrapping those connections up in something else like VPN is really the only way to go.

Linux has it share of vulnerabilities to be sure, but if it is Microsoft it is not an unreasonable position to say it is less secure and to take the appropriate precautions.

All it takes to exploit this is sending a couple of carefully crafted packets. Does not matter how encrypted it is. If the RDP port is exposed, and the right packets are sent to trigger the exploit. Game Over.

And in this case RDP can be exploited like this. Currently SSH and VPNs are not known to have this weakness.

All it takes to exploit this is sending a couple of carefully crafted packets. Does not matter how encrypted it is.

No. If NLA with CredSSP is in use then the vulnerability is not exposed. Just read the MS TechNet article [microsoft.com]. Note that although the TechNet article only describes CredSSP on Windows 6.x kernel operating systems, you can enable CredSSP on WinXP SP3 and install the RDP 7.0 client to achieve safety.

If the RDP port is exposed, and the right packets are sent to trigger the exploit. Game Over.

No. The port must be exposed *and* the RDP service must be enabled, which is not the default configuration. Just read the same link to verify th

Half-right. The code was written when Server 2003's APIs were the predominant security model on the planet. Unfortunately the new security model in Win7/Svr2008 breaks a lot of that code, sometime in non-obvious ways. An enormous industrial machine code base cannot be ported to the new OSs without major or complete re-writes. A goodly amount of that code is for custom-built systems or machines that are no longer being manufactured but which will continue to function for decades longer, and that code will probably NEVER be ported over.

I contracted at a utility that had a knee-high pile of ancient Compaq 386 laptops in their radio communications shop. When I offered to dispose of them the guys told me they had a half-million dollar radio tower which used configuration software that would **ONLY** run under MS DOS 3 on a 386 CPU. The manufacturer had been gobbled up by some other company and had no intention of re-writing software for a product that they no longer made. They kept that pile for 14 years, until the tower was finally replaced.

So, yeah, there's a shitload of that stuff out there and you're just going to have to keep dealing with DOS, Win9x, NT, Win2K, for the next couple of decades.

Had a similar situation with a radio station... their music system (only a couple years old at that time) was reliant on a *real* DOS subsystem (win9x was as "new" as it could handle) and needed a 16-bit ISA capable slot... no support... they spent a lot of money for a late (in the market) AMD 5x86 based system capable of running it, with a couple of spares (was in the early Pentium 3 era at a that time). It isn't/wasn't common at *all*... there's a reason that there are still regular serial ports, and on

I contracted at a utility that had a knee-high pile of ancient Compaq 386 laptops in their radio communications shop. When I offered to dispose of them the guys told me they had a half-million dollar radio tower which used configuration software that would **ONLY** run under MS DOS 3 on a 386 CPU. The manufacturer had been gobbled up by some other company and had no intention of re-writing software for a product that they no longer made. They kept that pile for 14 years, until the tower was finally replaced.

That's just placing trust in the VPN software, rather than the terminal services server. How does that help? You may trust a particular VPN implementation more than you trust any code out of Microsoft, I guess, but RDP is already encrypted and can be configured to use fairly good authentication.

Yes, for a business, it is expected that a VPN would be required (because there are a lot of network resources beyond RDP, and because the internal network is typically behind a proxy), but for a home connection that seems excessive. RDP is disabled by default on home installations, but plenty of people enable it at some point and don't later disable it even though it's a potential attack vector - much like SSH, which people also often use without VPN.

Additionally, there's always the risk of things like a disgruntled employee using this attack from within the corporate network to attack a co-worker (or manager) by changing something on their computer or stealing their credentials, or a corporate spy using it to gain access to data they shouldn't have, or... For remote security vulnerabilities, you need to be a lot more imaginitive in considering threat cases!

That's just placing trust in the VPN software, rather than the terminal services server. How does that help?

It does help a great deal: Your VPN becomes the key to being on your private network. Then, you only have your VPN to secure, not your multitude of services you want exposed to the outside world.

At home I have three linux machines and one Windows with various services running on each. From the outside, I need several of them: SVN, console, VNC, RDP, file access, etc. I decided to only open ONE sshd to the outside and tunnel every other service I need through this SSH. That way, I just need to maintain my ss

It does help a great deal: Your VPN becomes the key to being on your private network. Then, you only have your VPN to secure, not your multitude of services you want exposed to the outside world.

That's like having your garage door closed. "As long as my garage door is closed, I don't have to worry about locking the door between the garage and the rest of the house" until someone uses a universal garage remote to mimic your garage door opener's signal.

It does help a great deal: Your VPN becomes the key to being on your private network. Then, you only have your VPN to secure, not your multitude of services you want exposed to the outside world.

That's like having your garage door closed. "As long as my garage door is closed, I don't have to worry about locking the door between the garage and the rest of the house" until someone uses a universal garage remote to mimic your garage door opener's signal.

The only difference is that VPN software or SSH is *designed* to be secure, where your garage door is just supposed to be a convenience to prevent your car from getting too dusty. The proper analogy would be to build a prison wall with one overly secure door around your house, and inside the walls let everything open.

One is designed with security as a key feature and the other has a pile of features, including maybe enough security to tick off a checklist but not really a major consideration. It's not really MS bashing, it's just pointing out a product intended for use on a nice safe LAN is not going to be as good on an unprotected network as something specificly designed to act as a secure gateway. That's why I trust the software designed for a specific role instead of the one that has it as an afterthought. It woul

VPN often leads to a false sense of security. People see it as a panacea, if you just run VPN everything is good. You can see that on Slashdot with the "How could someone not have it behind VPN?" comments as though VPN is the One True Way(tm) to security and they can't conceive any other way.

So someone sets up a VPN and has a trusted/untrusted idea with the firewall and then doesn't properly mind after the "trusted" area since after all, there's the magic VPN protecting it. An employee then bring in an infected laptop, or VPNs in from an infect computer, punching through all the defenses and it is game over.

They are much less safe than someone who does allow RDP in and thus views all networks, including internal, as untrusted and is up on patching this.

Really VPNs are not a security tool for keeping attacks and so on out. What they are is for logically (virtually) connecting two disparate networks. You have office A and office B and you want them to be one logical network, a VPN will get you that. They are also good for encrypting communications if other security can't be relied upon. For example when I'm in an airport I use VPN since their WiFi is open to the world.

This idea that they are some sort of wonderful network security is rather flawed, they can be just the opposite. If an outside computer, not controlled by you, is allowed to punch through the firewall using VPN and become "trusted" to a degree, they are less secure. Also sometimes they are bad on the user end too as a number of them punch through user protections. Some VPN/software firewall combinations can't successfully identify the VPN as a network adapter and thus it punches right through all client side filtering. Combine that with a public IP on the end of the VPN concentrator and you can take someone who was protected with a NAT and host based firewall and expose them to the world, just by them logging in.

Don't get me wrong, I'm not anti-VPN, but people need to think critically about what they are really good for, how they need to be implemented, and stop with this "Everything should be behind VPN, it makes it more secure!" No, it can make it less secure if you fuck up.

I don't particularly disagree with what you are saying, but a VPN does make you more secure to outside threats. If you view security as a state, your state of security is higher with a VPN. That is all you are exposing to the outside. One point of attack.

You can apply what you are saying to NAT on consumer firewalls. Sure, they make you "more" secure simply by requiring translation rules to reach internal machines. That does not mean they are immune to attacks and you can ignore logs, not update firmwa

Most people don't have publicly available RDP open. But there are enough Windows machines out there that even if a small percentage have RDP exposed, and only a small percentage of them aren't patched... there is still a metric shitload of vulnerable hosts.

Dan Kaminsky has done some scanning and extrapolation [dankaminsky.com] to estimate that there are about 5 million RDP endpoints exposed

Just think about all those businesses out there that are otherwise smart enough to use VPN, but have servers out in AWS or Rackspace or GoDaddy that don't have an easy way to admin them other than by leaving RDP open. A lot of times those machines are stood up by software guys that don't know enough to be worried about public facing RDP.

I have had a few clients with open RDP, and you can bet I have been up on this with recommending patching to their current IT, and I had no ability to change it. The business owners want access from anywhere on the Internet and don't want the expense and hassle of VPN. In one case it literally comes down to the simplicity of putting in their domain name into an RDP client and anything more complicated is unacceptable.

It's turned off by default, which is probably pretty darn secure. In Vista, 7, and Server 2008, Remote Desktop supports network-level authentication which would require you to log-in to the network before being able to exploit this, which means its effectively been fixed for 6 years. If they manage to authenticate already, then your Linux box with SSH on it isn't any safer than the Remote Desktop machine.

There are three radio buttons in the "Remote Desktop Settings" menu: "Don't allow connections to this co

Businesses yes for the most part, but Windows power users that would like a way to log in remotely - like Linux people ssh with X forwarding - often have RDC enabled and internet exposed. Plus if you can traverse the external firewall some other way, then launch RDC attacks on the computers that's a pretty big loophole too. Or if you're somehow on the inside already, in a big company that external wall is just a tiny bit of your defenses. Overall it's pretty critical.

Everything I could find indicates that NLA has nothing to do with encryption: It is just to prevent the server from having to do a lot of processing prior to logon (reduce DDOS possibilities) and to allow single-sign-on:http://en.wikipedia.org/wiki/Network_Level_Authentication [wikipedia.org]

There are separate settings for encryption level, which AFAIK is enabled by default since 6.0.

Except in the case given by the article where the thing can be exploited just by sending packets and the attackers are in before any authentication or encryption happens. With something else as the gateway those RDP packets will never even get to the host unless they have another way in first.I'm not MS bashing, I'd treat VNC the same way and I'd never ever trust naked X outside of a very trustworthy LAN segment.

RDP has been encrypted and relatively secure for years now. It's frequently "good enough" encryption on its own. Just as SSH is frequently "good enough" on its own, and run without a a VPN.

I'd suggest that, at this point, running RDP through a VPN doesn't actually get you much more in the way of real security... Although it would allow you to choose specifically who to trust - Cisco, instead of Microsoft, for example.

I would say that way too many businesses have things set up to be open to the internet at large. Configure your firewalls appropriately. If you need you RDP machine accessible from "the internet" then at least configure your firewalls so that only certain IPs can access that port. If that means providing a static IP to your employees that need to connect, then so be it. Sure it's convenient to be able to connect to your computers from any other internet connected computer in the world, but it is by no means secure.

Well I use Easyconnect to help some of my customers when they some basic stupid problem that doesn't warrant them paying for a service call. Its nice to be able to use Win 7 Easyconnect to have not only control of their desktop but an open 2 way chat session so they can sit there and type "See this thing here? i don't understand that" or "This is the part where I can't get it to print" or whatever. i hope this doesn't affect Easyconnect as that thing is a real blessing to use repair guys, its simple enough

Tried Chrome's screencap and several others and friend don't nothing compare to EC. you see EC will automatically drop their desktop into basic mode to make for a lighter transmission, I'm sure yours don't do that, it requires NO account or software installs, again i seriously doubt the same is true of join me, and finally its so simple that i only have to walk them through it ONCE and after that it is literally "See my name? Click that" and they are done, EC does the rest. I have taken control of a checkou

1) Someone with possibly a bit less skill at finding vulnerabilities takes this code and merges it with a social engineering attack.2) The social engineering attack promises the user some silly thing (maybe extra smiley faces or dancing cats).3) The user runs the program inside the corporate firewall.4) All the company's servers begin blue screening as the user's machine spews these malformed RDP packets.

Honestly, that's not too far fetched and some type of blended exploit like this will probably happen. That's why it is important to patch machines for this and not think that a border firewall is going to protect you for long.

As RDP used full encryption and secure authentication procedures, it is seen as a safe protocol to leave open without a VPN - it is no less safe than most VPN solutions in that regard (aside from this recent bug, of course, but even VPNs have authentication bugs from time to time).

Just setting up a VPN in order to use RDC through it may make you more vulnerable, not less, unless you review your firewall and routing setups accordingly. If you do not ensure that only RDP traffic is permitted over the VPN t

Didn't I say "with a clue" above? Is there anyone, anywhere, that has the faintest idea of how to set up a VPN that doesn't know that they should change their other settings after they do it? Your statement is like suggesting that before a diver attempts a triple sommersault and twist they should learn how to swim first.

It cannot "be exploited remotely to execute arbitrary code". It can only crash the service. There is no RCE developed for this vulnerability, yet. The article itself even says this (even though it's author submitted it here):

"""Creating a working exploit for the CVE-2012-0002 vulnerability is not trivial, Microsoft security engineers Suha Can and Jonathan Ness said in a blog post on Tuesday. "We would be surprised to see one developed in the next few days. However, we expect to see working exploit code developed within the next 30 days."

The PoC is pretty basic, but an experienced exploit writer can modify it to achieve remote code execution, the researcher said."""

Yes, MS12-020 is a big deal. But, not THAT big of a deal, yet. Stop flinging FUD around about things that haven't yet happened.

That's almost as bad as '640K will be enough for anyone';)..... Murphy's law will prevail and someone will end up writing something that exploits it in a controlled fashion in the next 20 minutes. Unfortunately with bugs like this, the only safe approach is to take the most pessimistic one, that someone somewhere already has an exploit for it that takes control.

Except that quote is assuming that the attacker is starting from either now or last tuesday. The POC executable that was leaked was written back in November so there's nothing to say that someone hasn't been working on it the LAST 30 days.

If that's true expect a worm starting up on Friday evening at the latest.
The threat is real and the lack of a public RCE means little.

The Remote Desktop Protocol (RDP) implementation in [...] does not properly process packets in memory, which allows remote attackers to execute arbitrary code by sending crafted RDP packets triggering access to an object that (1) was not properly initialized or (2) is deleted, aka "Remote Desktop Protocol Vulnerability."

And the MS security bulletin [microsoft.com] also holds it as Maximum Security Impact: Remote Code Execution.

This is not FUD, even if there is no worm completed yet, it is a clear failure of MS security, and their concept of many lines of defense. Also, they promised to implement their own rehash of W^X, but apparently failed.

Not from a random machine on the Internet (barring an additional bug in Windows Firewall), no. The firewall filters packets before they reach the server program, so the exploitble software would never be executed.

However, if you trust *any* hosts, then you're also opening yourself to any attacks that those machines are vulnerable to. A bug like this, once weaponized (contrary to the title, I don't know of any remote code execution exploit in the wild for the vulnerability, though you should assume one exist

No, because if you have been diligently installing your updates like you should, the vulnerability is already patched.That's right. This is a story about a proof-of-concept exploit, and not the first one, of a vulnerability that is already fixed. Additionally, it's a DoS attack, not a RCE attack, but whatever, the main point is that it's been dealt with already.

It's disabled by default on all consumer versions of their OS. It's been a while since I've installed 2003 or 2008, so I don't know if it's disabled on those systems.

Which makes me doubly pissed that I'd set up a game download overnight last night (my usage is unmetered overnight) and they decided to force an unneeded patch/reboot on me, which fucked up the download.:/

Which makes me doubly pissed that I'd set up a game download overnight last night (my usage is unmetered overnight) and they decided to force an unneeded patch/reboot on me, which fucked up the download.:/

I concur that default does indeed suck, you can do a registry change to disable it though: