29

Кто-то на Youtube утверждает, что в Ubuntu есть кейлоггер, который не был запущен и не установлен как root. Ссылка ниже показывает демонстрацию его работы.

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

Несмотря на их заявления об обратном, этот человек мог установить его как root перед демонстрацией для видео. Существуют ли какие-либо еще маловероятные доказательства того, что это действительно возможно без рута для установки или выполнения?

ОБНОВЛЕНИЕ: Программное обеспечение, указанное в ответе от 24 июня, не будет установлено без sudo/root. Я добавил вознаграждение тому, кто дает ссылку на работающее программное обеспечение кейлоггера Linux, которое можно устанавливать и запускать с правами обычного пользователя.

8 ответов8

28

Да, это реально. Если вы использовали браузер и злоумышленник может выполнить код с вашими правами пользователя, он может зарегистрировать программу с помощью средств автозапуска GNOME или KDE, которые запускают программы при входе в систему. Любая программа может получить коды сканирования нажатых клавиш в X Window System. Это легко продемонстрировать с помощью команды xinput. Смотрите сообщение в блоге об изоляции GUI для деталей.

11

Идея в этом видео на 100% реальна, а код очень прост.

Определите свой идентификатор клавиатуры с помощью: xinput --list

Регистрировать нажатия клавиш с помощью: xinput --test $id

Совпадение чисел с ключами с помощью: xmodmap -pke

10

Да, это возможно.
Вы можете попробовать его на своей машине с аналогичным программным обеспечением lkl .

9

Я не смотрел видео, поэтому отвечаю на впечатление, которое я получил о том, что он утверждает, от темы SU, а не от видео, которое вы цитируете.

Если злоумышленник может выполнить код на вашем компьютере как ваш пользователь, он может регистрировать нажатия клавиш.

Ну, да. Все приложения, которые вы запускаете, имеют доступ к вашим клавишам. Если вы набираете что-то в своем веб-браузере, ваш веб-браузер имеет доступ к вашим нажатиям клавиш.

Ах, вы говорите, а как насчет регистрации нажатий клавиш в другом приложении? Пока другое приложение работает на том же X-сервере, они все еще могут быть зарегистрированы. X11 не пытается изолировать приложения - это не его работа. X11 позволяет программам определять глобальные ярлыки, что полезно для методов ввода, определять макросы и т.д.

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

Это не угроза. Это часть нормальных ожиданий работающей системы. Если вы позволите злоумышленнику запускать код на вашем компьютере, ваш компьютер больше не будет в безопасности. Это как если бы вы открыли входную дверь и впустили убийцу топора: если вас потом раскололи на две части, это не потому, что ваша входная дверь небезопасна.

Кейлоггер может регистрировать только те клавиши, которые нажал зараженный пользователь. (По крайней мере, пока зараженный пользователь не вводит пароль sudo.)

3

Это на 100% возможно. Для ttys/ptys (текстовый режим) самый простой способ - добавить шим к /bin /{ba, da, a} sh (например, второй сегмент .code, RX) и изменить точку входа (так же, как ELF). вирус бы). Запретив доступ к этому в этом случае, можно изменить ~ /.profile или ~ /.bashrc (и т.д.) В качестве очень простой гипотетической модели:

exec ~/.malicious_programme

который может загружать динамический код общего объекта, чтобы скрыть вредоносную программу (пример: разрешить чтение и модификацию .profile, но скрыть строку. И / или скрыть программу.)

Затем можно использовать систему UNIX98 pty(7) или даже просто pipe(2) для записи всего ввода в разветвленной оболочке, предполагая, что fd не помечен как FD_CLOEXEC, и даже изменить ввод пользователя в оболочку.

В X11, хотя kdm/gdm/xdm работают как root setuid (или эквивалент в возможностях [см. Setcap (8)] или любой другой модели безопасности, которую вы используете, если не по умолчанию), очевидно, что все становится более сложным. Можно ли повысить привилегии? iopl (2) или ioperm (2) облегчают жизнь благодаря прямому доступу к портам клавиатуры 0x60 / 0x64 на x86. Поскольку мы предполагаем, что вы не можете, мы должны искать альтернативный маршрут. Я знаю несколько, но я не совсем уверен, что вы хотите диссертацию о том, как это возможно и интерфейсы.

Достаточно сказать, что кольцо 3, троянские программы, не являющиеся суперпользователями, вполне возможны в * nix, несмотря на изоляцию процесса, в результате различных проблем (особенно с X), которые добавили функции для демонов пользовательского режима для предоставления, например, текста поддержка речи для всех приложений без ущерба для безопасности системы. Я уже обрисовал в общих чертах тот, который работает аналогично ttysnoops (срок действия которого истек), и для него не требуется root. У меня есть пример кода для этого случая (который будет включать в себя внутренние терминалы в X), но я еще не опубликовал его. Если вы хотите получить больше информации, пожалуйста, свяжитесь со мной.

0

В целях тестирования я создал кейлоггер TTY, который может динамически подключаться к tty пользователя, и программа не требует установки root и может использоваться любой учетной записью. После подключения он будет регистрировать входные данные, которые соответствуют шаблону, указанному в командной строке при запуске программы.

0

Да, возможно установить программное обеспечение без прав su или sudo; однако, это обычно делается с помощью эксплойта повышения привилегий. Это видео довольно неплохо работает с возможностями этого кейлоггера, но оно оставляет некоторые детали при установке кейлоггера. Здесь может быть какая-то хитрость, но по одному видео трудно сказать.

-3

Это возможно в таких системах, как Crunchbang (дистрибутив на основе Debian), просто добавьте права доступа к файлу sudoers с помощью nano visudo в терминале и добавьте кейлоггер для автозапуска, например, logkeys для Linux, например logkeys --start --output /home/user/.secret /журнал

Удачи

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .