This is my first instructional blog post. By the end I hope you will know how to get around wifi paywalls.
I found this excellent hotel in Bangkok. It’s less than $20 / day and has a good bed with dark curtains and quiet rooms. It also comes equipped with a free gym and sauna as well as reasonable room service.
The only problem is they want to charge for wifi. In fact, they charge 1/3 of what the room costs just to use wifi. This, coupled with the fact that it is far from anything relevant ruins the savings found in staying there.
The way they limit usage of the wifi is that when you connect to the access point (no password) you are redirected to their landing page when trying to visit a website. You need to enter a login/password to be able to browse freely.
Luckily, there is a way around this and it only requires a few steps. You are going to need a couple tools so make sure you get these while you still have internet access.
First, you’re going to need Wireshark, or a similar tool, that can sniff packets. Wireshark is a handy tool that allows you to snoop on all the traffic passing through a router you are connected to.
The second thing you are going to need is a way to change your MAC address. I use SpoofMAC. A MAC address is a unique identifier assigned to network interfaces. They are stored in the physical hardware inside your computer, which means the only way you can change this is by replacing the hardware (or spoofing it with the above script).
The way these wifi paywalls work is by adding your MAC address to their “safe to fly” list. Essentially their software says, “OK This MAC address is safe, let it pass.” Until you pay your MAC address is on the “no fly list”.
Ok here are the steps.
1) Connect to the wifi. Easy enough
2) Fire up Wireshark.
3) Select an Interface (usually en0) and click start. Let this run for a little bit. If there are a lot of people on the wifi you only need to let it run for maybe 30 seconds. If there isn’t much traffic you might need to let this run for a minute or so.
4) After you’ve collected some data you need to click the Statistics tab and then select Conversations. This will list all the MAC addresses talking on the network.
5) Now pick a MAC address from the list and fire up your terminal. Click the image below for an example of what a MAC address will look like. (Hint, it’s the one highlighted in yellow). Note, in this mode it will show what type of devices are connected to the network (Apple, Samsung, etc). Make sure to uncheck the “Name Resolution” box in the bottom left corner to see all the actual MAC addresses.
6) If your device was indeed en0 you will type (in terminal):
sudo spoof-mac set MACADDRESS en0
In this example it would look like:
sudo spoof-mac set 00:e5:11:12:82:19 en0
Your laptop will reconnect to the router but this time it should skip the paywall. If it still goes to the paywall try a different MAC address from the list. You’ll eventually find one that will skip the paywall (meaning that the owner of the MAC address has already paid the fee). Now the problem is that there cannot be two MAC addresses connected to a network. So neither your nor the other person’s connection will work. Just keep trying to load a website and eventually the person will just give up (note: this could take a while if they are persistent) allowing you to surf for free!