возможно 100%. Для ttys /ptys (текстовый режим) самый простой способ-добавить оболочку в/bin / {ba, da,a}sh (например,секунду .сегмент кода, R-X) и измените точку входа (так же, как вирус ELF). Запрет доступа к этому в этом случае можно изменить~/.профиль или./~ bashrc следующее (и т. д.) to, как очень простая гипотетическая модель:
exec ~/.malicious_programme
, который может загрузить динамический общий объектный код, чтобы скрыть вредоносную программу в вопросе (пример: разрешить .профиль считан и изменен, но линия скрыта. И/или скрыть программу.)
затем можно использовать систему unix98 pty(7) или даже просто pipe(2) для записи всех входных данных в раздвоенной оболочке, предполагая, что fd не помечен FD_CLOEXEC, и даже изменить пользовательский ввод в оболочку.
в X11, хотя KDM/gdm / xdm работает как setuid root (или эквивалент в возможностях [см. setcap(8)] или любую другую модель безопасности, которую вы используете, если она не по умолчанию), все становится более сложным, очевидно. Можно ли повысить привилегии? iopl(2) или ioperm (2) делает жизнь довольно легкой с прямым доступом к портам клавиатуры 0x60 / 0x64 на x86. Так как мы предполагаем, что вы не можете, Мы должны искать альтернативный маршрут. Я знаю несколько, но я не уверен, что вы хотите диссертацию о том, как это возможно и интерфейсы задействованы.
достаточно сказать, что ring 3, непользовательские трояны вполне возможны на *nix, несмотря на изоляцию процесса, в результате различных проблем (особенно с X) это добавило функции для демонов пользовательского режима, например, поддержку преобразования текста в речь для всех приложений без ущерба для безопасности системы. Я уже изложил тот, который работает аналогично ttysnoops (который давно прошел свой срок действия), и он не требует root. У меня есть пример кода для этого случая (который будет включать в себя внутренние терминалы в X), но я еще не опубликовал его. Если вы хотите больше информации, то пожалуйста чувствуйте свободным связаться я.