Tal como mencionaba en el artículo anterior sobre pentesting contra servicios ocultos en TOR,
es posible que algunos crean que atacar un servicio oculto es una tarea
compleja y que requiere de muchos conocimientos para llevarla a cabo,
pero lo cierto es que no difiere de un proceso de pentesting
convencional. Es importante tener en cuenta que cualquier servicio en la
web profunda de TOR puede contener vulnerabilidades criticas que pueden
afectar a su desempeño y seguridad, sin embargo, son muchos los
usuarios de TOR, I2P o Freenet que creen que por utilizar este tipo de
redes ya se encuentran “protegidos” y relajan o descuidan la seguridad
de los servicios ocultos que crean y administran. Esto es un error y
cualquier servicio que contenga vulnerabilidades puede ser igualmente
explotable, aunque se encuentre en la “cyphernet” de TOR o I2P.
En el artículo anterior se explica como utilizar SOCAT para crear un
túnel entre la máquina local y el servicio oculto que se desea atacar,
utilizando por medio el proxy socks que típicamente se levanta cuando se
arranca una instancia de TOR. Este es el mecanismo más sencillo y
eficaz que se puede utilizar para realizar pruebas de pentesting contra
servicios ocultos, no obstante es necesario mapear en puertos distintos
cada una de las direcciones ONION que se desea atacar, no es cómodo pero
desde luego resulta sencillo y fácil de implementar. En el post
anterior explicaba cómo hacer esto contra un servicio oculto del tipo
HTTP, el cual era soportado por una aplicación web vulnerable con
Django-moth. En dicho post se explicaba el uso de Nikto y W3AF para
comprometer el servicio oculto y ya de paso su anonimato, pero también
es posible hacer esto mismo con otros servicios ocultos que no son el
típico servidor web, sino también con cualquier servidor que funcione
utilizando protocolo TCP. En este artículo se realizarán pruebas
sencillas contra servicios ocultos del tipo FTP y SSH
Atacando un servicio oculto en TOR del tipo FTP
Existen muchas implementaciones del protocolo FTP tanto desde el lado
del cliente como desde el lado del servidor y también, han sido muchas
las vulnerabilidades que se han encontrado y explotado en dichas
implementaciones. Si un servidor FTP vulnerable se expone en la web
profunda de TOR, es probable que pueda seguir siendo utilizado sin
mayores problemas en el caso de que solamente un grupo reducido de
usuarios conozca su dirección ONION y no pretendan vulnerarlo, pero si
un atacante descubre dicha dirección ONION no tardará demasiado en
hacerse con el control de dicho servicio.
Las directivas utilizadas para crear un servicio FTP no son diferentes a
las de cualquier otro tipo de servicio oculto, lo único que
probablemente cambiará será el puerto y obviamente el directorio.
HiddenServiceDir /home/adastra/Escritorio/hidden_service_ftp/HiddenServicePort 21 127.0.0.1:21 |
Las líneas anteriores se incluirán en el fichero “torrc” y en la
máquina donde se levanta la instancia de TOR, deberá existir un proceso
vinculado al puerto 21. La dirección ONION generada, también responderá
únicamente a las peticiones entrantes por el puerto 21.
Nuevamente se puede utilizar SOCAT para crear un túnel entre el servicio
oculto y la máquina del atacante, pero eso si, es necesario que en la
máquina del atacante se arranque una instancia de TOR que tenga la
propiedad SOCKSPort establecida (bastante frecuente) para poder utilizar
dicho proxy SOCKS y conseguir llegar al servicio oculto.
>socat TCP4-LISTEN:8000,reuseaddr,fork SOCKS4A:127.0.0.1:ondsyq4v4xcr6ct6.onion:21,socksport=9150 |
El puerto que se abrirá en la máquina del atacante será el 8000 y
cualquier petición que llegue a dicho puerto, será automáticamente
enrutada al servicio oculto en el puerto 21 cuya dirección ONION es
“ondsyq4v4xcr6ct6”, evidentemente para que dicho enrutamiento funcione
correctamente se debe establecer el proxy SOCKS, que en este caso es el
puerto 9150 (puerto por defecto que utiliza TOR Browser).
Con todos los elementos dispuestos, se puede utilizar
cualquier herramienta para realizar pruebas de penetración contra el
servicio oculto, no obstante antes de hacer nada, es mejor comprobar que
el túnel funciona correctamente y para ello, basta con realizar una
petición al servidor FTP utilizando cualquier cliente.
Conexión con el servicio oculto del tipo FTP utilizando SOCAT.
Después de verificar que la conexión se puede establecer, se puede
utilizar una herramienta como Metasploit Framework para realizar pruebas
automatizadas utilizando los módulos auxiliares que se encuentran
incluidos en el framework.
Ejecutando el módulo “auxiliary/scanner/ftp/ftp_login” de MSF contra el servicio oculto FTP
Ejecutando otros módulos auxiliares de MSF contra el servicio oculto FTP
Atacando un servicio oculto en TOR del tipo SSH
SSH es un protocolo bastante conocido y utilizado por
prácticamente todos los administradores de sistemas y también es un
protocolo muy utilizado en la web profunda de TOR. No es sencillo
encontrar direcciones ONION con este tipo de servicios, pero hay
bastantes y a veces no se encuentran debidamente configurados. Como
mencionaba antes, la principal dificultad a la hora de atacar los
servicios ocultos en TOR es que es muy difícil encontrar la dirección
ONION de un servicio a atacar y más aun cuando se trata de servicios
cuyas funciones son principalmente de administración, como es el caso de
cualquier servicio SSH, normalmente son direcciones ONION que solamente
las conocen aquellas personas que crean el servicio oculto y que
intentan administrar sus servidores de forma remota y anónima. Sin
embargo, una vez se descubre la dirección del servicio oculto en
cuestión, nuevamente basta con crear un túnel cuyo endpoint será el
servicio oculto y a continuación realizar pruebas de pentesting con las
herramientas habituales. Suponiendo que la dirección del servicio oculto
SSH a atacar es “klebohg2zv4b5j5u”, la siguiente imagen enseña la forma
en la que se debe crear el túnel con SOCAT y cómo utilizar el cliente
SSH en sistemas Linux para realizar la conexión contra el servicio
oculto.
Conexión al servicio oculto del tipo SSH
Después de verificar que el servicio se encuentra activo
y que el túnel enruta las peticiones adecuadamente, se puede realizar
un proceso de pentesting básico utilizando MSF.
Ejecutando el módulo “ssh_version” de MSF contra el servicio oculto.
Ejecutando el módulo “ssh_enumusers” de MSF contra el servicio oculto.
Ejecutando el módulo “ssh_login” de MSF contra el servicio oculto.
Además de utilizar MSF también se pueden utilizar otras herramientas comunes, como por ejemplo THC Hydra.
Ataque de fuerza bruta contra el servicio oculto utilizando THC Hydra.
Como se puede apreciar, realizar procesos de pentesting
contra servicios ocultos en TOR no es una tarea demasiado compleja,
aunque si que lo es descubrir las direcciones dichos servicios ocultos.
Muchas veces creemos que por utilizar TOR las vulnerabilidades o una
mala configuración del sistema es menos evidente o será más difícil de
explotar. La realidad es que un servicio oculto en TOR o en cualquier
otra red anónima es perfectamente explotable si dicho servicio contiene
alguna vulnerabilidad, los vectores de ataque no cambian, solamente
cambia el medio utilizado por el atacante.
Si tienes publicado un servicio oculto en cualquier red anónima, presta
atención a las vulnerabilidades o malas configuraciones que pueda tener.
Un saludo y Happy Hack!
Adastra.