¿Cómo saber si el inicio de sesión de la consola es genuino?

13

En Windows, se puede forzar presionar Ctrl+ Alt+ Delpara activar una interrupción que abre la ventana de inicio de sesión.

Al iniciar sesión en una consola de una computadora Linux: ¿Cómo puedo saber si este inicio de sesión es real o se burló para robar mis credenciales?

Max Ried
fuente

Respuestas:

14

Suponiendo que desea estar protegido contra otros usuarios normales del sistema (si el adversario tiene acceso de root, todas las apuestas están desactivadas), en principio podría usar una clave de atención segura :

La clave de atención segura de un sistema operativo es una herramienta de seguridad que se proporciona como protección contra los programas de captura de contraseñas de troyanos. Es una forma invencible de eliminar todos los programas que podrían estar enmascarados como aplicaciones de inicio de sesión. Los usuarios deben aprender a ingresar esta secuencia de teclas antes de iniciar sesión en el sistema.

( Manejo de la clave de atención segura de Linux 2.4.2 (SAK), Andrew Morton, 18 de marzo de 2001 )

Esta pregunta relacionada con U&L puede ser de interés: ¿Cómo puedo encontrar la Clave de atención segura (SAK) en mi sistema y puedo desactivarla?

dhag
fuente
¿Qué podría suceder cuando SAK se activará con un servidor X encendido?
Incnis Mrsi
@IncnisMrsi: lo he intentado; parece ser aproximadamente equivalente a Ctrl + Alt + Retroceso, suponiendo que no lo haya deshabilitado. Sin embargo, recuerdo que parecía un poco más problemático, pero no puedo recordar ningún detalle.
Kevin
Golpeé con frecuencia en mi vtty, y después de un tiempo, el inicio de sesión no regresó. Eso se siente con errores, pero +1 para un SysRq realmente útil todos los días.
Max Ried
@Kevin: Entonces, si un usuario ejecutó un servidor X legítimo (que necesariamente es euid = 0, al menos en PC) en un tty ≠ 7, su configuración tiene SAK deshabilitado, entonces ¿SAK no es tan invencible como afirman los documentos del núcleo? Supongamos que se ejecuta una DM GUI emulada.
Incnis Mrsi
@IncnisMrsi: Creo que lo que realmente hace es matar todo en tu sesión y relanzar lo "correcto", sea lo que sea. Entonces, si tty = 7, obtienes una X completamente nueva, de lo contrario obtienes login, etc. Esto es defectuoso porque a algunos DE elegantes como GNOME no les gusta que los maten de la nada. Pero si su atacante tiene euid = 0, ya ha perdido de todos modos.
Kevin
2

En primer lugar, no estoy seguro de que pueda confiar demasiado en el Ctrl ventana de inicio de sesión de + Alt+ Delen Windows, esta también es la función de un virus / troyano para secuestrar la interrupción, y su implementación es muy posible.

En segundo lugar, si dicho mecanismo se implementa tanto en Windows / Linux, significa que los privilegios de administrador seguramente están comprometidos.

En Linux, si alguien escribió un shell falso para mostrar un mensaje y capturar sus credenciales, supongo que Ctrl+ Co Ctrl+ básicoZ puede ser suficiente, si esas señales no se detectan para descubrir el truco. También ingresar credenciales incorrectas varias veces puede ayudarlo a ver cualquier desviación del comportamiento normal del temporizador.

Cambiar entre diferentes consolas también aumenta la probabilidad de descubrir el truco.

Pero, en cualquier caso, no puede estar seguro al 100% de ningún tipo de sistema de confiabilidad de su ventana / indicador de inicio de sesión.

netmonk
fuente
0

Puede usar ctrl+ alt+ F1... F7para ir a otro tty e iniciar sesión desde allí. También puedes usar ctrl+ zo ctrl+c . Sin embargo, si alguien intenta robar su nombre de usuario y contraseña con este método, aún es posible que lo engañen. Depende de qué sistema operativo esté utilizando, quién tuvo acceso a él y qué tipo de acceso tuvo.

En general, nunca puede estar 100% seguro, pero si alguien hiciera esto, supondría que ya tiene acceso de root, por lo que sus datos de inicio de sesión no tendrían sentido para él.

MatthewRock
fuente
3
Si tuviera que configurar una trampa así, definitivamente tendría mi programa ejecutado en cada tty. Tenga en cuenta que aquellos a los que accede con las teclas de control no son particularmente más seguros.
John WH Smith
Punto justo; Esto fue lo mejor que se me ocurrió.
MatthewRock
¿Puede algún sistema mágico ayudarte?
Max Ried
0

Un usuario (incluso no root) que tiene acceso físico a la consola puede hacer tal truco.

Inicie sesión sshy compruebe qué procesos operan en una consola virtual en la que desea iniciar sesión localmente. Si esgetty (para un TUI tty) u otro administrador de pantalla legítimo? ¿Tiene UID = 0?

Si alguno de los dos es falso, entonces el banner del nombre de host login: ciertamente está falsificado. Pero, como las respuestas estatales ya están escritas, no ayuda contra un malhechor que sus privilegios ya hayan aumentado root.

Incnis Mrsi
fuente
-1

Respuesta corta: no se puede decir.

Pero si el comando de inicio de sesión ha sido reemplazado, significa que el atacante tiene acceso de root en la máquina. En este caso él / ella también podría:

  • he instalado un keylogger para robar tu contraseña. Puede mitigar el problema utilizando una contraseña única, por lo que el atacante no podrá acceder a otros servicios en línea que utilice;
  • inicie sesión como usted (o como cualquier otro usuario) en la máquina, simplemente cambiando la contraseña, o acceda a sus archivos (o los de cualquier otra persona).

Por lo tanto, preocuparse si la solicitud de inicio de sesión es legítima o no es un punto discutible.

Como regla general, no debe iniciar sesión en una máquina que cree que podría verse comprometida.

dr01
fuente
8
Podría diseñar un programa que imite el comportamiento de un indicador de inicio de sesión y ejecutarlo en cada TTY sin privilegios de root (como yo). Si se hace correctamente, sería imposible distinguir la solicitud real de la salida del programa, invitándolo a ingresar sus credenciales. Sin embargo, tenga en cuenta que se necesitarían privilegios de root para autenticarlo (haciendo que la trampa sea completamente transparente), por lo que si falla el inicio de sesión y está seguro de que no cometió un error tipográfico ... puede suponer que ha quedado atrapado (también tarde aunque).
John WH Smith
66
No lo instalas. Simplemente use su propia cuenta para iniciar sesión en cada terminal y ejecutar el inicio de sesión falso allí. Los usuarios que intenten usar un terminal después de eso encontrarán su mensaje falso, ejecutándose como usted, no el loginprograma ejecutándose como root. No estoy suponiendo que el loginprograma real se haya visto comprometido, de hecho.
John WH Smith
77
@ dr01. Inicie sesión como de costumbre. Cuando esté listo para comenzar ~/bin/fakelogin, utilícelo de exec ~/bin/fakeloginmodo que cuando salga (por cualquier razón) su cuenta de usuario se cierre y el indicador de inicio de sesión real se presente al otro usuario.
roaima
3
Normalmente, cuando intenta robar una contraseña en un mensaje, la registra y escribe "Inicio de sesión no válido", y luego sale del programa. Por lo tanto, no es necesario autenticarse con $euid=0.
Ned64
1
¿Por qué los votos negativos?
dr01