TSZ: Una puerta trasera con estilo

Noviembre 10th, 2007

Una vez que se compromete un sistema conectado en red, uno de los mayores retos por parte de los atacantes es mantener una vía de acceso al mismo independientemente de lo que hagan los administradores a posteriori. Se han estudiado multitud de formas de conseguir esto, algunas con mucho más éxito que otras. En este post quiero comentar una de esas vías de acceso: las puertas traseras o backdoors.

Por regla general, con este término nos referimos a un programa que se está ejecutando en la máquina víctima y que nos permite el acceso a ella de alguna manera. Las hay desde las más simples, aquellas que redireccionan los canales de entrada/salida a un socket, hasta las más complejas, aquellas que ocultan el diálogo en algún protocolo aparentemente inocuo (ver proyecto Loki). Después de pasar algún tiempo estudiando diferentes tipos de backdoors, así como los requisitos necesarios para que éstas sean difíciles de detectar, llegué a las siguientes conclusiones:

  • Deben ser cómodas de usar: si va a ser la principal vía de acceso al sistema víctima, debemos poder trabajar con ellas con cierta comodidad, esto implica poseer historial de comandos, paginación, etc. Una backdoor simple está bien como primer medio de acceso al host víctima, pero no para trabajar con él de manera continuada.
  • Deben cifrar la conexión: no sería bueno que después de tantas molestias un sniffer detecte que estamos ejectuando comandos en un host por una vía no habitual.
  • Deben ser difíciles de detectar: esto es, el administrador no debería poder encontrarlas haciendo un ‘netstat’ o un ‘nmap’.
  • Opcionalmente también sería interesante que contaran con la capacidad de evadir defensas perimetrales tales como cortafuegos. Esta medida es opcional porque una backdoor diseñada de esta manera difiere bastante de una backdoor clásica, es decir, las diseñadas para evadir cortafuegos sólo deberían usarse para esos casos concretos, ya que presentan limitaciones de uso respecto a las otras.

Con esto en mente, decidí buscar una backdoor que reuniera tantos requisitos como fuera posible, y me lleve una grata sorpresa al dar con TSH: Tiny Shell, actualmente el proyecto está alojado en http://tsh.thecostaricacondo.com/. Algunos dicen que este proyecto nunca fue desarrollado como una backdoor, sino como un clon ligero de otros programas de conexión remota, no lo sé, pero el hecho de que pueda funcionar en ‘reverse-mode’ (sin puertos a la escucha) es algo que da que pensar.

El TSH cumple todos los requisitos que estabamos buscando, es una shell cómoda de usar, con conexión cifrada y si se usa en ‘reverse-mode’ no tiene puertos a la escucha, lo que la hace indetectable a comandos como ‘netstat’ y ‘nmap’. Ahora bien, la conexión inversa implementada en el TSH no me acababa de gustar. Para que funcione es necesario configurar el servidor TSH (que va alojado en la máquina víctima) con una dirección IP prederminada. En esa dirección IP debe estar escuchando el cliente TSH. Cada cierto intervalo de tiempo se realiza una conexión del servidor al cliente, que en ese momento obtiene el control del sistema remoto. Resumiendo, debemos incluir la IP de la máquina atacante en el servidor TSH (lo que no es bueno en caso de que descubran el binario) y además sólo podemos obtener el control del sistema cada cierto tiempo.

Me gusta más el enfoque que realiza otra backdoor, ZAPPA. En este caso, en el host víctima se aloja un servidor sin puertos a la escucha que espera la llegada de un ping con un tamaño concreto. Cuando se da esa circunstancia, lanza una conexión hacia el host que ha generado el ping y le da el control del sistema.

Con estas dos backdoors en las manos decidí que lo mejor era hacer un hack sucio y rápido del TSH para incluirle las capacidades de ZAPPA, naciendo así TSZ, una puerta trasera que sin duda encontraréis interesante. Escribí un readme en el que explico como utilizarla, también es importante leer el readme.tsh en el que se detalla como configurar el tsh, que al fin y al cabo es el programa que hay detrás de todo esto.


Descargar TSZ

Categorías: descargas, linux, seguridad |

2 comentarios

  1. troyano

    oie que so usas y que compilador usas?’

  2. pax0r

    Muy buen post!! Gracias!!

Deja un comentario