¿Es seguro conectarse a servidores SSH aleatorios? [duplicar]

3

En pocas palabras: ¿Qué tan seguros son los clientes SSH? ¿Pueden los servidores meterse con ellos?

Vi este Ghost in the Shell bash remake hoy. Lo suficientemente divertido y hay algunas películas (The Matrix, Star Wars, etc.) que se entregan a través de SSH. También hay juegos que dependen de que te conectes a través de SSH.

Pero hoy se me ocurrió que cuando hablamos de seguridad de SSH, nos centramos realmente en el servidor; los mecanismos de seguridad y autenticación del transporte, que detienen los ataques de fuerza bruta y los ataques remotos aleatorios. ¿Qué pasa con el cliente? Mi cliente se ejecuta como yo , puede causar muchos daños a muchos archivos locales ... Ciertamente no necesita root para dañarme.

¿Qué puede hacer un servidor SSH que no podemos esperar? ¿Mi cliente está transmitiendo datos sobre yo ? ¿Existe un vector de exploit como un navegador web?

    
pregunta Oli 24.04.2017 - 12:13
fuente

3 respuestas

3

2 opciones vienen a la mente:

  1. vulnerabilidades en el cliente SSH
  2. "hackear"

Ejecuto honeypots de SSH, y un colega escribió un script para tomar la contraseña que el atacante usó para crear o cambiar una cuenta en el honeypot y usarla para volver a conectarse al SSH del atacante y enumerar el directorio de inicio. Tiene una tasa de éxito del 10% ...

Esto podría ser un caso de esquina, pero destaca que una vez que se conecta a otra computadora, todas las apuestas están desactivadas. Saben de usted, su IP y pueden usar cualquier información que proporcione en su contra.

    
respondido por el schroeder 24.04.2017 - 13:44
fuente
2

Primero, obviamente, si hay un error en el cliente SSH, podría permitir que el servidor ejecute el código allí. Un error realmente malo podría incluso permitir a un hombre en el medio explotar al cliente. El resto de la superficie de ataque consiste en donde SSH envía los datos que recibe del servidor.

En su caso, el texto recibido a través de la conexión SSH se envía a un terminal. Los terminales analizan las secuencias de escape: así es como muestran los colores, mueven el cursor, etc. Puede haber errores en el analizador de secuencia de escape. Además, algunas secuencias de escape pueden solicitar cosas que van más allá de afectar a la pantalla, como cambiar el título del terminal, cambiar el tamaño de la ventana o inyectar datos de entrada (por ejemplo, un comando para consultar la posición del cursor o el título de la ventana). Los terminales modernos deshabilitan los comandos verdaderamente peligrosos (los que causan una entrada inyectada que puede ser un texto arbitrario configurado a través de otra secuencia de escape). Para obtener más información sobre este tema, consulte Can "cat ¿"un archivo es un riesgo potencial de seguridad? , ¿Cómo puedo protegerme de este tipo de abuso del portapapeles? , y ¿Cómo evitar ataques de secuencia de escape en terminales? . La solución es verificar que su terminal no permita secuencias peligrosas. Para mayor seguridad, en lugar de abrir un terminal donde ejecute un shell donde ejecute ssh , ejecute ssh directamente en el terminal, y deshabilite cualquier manejo del teclado que pueda tener ( EscapeChar none en la configuración del cliente OpenSSH); De esta forma, incluso si un servidor malintencionado logra inyectar una entrada, no hay riesgo de que se ejecute como un comando de shell en su máquina.

SSH también puede reenviar conexiones de red, lo que permite que el servidor llegue al cliente además del terminal. Esto puede pasar por alto una restricción de firewall. Dos conexiones de red reenviadas comunes conllevan riesgos propios. El reenvío X11 le da al servidor acceso a su servidor X local; esto es más o menos equivalente a darle acceso de shell al servidor, ya que permite cosas como inyectar entradas en otras aplicaciones (una característica útil para cosas como grabadoras de macros y reasignación de entradas basadas en el administrador de ventanas, pero carece de firewall adecuado). El reenvío de agente SSH le permite al servidor usar sus claves privadas para iniciar sesión en otro lugar. Por lo tanto, cuando se conecte a un servidor que no sea de confianza, asegúrese de no activar ningún reenvío. Active el reenvío selectivo para servidores conocidos.

Además, existe una exposición a la privacidad si envía un nombre de usuario predeterminado o una oferta de clave pública.

    
respondido por el Gilles 24.04.2017 - 23:19
fuente
0

Solo una adición a la respuesta de @ schroeder.

Una sesión SSH generalmente no es off , sino que se inicia desde una aplicación de terminal. Normalmente, las aplicaciones de terminal no esperan bytes aleatorios y pueden tener un comportamiento extraño cuando reciben caracteres de control. La mayoría los usan para controlar su propia apariencia. Nunca he investigado eso, pero podría haber vulnerabilidades en la aplicación del terminal. De todos modos, el simple hecho de que el terminal escriba algunas líneas con el mismo color de fondo y de fondo puede dar resultados interesantes si el usuario a menudo corta y pega en las ventanas de los terminales.

    
respondido por el Serge Ballesta 24.04.2017 - 15:38
fuente

Lea otras preguntas en las etiquetas