Це на 100% можливо. Для ttys / ptys (текстовий режим) найпростіший спосіб - додати shim до / bin / {ba, da, a} sh (наприклад, другий сегмент коду, RX) та змінити точку входу (як ELF) вірус би). Якщо заборонити доступ до цього в цьому випадку, ви можете змінити ~ / .profile або ~ / .bashrc (тощо) як дуже просту гіпотетичну модель:
exec ~ / .malicious_programme
який може завантажувати динамічний спільний код об'єкта, щоб приховати відповідну шкідливу програму (приклад: дозволяти .profile читати та змінювати, але приховувати рядок. та / або приховувати програму.)
Тоді можна використовувати систему UNIX98 pty (7) або навіть просто трубу (2) для запису всього входу у роздвоєну оболонку, якщо припустимо, що fd не позначений FD_CLOEXEC, і навіть змінити вхід користувача в оболонку.
У X11, хоча kdm / gdm / xdm працює як встановлений корінь (або еквівалент у можливостях [див. Setcap (8)] або будь-яку модель безпеки, яку ви використовуєте, якщо це не за замовчуванням), все стає складніше, очевидно. Якщо можна підвищити пільги? iopl (2) або ioperm (2) робить життя досить легким за допомогою прямого доступу до портів клавіатури 0x60 / 0x64 на x86. Оскільки ми припускаємо, що ви не можете, ми повинні шукати альтернативний маршрут. Мені відомо декілька, але я не зовсім впевнений, що ви хочете отримати дисертацію про те, як це можливо, та пов'язані інтерфейси.
Досить сказати, кільце 3, не надруковані трояни цілком можливі на * nix, незважаючи на ізоляцію процесу, внаслідок різних питань (особливо з X), що додає функції для демонів в режимі користувача для надання, наприклад, тексту -промова в мовленні для всіх додатків без шкоди для безпеки системи. Я вже окреслив той, який працює аналогічно ttysnoops (який давно минув його термін придатності), і він не потребує root. У мене є зразок коду для цього випадку (який би включав внутрішні термінали в X), але я ще не опублікував його. Якщо ви хочете отримати більше інформації, будь ласка, не соромтесь зв’язатися зі мною.