Linux кейлоггер без рута или sudo! Это реально?

29

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

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

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

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

Майк Ровэйв
источник
Я считаю, что это легко сделать на уровне Х. Просто подумайте о программах с глобальными ярлыками.
Денис Николаенко
Чтобы предотвратить кейлоггеры системы X Window, вам нужно внедрить SELinux для X. Насколько мне известно, ни один широко распространенный дистрибутив Linux не делает это из коробки. nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Денис Николаенко
Знаете ли вы какие-либо реальные рабочие примеры? Не видя, как это работает из первых рук, я остаюсь скептиком. И, не зная, что кейлоггер действительно может быть установлен без привилегий sudo / root, не стоит разбираться со сложностью настройки AppArmor или SELinux для защиты от него.
Майк Ровэйв
1
theinvisiblethings.blogspot.com/2011/04/…
Денис Николаенко
3
Пожалуйста, суммируйте важные моменты видео в вашем ответе. Он может быть удален или сервер может стать недоступным. (Да, поскольку я публикую пост, Youtube не работает.) Также довольно грубо требовать, чтобы посетители смотрели видео, чтобы выяснить, о чем ваш вопрос.
Жиль "ТАК - перестань быть злым"

Ответы:

29

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

Денис Николаенко
источник
12

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

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

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

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

Ярдена
источник
11

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

bbaja42
источник
Страшно, если это реально. Я собираюсь настроить виртуальную машину для тестирования. Но затем следующая загадка заключается в том, как сразу же обнаружить его, если он каким-либо образом установится через эксплойт браузера или что-то в этом роде, или, по крайней мере, заранее заблокировать его от передачи чего-либо в Интернет, если он запускается.
Майк Ровэйв
У меня мало знаний в этой области, но wiki.ubuntu.com/SELinux может помочь. Не стесняйтесь обновить оригинальный вопрос с вашими выводами. : D
bbaja42
1
Трудно сказать, обман, реальный или менее чем кажется из одного только видео. Я уже могу придумать, с чего начать, если бы я хотел сделать видео, предполагающее демонстрацию огромной уязвимости (трюки suid, тайм-ауты sudo, фальсифицированные системные инструменты и т. Д. До тошноты.) Ни в коем случае Linux неуязвим для атаки, чтобы утверждать иначе глупо Но нельзя делать выводы на основе видео с YouTube.
Эндрю Ламберт
@ Изумленный верный пункт, но не стесняйтесь установить lkl и протестировать его на своем компьютере.
bbaja42
1
Это не сработало. Запуск make installвыдает ошибку cannot create regular file '/usr/local/bin/lkl': Permission denied. Запуск sudo make installне дал ошибку, но затем попытка запустить lkl вызвала еще одну ошибку Have to be root to perform a iopl()!.
Майк Ровав
9

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

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

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

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

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

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

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

Жиль "ТАК - перестань быть злым"
источник
Смотрите Закон № 1 .
Изи
«Запрещение злоумышленнику запускать код на вашем компьютере» - это отличная модель безопасности ... Я думаю, что Windows становится совершенно безопасной, когда она используется пользователем Linux (который наверняка не «разрешит злоумышленнику запускать код») ...
GBR
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 выполняются как корень setuid (или эквивалент в возможностях [см. Setcap (8)] или любой другой модели безопасности, которую вы используете, если не по умолчанию), очевидно, все становится более сложным. Можно ли повысить привилегии? iopl (2) или ioperm (2) облегчают жизнь благодаря прямому доступу к портам клавиатуры 0x60 / 0x64 на x86. Поскольку мы предполагаем, что вы не можете, мы должны искать альтернативный маршрут. Я знаю несколько, но я не совсем уверен, что вы хотите диссертацию о том, как это возможно и интерфейсы.

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

Дэвид Макилврейт
источник
Вопрос говорит "без рута или sudo". Как злоумышленник может изменить программу /binбез привилегий?
G-Man говорит: «Восстановите Монику»
0

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

Xenoactive
источник
Вы скручиваете слова. Может быть возможно установить программное обеспечение в системный каталог без запуска su или sudo, но эксплойт повышения привилегий предоставит атакующему корневую привилегию - aka "superuser" или "su" привилегию.
G-Man говорит: «Восстановите Монику»
0

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

wzis
источник
-3

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

Удачи

GodOfWarWebMew
источник
5
Для редактирования файла sudoers требуется привилегия root или sudo.
Майк Роуав