Cómo configurar un servidor SSH con Tor para ocultarlo de Shodan y Hackers

El próximo exploit libSSH u OpenSSH puede estar a la vuelta de la esquina. Debes mantener tu servicio SSH fuera de la base de datos de Shodan antes de que los ciberdelincuentes encuentren nuevas formas de evadir la contraseña que protege el servidor.

Shodan ha sido llamado el ” motor de búsqueda de hackers” porque es, literalmente, una base de datos de dispositivos y servidores conectados a Internet. Permite a cualquier persona buscar cámaras web, enrutadores, servidores, Raspberry Pi’s, semáforos, sistemas de puntos de venta, sistemas de control industrial y mucho más.

Esta herramienta web logra esto al iterar aleatoriamente a través de cada posible dirección IP existente (ya sea en línea o que no se esté utilizando) e intenta extraer los banners de servicio en diferentes puertos. Los banners de servicio generalmente almacenan metadatos sobre el servicio en ejecución, como el nombre del servicio, el tipo y el número de versión.

¿Por qué configurar SSH con Tor?

Cualquier dispositivo conectado a Internet será escaneado inevitablemente por Shodan y otras bases de datos como Censys. Los ciberdelincuentes usan estas bases de datos para localizar servidores vulnerables y desactualizados. Incluso los administradores de sistemas que actualizan regularmente sus servidores y siguen las mejores prácticas de seguridad están expuestos a vulnerabilidades. La vulnerabilidad de evasión de autenticación libSSH es un excelente ejemplo de esto.

La vulnerabilidad LibSSH permitió a los ciberdelincuentes conectarse a servicios SSH sin realizar primero la autenticación. Los servicios más actualizados aún eran vulnerables a esta debilidad y ponían en riesgo a muchos servidores y sitios web.

Más importante aún, los sistemas completamente actualizados todavía están expuestos a infracciones que aún no se han revelado. Los hackers Blackhat a veces son una horda y venden vulnerabilidades en comunidades privadas. No se sabe cuántos exploits de OpenSSH no reveladas pueden existir hasta hoy.

Los servicios de onion de Tor pueden ayudar a mitigar la exposición. Al igual que la forma en que no se puede acceder a los sitios web de tipo onion utilizando un navegador web estándar, los servicios SSH se pueden configurar para permitir el acceso a solo través de Tor.

Puede hacer que los servicios de búsqueda como Shodan sean completamente inaccesibles para los motores de búsqueda y más difíciles de encontrar para los hackers.

Paso 1: Instalar Tor

Lo primero que debemos hacer es instalar Tor tanto en el servidor privado virtual (VPS) como en la computadora cliente. El cliente puede ser un sistema Debian, Ubuntu o Kali para seguir el tutorial.

Los usuarios MacOS y Windows 10 pueden revisar la documentación oficial del Proyecto Tor para instalar Tor correctamente. Para la mayoría de los lectores, el servidor SSH probablemente será un VPS de Debian. Sin embargo, esto se puede configurar en un escritorio de Ubuntu o Raspberry Pi, para aquellos que desean acceder de forma remota a las computadoras en casa.

Tor está disponible en muchos repositorios de Linux. En la mayoría de los casos, los paquetes no se mantienen o actualizan de manera confiable, lo que significa que pueden faltar actualizaciones críticas de seguridad y estabilidad. Además, el software de anonimato siempre debe adquirirse directamente de la fuente (es decir, torproject.org).

Inicia sesión en tu servidor SSH y agrega el repositorio del Proyecto Tor a tu lista de repositorios APT con el siguiente comando echo, que funciona en Debian.

Si estás ejecutando Kali Linux, usa el siguiente comando en lugar del anterior.

Luego, descarga la clave de firma del paquete del Proyecto Tor e impórtala en tu anillo de claves APT con el siguiente comando.

Resultado

Verás la salida “OK” cuando la clave de firma se haya agregado a tu conjunto de claves. A continuación, actualiza APT usando el siguiente comando apt-get.

Instala Tor usando el siguiente comando apt-get, y listo.

Tanto el cliente como el VPS que ejecutan el servidor SSH deben tener instalado Tor. Asegúrate de seguir los pasos anteriores en ambos sistemas.

Paso 2: crear un servicio onion en el servidor

El proceso Tor probablemente se ejecutará inmediatamente después de instalarlo, por lo que, como root (sudo), detendrás el proceso. Esto se puede hacer usando el comando systemctl.

Luego debes usar un editor de texto para abrir el archivo /etc/tor/torrc. Este es el archivo de configuración utilizado por Tor para modificar su comportamiento y crear servicios onion.

Habrá un montón de información en este archivo. La mayor parte no es relevante para este artículo. Desplázate hacia abajo hasta la sección ” This section is just for location-hidden services”. En Debian y Kali Linux, aparece como se muestra a continuación.

Tienes que Descomentar (#) la línea “HiddenServiceDir” y “HiddenServicePort”, como ves a continuación:

Debes guardar y salir del editor de texto. Luego, reinicia tor usando el siguiente comando.

Directorio

El archivo “hostname” en el directorio /var/lib/tor/other_hidden_service/ mantendrá la nueva dirección onion. Usa cat para leer el archivo. Toma nota de esta dirección onion, se requerirá en el siguiente paso.

Paso 3: Verificar que el servicio Onion esté funcionando (opcional)

Antes de continuar, es bueno asegurarse de que se pueda acceder al servicio SSH utilizando la nueva dirección onion. Esto se puede verificar rápidamente utilizando los torsocks, una capa de shell que se utiliza para aplicaciones de línea de comandos transparentes de Tor-ify como curl, wget o nmap .

El siguiente comando torsocks y curl consultará el nuevo servicio onion. Asegúrate de agregar el número de puerto SSH (: 22), de lo contrario, curl consultará el puerto 80 de manera predeterminada y fallará. Una consulta exitosa devolverá el banner de la versión SSH, como se muestra a continuación.

Paso 4: Hacer privado el servicio SSH

De forma predeterminada, la mayoría de los servicios SSH están escuchando en todas las interfaces IPv4. Si bien no es el caso de todas las distribuciones de Linux, esto es cierto para las más populares como Ubuntu y Debian.

Esto generalmente se representa como “0.0.0.0” en el archivo /etc/ssh/ sshd_config, donde SSH almacena todas las configuraciones de servicio.

Los servicios SSH configurados de esta manera permiten acceder al servidor desde cualquier computadora del mundo. Lo cual es conveniente para los administradores de sitios web que necesitan realizar cambios en su sitio web desde diferentes dispositivos y redes.

Primero, echemos un vistazo al servicio SSH que se ejecuta en segundo plano. Usa ss, una herramienta para descubrir sockets, para mostrar los procesos (-p) los que escuchan (-l) para las conexiones TCP (-t).

Si el servidor tiene aplicaciones que se ejecutan en segundo plano (por ejemplo, Apache, Nginx, software IRC, etc.), muchos servicios pueden aparecer aquí. Centrémonos en la columna Local Adress:Port que lee *:ssh. Los asteriscos indican que el servicio SSH está escuchando en todas las interfaces IPv4 e IPv6 disponibles.

Shodan puede localizar este servicio SSH porque está disponible (escuchando) en este estado. Para cambiar esto, abre el archivo /etc/ssh /sshd_config y encuentra la (s) línea (s) “ListenAddress”.

Estado

En Debian, aparecen como se muestra a continuación. Probablemente estarán comentadas, lo cual es normal. Cuando se comenta cada ListenAddress, SSH vuelve a su configuración predeterminada para escuchar en cada interfaz.

Cambia la línea de ListenAddress a “127.0.0.1” y descoméntala como tal:

Luego, reinicia el servicio SSH.

Inmediatamente después de ejecutar el comando systemctl, la conexión SSH actual puede cerrarse. El servicio SSH ya no está disponible en ninguna dirección IPv4 o IPv6, por lo que es normal que la conexión se interrumpa.

Paso 5: Conéctate al servidor SSH usando Tor

Afortunadamente, el servicio onion se configuró en el servidor, por lo que aún se puede acceder al servicio SSH. Ahora, desde el cliente (es decir, una computadora portátil o una computadora remota), usa el siguiente comando de torsocks para conectarte al servicio SSH.

Paso 6: Asegúrate de que el servicio SSH no sea visible para Shodan

Después de iniciar sesión en el servidor utilizando la dirección onion, usa el comando ss nuevamente para ver los servicios de escucha. Ya no debe reportar la escucha de SSH en todas las interfaces disponibles, solo 127.0.0.1.

Podemos verificar esto más adelante ejecutando una exploración simple de la versión de nmap (-sV) en el servidor.

El servicio SSH aún puede aparecer en Shodan durante días o incluso semanas. A Shodan no le gusta mucho eliminar viejos banners de servicio e información. Pero eso no significa que el servicio SSH todavía sea accesible para los atacantes.

Conclusión

Esta demás recordar que la advertencia más importante al usar SSH con servicios de onion es la lentitud. Las respuestas en el terminal pueden ser muy lentas para alguien que no está acostumbrado a los servicios onion y Tor.

La configuración de Tor para que funcione con los servicios SSH de esta manera lo ocultan de Shodan, pero no hace que sea totalmente imposible de localizar por los hackers. Aún se puede alcanzar utilizando Tor, esto minimiza significativamente su exposición general pero no lo hace totalmente impenetrable a los ataques.

Hay una característica de seguridad en Tor llamada HiddenServiceAuthorizeClient. Esta función permite a los usuarios proteger con contraseña el servicio onion con una cookie de autenticación.

En el momento que escribí este artículo, HiddenServiceAuthorizeClient no es compatible con los nuevos servicios onion de “próxima generación”. Sería posible generar servicios onion más antiguos, pero parece una mala práctica de seguridad usar una característica de Tor que pronto será obsoleta.

En el futuro, será posible utilizar HiddenServiceAuthorizeClient con onion de próxima generación para que sean completamente inaccesibles para otros, excepto para ti. Por ahora, cambiar el número de puerto SSH a algo no estándar como 62359 o 41171 ayudará a mantenerte fuera del radar de los script-kiddies en la red oscura de escaneo masivo en el puerto 22.