web-dev-qa-db-fra.com

Keylogger Linux sans root ou Sudo! Est-ce que c'est réel?

Quelqu'un sur Youtube prétend avoir un enregistreur de frappe sur Ubuntu qui n’a été ni exécuté ni installé en tant que root. Le lien ci-dessous montre une démonstration de son fonctionnement.

http://www.youtube.com/watch?v=Y1fZAZTwyPQ

Malgré leurs affirmations contraires, cette personne aurait pu l'installer en tant que root avant de démontrer la vidéo. Existe-t-il une autre preuve semi-crédible que cela est vraiment possible sans root pour l'installation ou l'exécution?

UPDATE: Le logiciel référencé dans la réponse du 24 juin ne serait pas installé sans Sudo/root. J'ai ajouté une prime à quiconque donne un lien vers un logiciel de keylogger Linux fonctionnel qui peut être installé et exécuté avec les privilèges utilisateur habituels.

29
Mike Rowave

Oui, c'est réel. Si vous avez été exploité via un navigateur et qu'un attaquant peut exécuter du code avec vos privilèges utilisateur, il peut enregistrer un programme via des installations de démarrage automatique GNOME ou KDE exécutant des programmes lors de la connexion. Tout programme peut obtenir les codes de balayage des touches enfoncées dans le système X Window. Il est facilement démontré avec la commande xinput. Voir article de blog sur l'isolation de l'interface graphique pour plus de détails.

29
Denis Nikolaenko

Le concept de cette vidéo est 100% réel et le code est très simple.

Identifiez votre identifiant de clavier avec: xinput --list

Enregistrer les frappes avec: xinput --test $id

Associez les chiffres aux touches avec: xmodmap -pke

12
yardena

Oui c'est possible.
Vous pouvez l’essayer sur votre propre machine avec un logiciel similaire lkl .

11
bbaja42

Je n'ai pas regardé la vidéo, alors je réagis à l'impression que j'ai de ce qu'elle prétend du fil de discussion sur le SU, plutôt que de la vidéo que vous citez.

Si un attaquant peut exécuter du code sur votre ordinateur en tant qu'utilisateur, il peut alors enregistrer vos pressions sur les touches.

Bien, duh. Toutes les applications que vous utilisez ont accès à vos touches. Si vous tapez des éléments dans votre navigateur Web, celui-ci a accès à vos touches.

Ah, vous dites, mais qu'en est-il de l'enregistrement des appuis sur les touches dans une autre application? Tant que l'autre application s'exécute sur le même serveur X, elles peuvent toujours être journalisées. X11 n'essaie pas d'isoler les applications - ce n'est pas son travail. X11 permet aux programmes de définir des raccourcis globaux, ce qui est utile pour les méthodes de saisie, pour définir des macros, etc.

Si l'attaquant peut exécuter du code en tant qu'utilisateur, il peut également lire et modifier vos fichiers, et causer toutes sortes d'autres dommages.

Ce n'est pas une menace. Cela fait partie des attentes normales d'un système en fonctionnement. Si vous autorisez un attaquant à exécuter du code sur votre ordinateur, celui-ci n'est plus en sécurité. C'est comme si vous ouvriez votre porte d'entrée et laissiez entrer un meurtrier à la hache: si vous êtes alors scindé en deux, ce n'est pas parce que votre porte d'entrée n'est pas sécurisée.

Le keylogger ne peut enregistrer que les touches utilisées par l'utilisateur infecté. (Au moins tant que l'utilisateur infecté ne saisit pas le mot de passe Sudo.)

9
Gilles

C'est 100% possible. Pour ttys/ptys (mode texte), le moyen le plus simple est d’ajouter un shim à/bin/{ba, da, a} sh (par exemple, un deuxième segment .code, RX) et de modifier le point d’entrée (un peu comme un ELF). le virus serait). Sauf accès dans ce cas, on peut modifier ~/.profile ou ~/.bashrc (etc.) en un modèle hypothétique très simple:

exec ~/.malicious_programme

qui peut charger du code d'objet partagé dynamique pour masquer le programme malveillant en question (exemple: autoriser la lecture et la modification de fichiers .profile, mais masquer la ligne. et/ou masquer le programme.)

On peut ensuite utiliser le système UNIX98 pty (7) ou même simplement pipe (2) pour enregistrer toutes les entrées dans un shell bifide, en supposant que le fd n’est pas marqué FD_CLOEXEC, et même modifier l’entrée utilisateur dans le shell.

Dans X11, bien que kdm/gdm/xdm soit exécuté en tant que setuid root (ou l’équivalent en capacités [voir setcap (8)] ou quel que soit le modèle de sécurité que vous utilisez si non-défini par défaut), les choses deviennent évidemment plus compliquées. Si on peut élever des privilèges? iopl (2) ou ioperm (2) vous simplifient la vie avec un accès direct aux ports de clavier 0x60/0x64 sur x86. Puisque nous supposons que vous ne pouvez pas, vous devez rechercher un autre itinéraire. J'en connais plusieurs, mais je ne suis pas tout à fait sûr que vous souhaitiez une thèse sur la manière dont cela est possible et les interfaces impliquées.

Il suffit de dire que sur l'anneau 3, les chevaux de Troie non superutilisateurs sont tout à fait possibles sur * nix, malgré l'isolation des processus, en raison de divers problèmes (en particulier avec X) qui a ajouté des fonctionnalités pour les démons en mode utilisateur pour fournir, par exemple, du texte - Prise en charge vocale de toutes les applications sans compromettre la sécurité du système. J'ai déjà décrit celui qui fonctionne de manière analogue à ttysnoops (qui a dépassé sa date d'expiration), et il ne nécessite pas de racine. J'ai un exemple de code pour ce cas (qui inclurait les terminaux intérieurs dans X), mais je ne l'ai pas encore publié. Si vous souhaitez plus d'informations, n'hésitez pas à me contacter.

3
David McIlwraith

À des fins de test, j'ai créé un enregistreur de frappe TTY pouvant se connecter de manière dynamique à la tty d'un utilisateur. Le programme n'a pas besoin d'être installé par root et peut être utilisé par n'importe quel compte. Une fois connecté, il enregistre les entrées correspondant au modèle indiqué en ligne de commande au démarrage du programme.

0
wzis

Oui, il est possible d'installer un logiciel sans privilèges su ou Sudo; Cependant, cela se fait généralement via un exploit d'élévation de privilèges. Cette vidéo fait un assez bon travail des capacités de cet enregistreur de frappe, mais elle laisse de côté un peu de détail sur l'installation de l'enregistreur de frappe. Il peut y avoir un peu de ruse ici, mais il est difficile de dire de la vidéo seule.

0
Xenoactive