¿Es posible realizar keylogging de Linux sin explotaciones con acceso de X Windows solo para clientes que no sean root?

3

Digamos que en un sistema Linux utilizo bubblewrap para una aplicación de sandbox y le doy acceso de escritura a /tmp/.X11-unix para que Puede ser un cliente de X Windows. ¿Es posible que la aplicación de espacio aislado (sin usar las vulnerabilidades del servidor X) registre de manera invisible las pulsaciones de teclas que van a otras aplicaciones? Por un lado, el registrador de pulsaciones de Linux logkeys requiere acceso root a uno de los dispositivos /dev/input/event# . Por otro lado, xhotkeys puede, sin ningún privilegio de raíz, interceptar pulsaciones de teclas arbitrarias, por lo que tal vez la aplicación de espacio aislado pueda interceptar pulsaciones de teclas arbitrarias y luego vuelva a publicar el evento como un evento sintético para que pase al destinatario deseado.

EDIT : si es posible para la aplicación de espacio aislado realizar el registro de pulsaciones de teclas con solo una conexión de cliente de X Windows, ¿se puede evitar esto lanzando un servidor X anidado y ¿solo le da acceso a la caja de arena al servidor anidado?

    
pregunta Matthew Cline 04.10.2017 - 02:25
fuente

1 respuesta

1

Sí, es posible realizar el registro de pulsaciones de teclas con solo una conexión X11. Las dos formas comunes de hacerlo son usar la extensión XTEST o usar XQueryKeymap() , que devuelve El estado actual del teclado. Como una conexión X11 solo pasa por un socket, si un proceso tiene acceso a la cookie X11 y puede autenticarse con Xorg, podrá monitorear (e inyectar) pulsaciones de teclas.

El uso de un servidor X anidado protegería de esto (aunque recomendaría Xephyr en lugar de Xnest, ya que este último está en desuso). Tendría que otorgar acceso al proceso de espacio aislado a la cookie X11 del servidor anidado y evitar que acceda a la cookie X11 raíz.

    
respondido por el forest 30.11.2017 - 05:23
fuente

Lea otras preguntas en las etiquetas