I’m not actually convinced that this would work but as a game industry professional, I spend *way* too much time trying to get access to the ‘net in strange lands where the powers that be have devoted significant effort to making such things impossible or sufficiently expensive to justify taking out a second mortgage… so I’ll probably give it a go at some point.
Did you ever sit at the airport or at a cafe and there was a unencrypted wireless access point nearby, but whenever you wanted to visit a site their website would pop up asking for a fee to use the internet through their AccessPoint (aka. Captive Portal)?
Well, I did, several times. But in most cases you are able to look up arbitrary hostnames, ie. google.com.
But you can use the fact that you can resolve arbitrary hostnames to gain free connection to the internet.
The Idea is to tunnel all outgoing traffic through DNS.
I did too… but I’ve certainly never thought of overlaying TCP/IP over DNS! This guy has really taken the idea and run with it though;
ntez375sy2qk7jsg2og3eswo2jujscb3r43as6m6hl2ws
xobm7h2olu4tmaq.lyazbf2e2rdynrd3fldvdy2w3tifi
gy2csrx3cqczxyhnxygor72a7fx47uo.nwqy4oa3v5rx6
6b4aek5krzkdm5btgz6jbiwd57ubnohnknpcuybg7py.6
3026-0.id-32227.up.sshdns.feh.dnstunnel.de
So the responses come Base64 encoded. Such a response might look like the following one:
695-8859.id-39201.down.sshdns.feh.dnstunnel.de. 0 IN TXT
"AAAAlAgfAAAAgQDKrd3sFmf8aLX6FdU8ThUy3SRWGhotR6EsAavqHgBzH2khqsQHQjEf355jS7cT
G+4a8kAmFVQ4mpEEJeBE6IyDWbAQ9a0rgOKcsaWwJ7GdngGm9jpvReXX7S/2oqAIUFCn0M8="
"MHw9tR0kkDVZB7RCfCOpjfHrir7yuiCbt7FpyX8AAAABBQAAAAAAAAAA"
Now bind (the default DNS server software) is one of the most complex and arcane pieces of software I’ve ever come accross and I’m not entirely sure that anyone fully understands DNS (the DNS configuration that seems to work best for us here at hellomonster is technically illegal according to the RFC but a properly formed DNS entry fails a lot more frequently for some reason)… so layering an entire TCP stack on top of it is just brilliant. Or madness, it’s hard to tell.