Evadiendo restricciones con proxytunnel y ssh

En articulo anteriores intentamos dar algunos ejemplos para saltarnos las restricciones de firewalls corporativos y bloqueadores de contenidos, con algunas buenas herramientas:

  • /2016/03/17/bypass-portales-cautivos-con-iodine/
  • /2016/03/29/evitando-firewalls-con-dnscat2/ Pero a veces estas no bastan y hoy en día cada vez las empresas,instituciones y demás aplican mas medidas restrictivas(censura 2.0) para evitar que se pueda obtener un acceso libre a Internet, y esto puedes pensar que esta muy bien a nivel de empresa que quiere evitar problemas de virus o rendimiento de sus empleados, pero cuando aplicamos a estos a mecanismos de censura y control de contenido de gobiernos y instituciones, ya la cosa cambia ¿verdad?.

Para escaparnos, lo primero que necesitamos saber es ¿donde están las salidas? para ello lo mejor es dedicarse unos días a estudiar la red en la que estamos y sus restricciones, pero normalmente siempre hay unas reglas comunes:

  • Se bloquea todo el trafico que no sea web via proxy
  • No se permiten conexiones por puertos que no sean 80 y 443
  • Se bloquean todas las conexiones por otros puertos y protocolos.

Ahora que tenemos claro que la salida tiene que ser vía web, ya podemos empezar a planear nuestra ruta de escape, para ello necesitamos:

  • Un Servidor apache(para montar nuestro proxy http)
  • Un DNS accesible que esta bajo nuestro control(para apuntar el apache hacia alli)
  • Un Tunnel desde nuestra maquina local, hacia un servidor ssh, usando proxytunnel.

La idea es que el servidor apache nos haga de puente entre nuestra conexion ssh y el proxy-web de la red en la que estemos, para ello configuramos apache como proxy.

Instalando configurando apache apt-get install apache2

Creamos nuestro sitio

vim /etc/apache2/sites-availabl/proxy_ssh.conf

Habilitamos mod_proxy_http, mod_proxy_connect

 a2enmod proxy_http
 a2enmod proxy_connect

<VirtualHost *:80>
    ServerAdmin 
    ServerName tudominio
    ErrorLog /var/log/apache2/error_log
    TransferLog /var/log/apache2/access_log

    # Allow proxy connect (forward-proxy) to servers only on port 80 (http) and 42 (at my box SSH)
    ProxyRequests On
    AllowConnect 80 22
    # Deny all proxying by default...
    <Proxy *>
        Order deny,allow
        Deny from all
    </Proxy>
    # This directive defines which servers can be connected to.
    # Access is controlled here via standard Apache user authentication.
    <ProxyMatch (IP|tudominio|)>
        Order deny,allow
        Allow from all

        #You should replace the above two rules with something like this:
        # Deny from all
        # Allow from <some_host>
        # Allow from <some_host>
    </ProxyMatch>
</VirtualHost>

Instalando configurando proxytunnel

apt-get install proxytunnel

Ahora editamos nuestro fichero de configuración ssh para indicarle que use proxytunnel

vim ~/.ssh/config
Host IP  tudomino 
        DynamicForward 1080
        ProxyCommand proxytunnel -v -p IPFIREWALL:PUERTO -r IPAPACHE:80 \
               -d %h:%p -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"
        ServerAliveInterval 30

Ahora solo nos queda lanzan el tunnel desde nuestra maquina local

ssh -l proxy -p 22 IPSERVIDORSSH

Happy hacking ;)

Compartir

Deja una respuesta

Your email address will not be published. Required fields are marked *