(For more resources on BackTrack, see here.)
Honeypot and Mis-Association attacks
Normally, when a wireless client such as a laptop is turned on, it will probe for the networks it has previously connected to. These networks are stored in a list called the Preferred Network List (PNL) on Windows-based systems. Also, along with this list, it will display any networks available in its range.
A hacker may do either of two things:
- Silently monitor the probe and bring up a fake access point with the same ESSID the client is searching for. This will cause the client to connect to the hacker machine, thinking it is the legitimate network.
- He may create fake access points with the same ESSID as neighboring ones to confuse the user to connect to him. Such attacks are very easy to conduct in coffee shops and airports where a user might be looking to connect to a Wi-Fi connection.
These attacks are called Honeypot attacks, which happen due to Mis-Association to the hacker’s access point thinking it is the legitimate one.
In the next exercise, we will do both these attacks in our lab.
Time for action – orchestrating a Mis-Association attack
Follow these instructions to get started:
- In the previous labs, we used a client that had connected to the Wireless Lab access point. Let us switch on the client but not the actual Wireless Lab access point. Let us now run airodump-ng mon0 and check the output. You will very soon find the client to be in not associated mode and probing for Wireless Lab and other SSIDs in its stored profile (Vivek as shown):
(Move the mouse over the image to enlarge.)
- To understand what is happening, let’s run Wireshark and start sniffing on the mon0 interface. As expected you might see a lot of packets, which are not relevant to our analysis. Apply a Wireshark filter to only display Probe Request packets from the client MAC you are using:
- In my case, the filter would be wlan.fc.type_subtype == 0x04 && wlan.sa == 60:FB:42:D5:E4:01. You should now see Probe Request packets only from the client for the SSIDs Vivek and Wireless Lab:
- Let us now start a fake access point for the network Wireless Lab on the hacker machine using the command shown next:
- Within a minute or so, the client would connect to us automatically. This shows how easy it is to have un-associated clients.
- Now, we will try the second case, which is creating a fake access point Wireless Lab in the presence of the legitimate one. Let us turn our access point on to ensure that Wireless Lab is available to the client. For this experiment, we have set the access point channel to 3. Let the client connect to the access point. We can verify this from the airodump-ng screen as shown next:
- Now let us bring up our fake access point with the SSID Wireless Lab:
- Notice the client is still connected to the legitimate access point Wireless Lab:
- We will now send broadcast De-Authentication messages to the client on behalf of the legitimate access point to break their connection:
- Assuming the signal strength of our fake access point Wireless Lab is stronger than the legitimate one to the client, it connects to our fake access point, instead of the legitimate access point:
- We can verify the same by looking at the airodump-ng output to see the new association of the client with our fake access point:
What just happened?
We just created a Honeypot using the probed list from the client and also using the same ESSID as that of neighboring access points. In the first case, the client automatically connected to us as it was searching for the network. In the latter case, as we were closer to the client than the real access point, our signal strength was higher, and the client connected to us.
Have a go hero – forcing a client to connect to the Honeypot
In the preceding exercise, what do we do if the client does not automatically connect to us? We would have to send a De-Authentication packet to break the legitimate client-access point connection and then if our signal strength is higher, the client will connect to our spoofed access point. Try this out by connecting a client to a legitimate access point, and then forcing it to connect to our Honeypot.
Caffe Latte attack
In the Honeypot attack, we noticed that clients will continuously probe for SSIDs they have connected to previously. If the client had connected to an access point using WEP, operating systems such as Windows, cache and store the WEP key. The next time the client connects to the same access point, the Windows wireless configuration manager automatically uses the stored key.
The Caffe Latte attack was invented by me, the author of this book and was demonstrated in Toorcon 9, San Diego, USA. The Caffe Latte attack is a WEP attack which allows a hacker to retrieve the WEP key of the authorized network, using just the client. The attack does not require the client to be anywhere close to the authorized WEP network. It can crack the WEP key using just the isolated client.
In the next exercise, we will retreive the WEP key of a network from a client using the Caffe Latte attack.
Time for action – conducting the Caffe Latte attack
Follow these instructions to get started:
- Let us first set up our legitimate access point with WEP for the network Wireless Lab with the key ABCDEFABCDEFABCDEF12 in Hex:
- Let us connect our client to it and ensure that the connection is successful using airodump-ng as shown next:
- Let us unplug the access point and ensure the client is in the un-associated stage and searching for the WEP network Wireless Lab:
- Now we use airbase-ng to bring up an access point with Wireless Lab as the SSID with the parameters shown next:
- As soon as the client connects to this access point, airbase-ng starts the Caffe- Latte attack as shown:
- We now start airodump-ng to collect the data packets from this access point only, as we did before in the WEP-cracking case:
- We also start aircrack-ng as in the WEP-cracking exercise we did before to begin the cracking process. The command line would be aircrack-ng filename where filename is the name of the file created by airodump-ng:
- Once we have enough WEP encrypted packets, aircrack-ng succeeds in cracking the key as shown next:
What just happened?
We were successful in retrieving the WEP key from just the wireless client without requiring an actual access point to be used or present in the vicinity. This is the power of the Caffe Latte attack.
The attack works by bit flipping and replaying ARP packets sent by the wireless client post association with the fake access point created by us. These bit flipped ARP Request packets cause more ARP response packets to be sent by the wireless client. Note that all these packets are encrypted using the WEP key stored on the client. Once we are able to gather a large number of these data packets, aircrack-ng is able to recover the WEP key easily.
Have a go hero – practice makes you perfect!
Try changing the WEP key and repeat the attack. This is a difficult attack and requires some practice to orchestrate successfully. It would also be a good idea to use Wireshark and examine the traffic on the wireless network.