Here is how htc sends data to the destination:
-
Open TCP connection to hts
-
Send HTTP POST with a large Content-Length
-
Send TUNNEL_DATA packets until POST Content-Length would be exceeded.
-
Send TUNNEL_PADDING packets to exactly satisfy Content-Length - 1
-
Send TUNNEL_DISCONNECT (1 byte)
-
Close TCP connection
-
Go to step 1
Here is how htc gets data from the destination.
-
Open TCP connection to hts
-
Send HTTP GET
-
Wait for response from hts
-
Read TUNNEL_DATA, then TUNNEL_PADDING, TUNNEL_DISCONNECT packets
-
Close TCP connection
-
Go to step 1
Tunnel creation and destruction
This can be useful for users behind restrictive firewalls. If WWW access is allowed through a HTTP proxy, it's possible to use httptunnel and, say, telnet or PPP to connect to a computer outside the firewall.
No comments:
Post a Comment