Last night, I decided to take a break from some of my other studies, and spent some of my time perusing through some of the Black Hat DC 2009 presentations. Black Hat has consistently done a superb job of getting great speakers who present on new "cutting edge" content (Dan Kaminsky on DNS Cache Poisoning), or show us geeks better ways we might be able to more efficiently do something with the tools we currently have. It appears that this conference was no exception.
One of the presentations that specifically caught my attention was, "New Techniques for Defeating SSL/TLS", by Moxie Marlinspike. The tool he created 'sslstrip' is able to perform some 'EVIL' tasks - if in the hands of the wrong person. The author states, "This tool provides a demonstration of the HTTPS stripping attacks that I presented at Black Hat DC 2009. It will transparently hijack HTTP traffic on a network, watch for HTTPS links and redirects, then map those links into either look-alike HTTP links or homograph-similar HTTPS links. It also supports modes for supplying a favicon which looks like a lock icon, selective logging, and session denial. "
So, I did some testing with sslstrip this evening, and was quite excited by the results! What did I find? Well, for every site I went to on the 'attacked' machine, sslstrip was able to obtain passwords for "ALL" of the protected sites I visited (from my testing, this included: Yahoo, Cisco, Juniper, Gmail, Myspace, LinkedIn, some various banking sites, etc...I think you get the picture here)!!! There were no browser errors on the client, no special files to configure on the attacking machine; it worked great. I haven't done an in depth analysis of all the bits and pieces to sslstrip, but I'd have to say based on the little use I have had with it, the tool kicks @55!
Now there are other tools that are similar out there, ettercap in combination with a few other tools was the first to come to mind for me, but I haven't worked with one that made it this easy to obtain 'private' credentials. Everything is very well documented in the python script, and the README contains all the information you require to get started. Rather than make this a long drawn out post/tutorial, I figured I would leave the reader with something to play with themselves - and if you have any questions, please post to the blog.
Now as far as caveats, it does require that the attacker have local network access in order to perform the attack. This brings to mind a few things though, specifically in our mobile world - what is local access:
1. Is the wireless your connected on secure/trusted? (think of Starbucks, or your other favorite 'hot spot' that might be outside the network/security administrators control)
2. Do you browse financial or other 'important' sites from your local library or some other public location?
I just wanted to toss a few ideas out there for the reader, since we aren't necessarily talking about our Local Area Network (LAN) when I state local network access. This access can be obtained remotely from many vectors, like the couple I mentioned.
Once I got this tool working - which took no time - I started to think of all the other devious ways you could use this tool (leveraging with other proxies, Karma, etc...). I'm not going to elaborate anymore (sure some of you with a bright imagination can conjure up a bunch of ways to use it too), but it does make a person think about the security, or lack there of, in the technologies that we use today. I've argued the side of IPSec vs SSL for a long time, and don't want to start that here again, plus I think there definitely are applications where SSL is more feasible than IPSec, and vice versa. What I want to do is make people aware, whether it is the reader here or my employer, that if your using some type of technology and you think it is the most secure technology around and the best thing since sliced bread, there are some pretty good chances that it isn't! Hat's off to researchers like Moxie who are publishing tools like this, which help to further the security community as a whole!
Website and Tool:
Black Hat Presentation (PDF) "New Techniques for Defeating SSL/TLS":