¿Se puede tomar una sesión SSH de la memoria?

3

Soy consciente de que las claves SSH se pueden tomar de la memoria de un cliente. Sin embargo, en el caso de SSH que requiere un segundo factor como Duo / Yubikey, robar la clave no sería suficiente. ¿Podría un atacante con acceso completo (RAT, con privilegios elevados) robar una sesión ssh abierta existente de la memoria?

Y si no, ¿por qué no?

(si es necesario para este ejemplo, digamos que el cliente está ejecutando la última versión de MacOS y el servidor está ejecutando la última versión de Ubuntu, etc.)

    
pregunta seanieb 11.01.2017 - 22:08
fuente

1 respuesta

4

El atacante obtiene las claves de sesión y otra información de estado de la memoria, pero esas claves solo son válidas para esa única conexión TCP. Para una nueva conexión TCP, el servidor generará nuevos nonces y todas las características anti-reproducción del inicio de SSH.

Por lo tanto, el atacante debe secuestrar la conexión TCP, que el servidor identifica por la dirección IP del cliente, el puerto TCP del cliente y la información del número de secuencia. Los ataques se pueden clasificar según la distancia desde el cliente original que se retoma la conexión TCP tomada:

  1. En el proceso ssh . Si el atacante tiene derechos de superusuario donde se está ejecutando ssh , puede reemplazar el binario ssh con su propia copia comprometida que ejecuta el usuario inocente, o cambiar su comportamiento mediante la inyección de código (por ejemplo, las inyecciones no modifican el código). binario en el disco, por lo que las firmas digitales no detectan la manipulación).

  2. En un segundo proceso en la misma máquina. Es fácil continuar la conexión TCP desde aquí porque los paquetes enviados por el servidor ya se están enrutando aquí.

    a. Toda la información relacionada con la conexión TCP se mantiene en la capa de sockets del sistema operativo, y mientras los detalles de mover un socket TCP entre procesos son específicos del sistema operativo, los sockets no tienen afinidad de proceso en ningún sistema operativo POSIX, ya que pueden utilizarse desde múltiples procesa a la vez si se hereda durante el desove o la horquilla.

    b. Al omitir la capa de sockets utilizada por las aplicaciones y capturar / modificar / inyectar paquetes en la pila de la red o en el controlador, por ejemplo, mediante iptables o libpcap.

  3. En otra máquina posicionada para ataques MITM. Lo único que es absolutamente necesario, además de obtener una copia de las claves de sesión y el estado mismo, es continuar usando la misma dirección IP para que el servidor piense que la misma conexión TCP está en curso. Eso es lo mismo necesario para el hombre en el medio, ya sea sentarse realmente en la ruta o al menos comprometer a un enrutador en la ruta para enviar paquetes transmitidos desde el servidor SSH al atacante.

respondido por el Ben Voigt 12.01.2017 - 01:50
fuente

Lea otras preguntas en las etiquetas