Alguien en Youtube afirma tener un keylogger en Ubuntu que no fue ejecutado ni instalado como root. El siguiente enlace muestra una demostración de su funcionamiento.
http://www.youtube.com/watch?v=Y1fZAZTwyPQ
A pesar de sus afirmaciones de lo contrario, esta persona podría haberlo instalado como root antes de hacer una demostración para el video. ¿Hay alguna otra evidencia semi creíble de que esto sea realmente posible sin root para la instalación o ejecución?
ACTUALIZACIÓN: El software al que se hace referencia en la respuesta del 24 de junio no se instalaría sin sudo / root. He agregado una recompensa a quien proporcione un enlace a un software de registro de teclas de Linux que pueda instalarse y ejecutarse con privilegios de usuario regulares.
Respuestas:
Si, es real. Si ha sido explotado a través de un navegador y un atacante puede ejecutar código con sus privilegios de usuario, puede registrar un programa a través de las instalaciones de inicio automático de GNOME o KDE que ejecutan programas al iniciar sesión. Cualquier programa puede obtener códigos de escaneo de teclas presionadas en el sistema X Window. Se demuestra fácilmente con el comando xinput. Vea la publicación de blog sobre aislamiento de GUI para más detalles
fuente
El concepto en ese video es 100% real y el código es muy simple.
Identifique su identificación de teclado con:
xinput --list
Registro de pulsaciones de teclas con:
xinput --test $id
Haga coincidir los números con las teclas con:
xmodmap -pke
fuente
Sí, es posible.
Puede probarlo en su propia máquina con un software similar lkl .
fuente
make install
produjo el errorcannot create regular file '/usr/local/bin/lkl': Permission denied
. Ejecutarsudo make install
no dio el error, pero luego intentar ejecutar realmente lkl dio otro errorHave to be root to perform a iopl()!
.No he visto el video, así que estoy respondiendo a la impresión que tengo sobre lo que dice del hilo SU en lugar del video que usted cita.
Si un atacante puede ejecutar código en su máquina como su usuario, entonces puede registrar sus pulsaciones de teclas.
Bueno duh. Todas las aplicaciones que está ejecutando tienen acceso a sus pulsaciones de teclas. Si está escribiendo cosas en su navegador web, su navegador web tiene acceso a sus pulsaciones de teclas.
Ah, usted dice, pero ¿qué pasa con el registro de pulsaciones de teclas en otra aplicación? Mientras la otra aplicación se esté ejecutando en el mismo servidor X, aún se pueden registrar. X11 no intenta aislar aplicaciones, ese no es su trabajo. X11 permite que los programas definan accesos directos globales, lo cual es útil para los métodos de entrada, para definir macros, etc.
Si el atacante puede ejecutar el código como su usuario, también puede leer y modificar sus archivos, y causar todo tipo de daños.
Esto no es una amenaza. Es parte de las expectativas normales de un sistema de trabajo. Si permite que un atacante ejecute código en su máquina, su máquina ya no es segura. Es como si abrieras la puerta de entrada y permitieras que entrara un asesino con hacha: si luego te parten en dos, no es porque tu puerta de entrada esté insegura.
El keylogger solo puede registrar teclas presionadas por el usuario infectado. (Al menos mientras el usuario infectado no escriba la contraseña de sudo).
fuente
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.
fuente
/bin
sin privilegios?Sí, es posible instalar software sin los privilegios su o sudo; sin embargo, esto generalmente se hace a través de un exploit de escalada de privilegios. Ese video hace un trabajo bastante bueno de las capacidades de ese keylogger, pero deja un poco de detalle sobre la instalación del keylogger. Puede haber un poco de truco aquí, pero es difícil saberlo solo por el video.
fuente
su
osudo
, pero un exploit de escalada de privilegios le daría al atacante el privilegio raíz, también conocido como "superusuario" o "su" privilegio.Para fines de prueba, creé un keylogger TTY que puede conectarse dinámicamente al tty de un usuario y el programa no necesita ser instalado por root y puede ser utilizado por cualquier cuenta. Una vez conectado, registrará las entradas que coinciden con el patrón dado en la línea de comando cuando se inicia el programa.
fuente
Esto es posible con sistemas como Crunchbang (distribución basada en Debian) simplemente agregue permisos al archivo sudoers mediante el uso de nano visudo en la terminal y agregue keylogger al inicio automático como teclas de registro para Linux, por ejemplo logkeys --start --output /home/user/.secret /Iniciar sesión
Buena suerte
fuente