NOTA IMPORTANTE: El delito informático está severamente castigado por la ley. Esta página no promueve el delito informático, es divulgativa y muestra los mecanismos que utilizan los cibercriminales para poder identificar el ataque si has sido victima de uno de ellos. En el caso de que hayas sido victima de un ataque te recomendamos que busques recursos legales en la sección Cibercrime Law o en la página del Instituto Nacional de Ciberseguridad: https://www.incibe.es/

BlogShodan Guides

Cómo: configurar un servidor SSH con Tor para ocultarlo de Shodan y los piratas informáticos

El siguiente libSSH o Explotación de OpenSSH quizás a la vuelta de la esquina. Mantenga su servicio SSH fuera de la base de datos de Shodan antes de que los piratas informáticos encuentren nuevas formas de eludir la contraseña que protege el servidor.

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

La herramienta web logra esto iterando aleatoriamente a través de todas las direcciones IP posibles existentes (ya sea en línea o no) e intenta extraer pancartas de servicio en diferentes puertos. Los banners de servicio suelen almacenar metadatos sobre el servicio en ejecución, como el nombre, el tipo y el número de versión del servicio.

¿Por qué configurar SSH con Tor?

Cualquier dispositivo conectado a Internet será escaneado inevitablemente por Shodan y otras bases de datos como Censys. Los piratas informáticos utilizan estas bases de datos para localizar servidores vulnerables obsoletos. 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 omisión de autenticación libSSH es un excelente ejemplo de esto.

La vuln libSSH permitió a los piratas informáticos conectarse a los servicios SSH sin antes realizar la autenticación. Los servicios más actualizados seguían siendo vulnerables a este exploit y ponían en riesgo muchos servidores y sitios web. Más importante aún, los sistemas completamente actualizados todavía están expuestos a vulnerabilidades que aún no se han revelado. Blackhat a veces es una horda y vender vulnerabilidades en comunidades privadas. No se sabe cuántos exploits OpenSSH no revelados pueden existir en la actualidad.

Los servicios de cebolla Tor pueden ayudar a mitigar la exposición. Al igual que no se puede acceder a los sitios web de cebolla utilizando un navegador web estándar, los servicios SSH solo se pueden configurar para permitir el acceso a través de Tor. Puede hacer que los servicios sean completamente inaccesibles para motores de búsqueda como Shodan y más difíciles de encontrar para los piratas informáticos.

Paso 1: instala 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. Los usuarios de MacOS y Windows 10 pueden consultar el documentación oficial del Proyecto Tor para instalar colina adecuadamente. Para la mayoría de los lectores, es probable que el servidor SSH sea un VPS 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 estabilidad y seguridad. Además, el software de anonimato siempre debe adquirirse directamente de la fuente (es decir, torproject.org).

Inicie sesión en su servidor SSH y agregue el repositorio del Proyecto Tor a su lista de repositorios APT con lo siguiente eco comando, que funciona en Debian.

~$ echo -e "deb https://deb.torproject.org/torproject.org $(lsb_release -sc) main ndeb-src https://deb.torproject.org/torproject.org $(lsb_release -sc) main" > /etc/apt/sources.list.d/tor.list

Si está ejecutando Kali Linux, use el siguiente comando en su lugar.

~$ echo -e "deb https://deb.torproject.org/torproject.org stretch main ndeb-src https://deb.torproject.org/torproject.org stretch main" > /etc/apt/sources.list.d/tor.list

Luego, descargue el Clave de firma de paquetes de Tor Project e impórtelo en su llavero APT con el siguiente comando.

~$ wget -O- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -

--2019-03-05 06:29:13--  https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
Resolving deb.torproject.org (deb.torproject.org)... 82.195.75.101, 2001:41b8:202:deb:213:21ff:fe20:1426
Connecting to deb.torproject.org (deb.torproject.org)|82.195.75.101|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19665 (19K) [text/plain]
Saving to: ‘STDOUT’

-                                       100%[================================>]  19.20K  54.8KB/s    in 0.4s

2019-03-05 06:29:16 (54.8 KB/s) - written to stdout [19665/19665]

Verá el resultado “Aceptar” cuando la clave de firma se haya agregado a su anillo de claves. A continuación, actualice APT usando el siguiente apt-get mando.

~$ apt-get update

Get:2 https://deb.torproject.org/torproject.org stretch InRelease [4,965 B]
Get:4 https://deb.torproject.org/torproject.org stretch/main Sources [1,169 B]
Get:5 https://deb.torproject.org/torproject.org stretch/main amd64 Packages [2,400 B]
Fetched 8,534 B in 8s (1,091 B/s)
Reading package lists... Done

Instale Tor usando el siguiente apt-get comando, y ya está.

~$ apt-get install tor deb.torproject.org-keyring torsocks

Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  mixmaster torbrowser-launcher socat tor-arm apparmor-utils obfs4proxy
The following NEW packages will be installed:
  deb.torproject.org-keyring
The following packages will be upgraded:
  tor

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

Paso 2: crear un servicio de cebolla en el servidor

Es probable que el proceso Tor se ejecute inmediatamente después de instalarlo, así que, como root (sudo), detenga el proceso. Esto se puede hacer usando el systemctl mando.

~$ sudo systemctl stop tor

Luego, use 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 de cebolla.

~$ sudo nano /etc/tor/torrc

Habrá un montón de información en este archivo. La mayor parte no es relevante para este artículo. Desplácese un poco hacia abajo hasta la sección “Esta sección es solo para servicios de ubicación oculta”. En Debian y Kali Linux, aparece como se muestra a continuación.

############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

Descomentar#) una línea “HiddenServiceDir” y una “HiddenServicePort”, como tales:

############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 22 127.0.0.1:22

Guarde y salga del editor de texto. Luego, reinicie tor usando el siguiente comando.

~$ sudo systemctl restart tor

El archivo “nombre de host” en el directorio / var / lib / tor / other_hidden_service / contendrá la nueva dirección de cebolla. Usar gato para leer el archivo. Tome nota de esta dirección de cebolla, será necesaria en el siguiente paso.

~$ cat /var/lib/tor/other_hidden_service/hostname

pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion

Paso 3: Verifique que el servicio de cebolla esté funcionando (opcional)

Antes de continuar, es bueno asegurarse de que se pueda acceder al servicio SSH utilizando la nueva dirección de cebolla. Esto se puede verificar rápidamente usando el torsocks, un contenedor de shell que se utiliza para Tor-ify de forma transparente aplicaciones de línea de comandos como rizo, wget, o nmap.

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

~$ torsocks curl http://pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion:22

SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u5

Paso 4: hacer que el servicio SSH sea privado

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 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 del 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. Usar ss, una herramienta para investigar sockets, para mostrar procesos (-pag) escuchando (-l) para TCP (-t) conexiones.

~$ ss -plt

State      Recv-Q Send-Q       Local Address:Port           Peer Address:Port
LISTEN     0      128                      *:ssh                       *:*           users:(("sshd",pid=1148,fd=3))

Si el servidor tiene aplicaciones ejecutándose en segundo plano (por ejemplo, Apache, Nginx, software IRC, etc.), muchos servicios pueden aparecer aquí. Centrémonos en el Dirección local: Puerto columna que dice *: ssh. Los comodines indican el servicio SSH escucha en todas las interfaces IPv4 e IPv6 disponibles.

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

~$ sudo nano /etc/ssh/sshd_confnig

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

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Cambie la línea ListenAddress a “127.0.0.1” y descomente como tal:

#Port 22
#AddressFamily any
ListenAddress 127.0.0.1
#ListenAddress ::

Luego, reinicie el servicio SSH.

~$ sudo systemctl restart ssh

Inmediatamente después de ejecutar el systemctl comando, 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 se interrumpa la conexión.

Paso 5: Conéctese al servidor SSH usando Tor

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

~$ torsocks ssh -p 22 username@pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion

The authenticity of host 'pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion (127.42.42.0)' can't be established.
ECDSA key fingerprint is SHA256:f22LX7WJfLGOiKxP+0+cA/l5Q1GsJLFA30ZyMyGLMl4.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion' (ECDSA) to the list of known hosts.
username@pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion's password:

Paso 6: asegúrese de que el servicio SSH no sea visible para Shodan

Después de iniciar sesión en el servidor con la dirección de cebolla, utilice el ss comando de nuevo para ver los servicios de escucha. Ya no debería informar SSH escuchando en todas las interfaces disponibles, solo 127.0.0.1.

~$ ss -plt

State      Recv-Q Send-Q       Local Address:Port           Peer Address:Port
LISTEN     0      128              127.0.0.1:ssh                       *:*           users:(("sshd",pid=1162,fd=3))

Podemos verificar esto aún más ejecutando un simple nmap versión (-sV) escanear en el servidor.

~$ nmap -p 22 -sV <vps ip here>

PORT   STATE  SERVICE VERSION
22/tcp closed ssh

El servicio SSH puede seguir apareciendo en Shodan durante días o incluso semanas. Shodan no es muy bueno en lo que respecta a depurar información y carteles de servicios antiguos. Pero eso no significa que los atacantes aún puedan acceder al servicio SSH.

Conclusión

Con mucho, la advertencia más importante para usar SSH con servicios de cebolla es la lentitud. Las respuestas en la terminal pueden ser dolorosamente lentas para alguien que no está acostumbrado a los servicios de cebolla y Tor.

Configurar Tor para que funcione con servicios SSH de esta manera lo oculta a Shodan, pero no hace que sea completamente imposible de localizar por piratas informáticos. Todavía se puede alcanzar usando Tor, lo que minimiza significativamente su exposición general pero no lo hace completamente impermeable a los ataques.

Hay una función de seguridad en Tor llamada HiddenServiceAuthorizeClient. Esta característica permite a los usuarios proteger esencialmente con contraseña el servicio de cebolla con un cookie de autenticación. En el momento de escribir este artículo, HiddenServiceAuthorizeClient no es compatible con el servicios de cebolla más nuevos de “próxima generación”. Sería posible generar servicios de cebolla más antiguos, pero parece una mala práctica de seguridad utilizar una característica de Tor que pronto será obsoleta. En el futuro, será posible usar HiddenServiceAuthorizeClient con cebollas de próxima generación para que sean completamente inaccesibles para cualquiera que no sea usted. Por ahora, cambiar el número de puerto SSH a algo no estándar como 62359 o 41171 ayudará a mantenerlo fuera del radar de script-kiddies en el escaneo masivo de darknet en el puerto 22.

Foto de portada y capturas de pantalla por distorsión / Byte nulo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar