icmptunnel encapsulates data in ICMP frames. The usual mode of operation is tcp/ip forwarding, one icmptunnel will be set up on a blocked machine (behind a firewall) listening on TCP/IP port X. The other icmptunnel will be set up on a nonblocked machine (somewhere on the internet) connected to a local service (such as port 23, telnet). Data received on the blocked machine's tcp/ip socket will be encapsulated in an ICMP packet of users choice (ICMP_ECHO, ICMP_ECHOREPLY, ICMP_TIMESTAMP, etc..) and sent to the nonblocked machine. This machine will identify the packet as encapsulated data, decapsulate the data and forward it on to its tcp/ip socket connected to the telnet daemon. The telnet daemon responds with some data, icmptunnel on the nonblocked machine encapses the packet and sends it back to the blocked machine (ICMP type still user definable).
e414eb5c22d711054cf1a16559c6d88f0e38880d80e83e40f639eca897217a32