Есть ли способ сделать кейлоггер в Linux без рута?

avatar
Yatogami
9 августа 2021 в 03:02
158
1
0

Что я пытаюсь сделать

Я создал кейлоггер, прочитав файл событий, но для его работы требуется разрешение root. Я хочу создать кейлоггер, который может работать без разрешения root.

Мое устройство

  • ubuntu16.04 с использованием X11
  • ubuntu21.04 с использованием Wayland

Мои мысли

Я понимаю, что это возможно в Windows, а также может быть реализовано через Xlib в некоторых Linux с использованием X11.

Но мой проект должен работать на X11 и Wayland, поэтому очевидно, что использовать Xlib невозможно.

Вопрос

Есть ли какой-либо другой способ, которым я могу зарегистрировать ключ без разрешения root?

Источник
Jeremy Friesner
9 августа 2021 в 06:06
2

Господи, я очень надеюсь, что нет!

Yunnosch
9 августа 2021 в 06:51
0

Вы описываете свою цель. Не могли бы вы уточнить, что заставляет вас думать, что это возможно? Я спрашиваю, потому что это кажется особенностью, что это невозможно.

Yatogami
9 августа 2021 в 07:13
0

@Yunnosch python-keylooger Th pykeylogger использует xlib для регистрации ключей, xlib не требует прав root, но xlib не может работать на wayland, поэтому мне интересно, есть ли способ сделать на вайленде то же самое.

Ответы (1)

avatar
Serge Ballesta
9 августа 2021 в 07:11
2

Это возможно, но любое решение без полномочий root будет зависеть от инструмента виртуализации клавиатуры. Посмотрим, как работают (современные) ОС:

  • аппаратное обеспечение находится под исключительным контролем ядра и его драйверов. На этом уровне можно реализовать кейлоггер, который будет зависеть только от ядра, но для этого требуются права администратора.
  • если у вас система с поддержкой нескольких окон (X11, XWindow), ОС передает низкоуровневые события менеджеру окон, который, в свою очередь, передает их клиентской программе. В Windows эта часть включена в ядро ​​по историческим причинам. Здесь снова можно реализовать кейлоггер (все еще низкого уровня), но если оконный менеджер был запущен от имени пользователя root, взаимодействие с ним в целом все равно требует прав администратора. По крайней мере, сервер X11 можно запустить как процесс пользователя без прав администратора, и в этом случае кейлоггер также может работать под тем же пользователем.
  • в конце оконный менеджер передает события клиентскому приложению. В некоторых (оконных) системах можно реализовать ловушки, но они будут ограничены одним и тем же процессом или группой процессов или, по крайней мере, одним и тем же пользователем. Возможно это или нет, и способ реализации, если это возможно, будет в любом случае зависеть от менеджера окон.
  • .

Это означает, что можно реализовать кейлоггер на уровне пользователя, но это будет зависеть от оконной системы, а не только от ядра. Иными словами, вам придется искать особый способ Wayland и особый способ X11, если вы хотите поддерживать их оба.