lunes, 10 de noviembre de 2014

TCP over UDP Tunnel



No es que estemos obsesionados por los túneles y el anonimato pero en realidad…. ¡Sí que lo estamos! Hoy quiero compartirles una herramienta que nos permite crear túneles para el envío de paquetes TCP sobre mensajes UDP, siendo esto de gran utilidad cuando nos encontramos en redes de datos con restricciones o algunas limitaciones en el uso de protocolos muy comunes como lo es HTTP, FTP, SSH. etc. El nombre de esta herramienta es udptunnel y opera de la siguiente manera:

Se tiene dos computadoras, la primera (PC1) cuenta con acceso a la red sin restricción alguna y la segunda (PC2) tiene bloqueado el envío y recepción de paquetes ICMP y TCP dentro de la red.

              +------------+                  +------------+
(Internet)<---| Server PC1 |    TCP - ICMP    | Client PC2 |
              |22 SSH (TCP)| >===  BLOCK ===< |    SSH     |
              +------------+                  +------------+

En el lado del servidor (PC1) ejecutamos udptunnel especificando un puerto donde escuchará las peticiones UDP del PC2, para que luego se realice la conversión de esas peticiones UDP a TCP que serán re-enviados a un servicio TCP local en el servidor.
./udptunnel -s <PortUDP>

Al ejecutar udptunnel en el cliente (PC2) se crea un servidor TCP local donde hará forwarding al servicio especificado en (PC1) a partir de la sustracción de los payloads en los mensajes UDP para así crear paquetes TCP de igual manera que como se hizo en el servidor.
./udptunnel -c <PortTCPLocal> <IPaddresServer> <PortUDPServer> 127.0.0.1 <PortServiceTCPserver>

              +------------+                  +------------+
(Internet)<---| Server PC1 |                  | Client PC2 |
              |            |    TCP - ICMP    |            |
            ↑ | 22 SSH TCP | >===  BLOCK ===< |3000 SSH TCP| ↑
            | |            |                  |            | |       
            | | UDP<->TCP  |        UDP       |  UDP<->TCP | |
            ↓ | 4000 (UDP) | <=== ACCEPT ===> |    (UDP)   | ↓
              +------------+                  +------------+

En el siguiente video tutorial vamos a realizar una demostración de cómo lograr conectarnos a un servicio SSH y posteriormente acceder a internet mediante un proxy Socks5.
 

2 comentarios:

Distributed By Free Blogger Templates | Designed By Seo Blogger Templates