dagblog.
← Archive

Tunneling again…


I’m back for round two, still battling the administrators at our company :)… The experiment with tunneling through Socks via Http didn’t work out. After a few days our proxy administrator noticed a large number of requests to a particular IP address, since IRC and ICQ are chatty, and put a stop to it. Now I’ve tunneled ICQ through a Jabber transport that uses HTTP 1.1, specifically CONNECT. To be precise, it’s the client that uses it, a program called jajc. It’s a binary you can run without installing, and it does quite a lot, including SSL. You probably have no idea where I’m going with this, and how could you? If you use CONNECT on our proxy, and I don’t know how other proxies behave, a tunnel to the server opens through it. More interestingly, the proxy can’t count the data and treats the individual requests as one, the initial request. So unless the admin has some way to watch incoming and outgoing traffic, there’s no way to track me down :) unless he reads this blog, of course :]… He could look at the log, naturally, but it won’t show much out of the ordinary. Just a few CONNECTs to a single server over the week and almost no data. I’ll use the internet the ordinary way now and then, of course, so it doesn’t look too suspicious :)…

Now comes the preparation. I need to write a wrapper class to take input streams and wrap them into a single stream connected to the proxy. The program will sit on my computer and listen on a port. It mustn’t take more than one input stream at a time or the client side will get scrambled. A browser, for example, could connect to this program and send ordinary requests, which would then go through the proxy to the internet. There I’d run a program on a friendly server, listening on a port and forwarding all the requests to something like a Squid proxy on localhost to take care of the rest. You might think this is a lot of fuss over nothing, but there are real restrictions here that make it hard to use the internet the way we need to :)…

It also occurred to me that I could wrap requests from our old friend Socks via Http this way. Naturally, its server component would have to be running on the other side in place of Squid. That would let me tunnel more than just HTTP…

Now it’s up to me to get around to writing the code and hope our admin doesn’t read this blog :)

Medium version

Related articles

Related CZ Podcast episodes