Es 100% posible. Para ttys / ptys (modo de texto), la forma más fácil es agregar una cuña a / bin / {ba, da, a} sh (por ejemplo, un segundo segmento de código, RX) y cambiar el punto de entrada (como un ELF virus lo haría). Salvo el acceso a eso en este caso, uno puede modificar ~ / .profile o ~ / .bashrc (etc.) a, como un modelo hipotético muy simple:
exec ~ / .malicious_programme
que puede cargar código dinámico de objeto compartido para ocultar el programa malicioso en cuestión (por ejemplo: permitir la lectura y modificación de perfiles, pero ocultar la línea. Y / u ocultar el programa).
Luego, se puede usar el sistema pIX (7) de UNIX98 o incluso simplemente canalizar (2) para registrar todas las entradas en un shell bifurcado, suponiendo que fd no esté marcado como FD_CLOEXEC, e incluso cambiar la entrada del usuario al shell.
En X11, aunque kdm / gdm / xdm se ejecuta como setuid root (o el equivalente en capacidades [ver setcap (8)] o cualquier modelo de seguridad que esté utilizando si no es predeterminado), las cosas se vuelven más complicadas, obviamente. Si uno puede elevar los privilegios? iopl (2) o ioperm (2) hace la vida bastante fácil con acceso directo a los puertos de teclado 0x60 / 0x64 en x86. Como suponemos que no puede, debemos buscar una ruta alternativa. Sé de varios, pero no estoy completamente seguro de que desee una disertación sobre cómo es posible y las interfaces involucradas.
Es suficiente decir que el anillo 3, los troyanos sin superusuario son bastante posibles en * nix, a pesar del aislamiento del proceso, como resultado de varios problemas (particularmente con X) que ha agregado características para que los demonios en modo de usuario proporcionen, por ejemplo, texto Soporte de voz a voz para todas las aplicaciones sin comprometer la seguridad del sistema. Ya describí uno que funciona de manera análoga a ttysnoops (que ya pasó su fecha de vencimiento), y no requiere root. Tengo un código de muestra para este caso (que incluiría terminales internas en X), pero aún no lo he publicado. Si desea más información, no dude en ponerse en contacto conmigo.