Linux keylogger без root або sudo! Це реально?


29

Хтось із Youtube стверджує, що в Ubuntu є кейлоггер, який не був виконаний і не встановлений як root. Посилання нижче показує демонстрацію його роботи.

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

Незважаючи на те, що вони стверджують протилежне, ця людина могла встановити його як корінь перед тим, як продемонструвати відео. Чи є інші напівдостовірні докази того, що це дійсно можливо без кореня для встановлення чи виконання?

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


Я вважаю, що це можна зробити на рівні X легко. Подумайте лише про програми з глобальними ярликами.
Денис Ніколаєнко

Щоб запобігти системним кейлоггерам вікон X, вам потрібно впровадити SELinux для X. Наскільки мені відомо, жоден широко розповсюджений дистрибутив Linux цього не робить. nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Денис Ніколаєнко

Чи знаєте ви якісь фактичні приклади роботи? Не бачачи, як це працює з перших рук, я залишаюся скептичним. І не знаючи, що дійсно можливо встановити keylogger без привілеїв sudo / root, не варто боротися зі складністю налаштування AppArmor або SELinux для захисту від нього.
Майк Роувв


3
Підкажіть, будь ласка, важливі моменти відео у своїй відповіді. Його можна видалити або сервер може стати недоступним. (Так, коли я публікую повідомлення, Youtube знижується.) Також досить грубо вимагати від відвідувачів перегляду відеоролика, щоб зрозуміти, про що йдеться у вашому питанні.
Жил 'SO- перестань бути злим'

Відповіді:


29

Так, це реально. Якщо ви використовувались через браузер, а зловмисник може запускати код з правами користувача, він може зареєструвати програму через засоби GNOME або KDE для автозапуску, які запускають програми під час входу. Будь-яка програма може отримати коди сканування натиснутих клавіш у X Window System. Це легко демонструється командою xinput. Детальніше див. У блозі про ізоляцію GUI .


12

Концепція цього відео є 100% реальною, і код дуже простий.

Ідентифікуйте свій ідентифікатор клавіатури за допомогою: xinput --list

Увійти натискання клавіш за допомогою: xinput --test $id

Зіставте числа до клавіш із: xmodmap -pke


11

Так, це можливо.
Ви можете спробувати його на власній машині з подібним програмним забезпеченням lkl .


Страшно, якщо це реально. Я збираюся встановити віртуальну машину, на якій її тестувати. Але наступна головоломка - як негайно її виявити, якщо вона якось встановить себе через браузерний експлуатувальник чи щось подібне, або принаймні проактивно заблокує передачу чого-небудь в Інтернет, якщо він працює.
Майк Роувве

Я мало знаю в цій галузі, але wiki.ubuntu.com/SELinux може допомогти. Не соромтеся оновити оригінальне запитання зі своїми висновками. : D
bbaja42

1
Важко сказати підман, справжній або менш, ніж здається, лише з відео. Я вже можу придумати місця для початку, якби хотів зробити відео, на якому можна було б продемонструвати величезну вразливість (трюки, підказки, судові очікування, підроблені системні інструменти тощо). нерозумно. Але не можна робити висновки на основі відео з Youtube.
Ендрю Ламберт

@Amazed дійсна точка, але не соромтесь встановити 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.)



"Не дозволяти зловмиснику запускати код на вашій машині" - це чудова модель безпеки ... Я думаю, що Windows стає абсолютно захищеним, коли його використовує тоді користувач Linux Linux (який точно не дозволив би зловмиснику запустити код) ...
gbr

3

Це на 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), але я ще не опублікував його. Якщо ви хочете отримати більше інформації, будь ласка, не соромтесь зв’язатися зі мною.


У запитанні сказано "без кореня чи судо". Як зловмисник може змінювати програму /binбез привілеїв?
G-Man каже: «Відновіть Моніку»

0

Так, можна встановити програмне забезпечення без привілеїв su або sudo; однак це, як правило, робиться за рахунок використання ескалації привілеїв. Це відео робить досить непогану роботу можливостей цього кейлоггера, але він залишає трохи деталей щодо установки кейлоггера. Тут може бути трохи хитрощів, але важко сказати лише з відео.


Ти скручуєш слова. Можливо, можливо, встановити програмне забезпечення в системний каталог без запуску su або sudo, але експлуатування ескалації привілеїв надасть привілею root root - aka "superuser" або "su".
G-Man каже: «Відновіть Моніку»

0

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


-3

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

Удачі


5
Для редагування файлу sudoers потрібні привілеї root або sudo.
Майк Роуайв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.