Linux keylogger tanpa root atau sudo! Apakah ini nyata?

29

Seseorang di Youtube mengklaim memiliki keylogger di Ubuntu yang tidak dieksekusi atau diinstal sebagai root. Tautan di bawah ini menunjukkan demo berfungsi.

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

Meskipun mereka mengklaim sebaliknya, orang ini bisa menginstalnya sebagai root sebelum menunjukkan untuk video. Apakah ada bukti semi-kredibel lain bahwa ini benar-benar mungkin tanpa root untuk instalasi atau eksekusi?

UPDATE: Perangkat lunak yang dirujuk dalam jawaban 24 Juni tidak akan menginstal tanpa sudo / root. Saya telah menambahkan hadiah kepada siapa pun yang memberikan tautan ke perangkat lunak keylogger Linux yang berfungsi yang dapat diinstal dan dijalankan dengan hak pengguna biasa.

Mike Rowave
sumber
Saya percaya ini bisa dilakukan pada level X dengan mudah. Pikirkan saja program-program dengan pintasan global.
Denis Nikolaenko
Untuk mencegah keyloggers sistem X window, Anda perlu mengimplementasikan SELinux untuk X. Sepengetahuan saya, tidak ada distribusi Linux yang tersebar luas yang melakukannya di luar kotak. nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Denis Nikolaenko
Apakah Anda tahu ada contoh kerja aktual? Tanpa melihatnya bekerja secara langsung, saya tetap skeptis. Dan tanpa mengetahui bahwa itu benar-benar mungkin bagi keylogger untuk diinstal tanpa sudo / root privilege, tidak layak untuk berurusan dengan kompleksitas pengaturan AppArmor atau SELinux untuk bertahan melawannya.
Mike Rowave
3
Harap rangkum poin-poin penting video dalam jawaban Anda. Itu bisa dihapus, atau server menjadi tidak tersedia. (Ya, saat saya memposting, Youtube sedang down.) Juga agak kasar untuk mengharuskan pengunjung menonton video untuk mencari tahu apa pertanyaan Anda.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

29

Ya itu nyata. Jika Anda telah dieksploitasi melalui browser dan penyerang dapat menjalankan kode dengan hak istimewa pengguna Anda, ia dapat mendaftarkan program melalui fasilitas autostart GNOME atau KDE yang menjalankan program saat login. Program apa pun bisa mendapatkan kode pindaian dari tombol yang ditekan di Sistem X Window. Itu mudah ditunjukkan dengan perintah xinput. Lihat posting blog pada isolasi GUI untuk detailnya.

Denis Nikolaenko
sumber
12

Konsep dalam video itu adalah 100% nyata dan kodenya sangat sederhana.

Identifikasi id keyboard Anda dengan: xinput --list

Log penekanan tombol dengan: xinput --test $id

Cocokkan angka dengan kunci dengan: xmodmap -pke

yardena
sumber
11

Ya itu mungkin.
Anda dapat mencobanya di komputer Anda sendiri dengan lkl perangkat lunak serupa .

bbaja42
sumber
Menakutkan kalau ini nyata. Saya akan menyiapkan mesin virtual untuk mengujinya. Tetapi teka-teki selanjutnya adalah bagaimana cara segera mendeteksi jika entah bagaimana menginstal sendiri melalui eksploitasi browser atau sesuatu seperti itu, atau setidaknya secara proaktif memblokirnya dari mengirimkan sesuatu ke Internet jika itu berjalan.
Mike Rowave
Saya memiliki sedikit pengetahuan di bidang ini, tetapi wiki.ubuntu.com/SELinux mungkin membantu. Jangan ragu untuk memperbarui pertanyaan awal dengan temuan Anda. : D
bbaja42
1
Sulit dikatakan omong kosong, nyata, atau kurang dari itu tampaknya dari video saja. Saya sudah bisa memikirkan tempat untuk memulai jika saya ingin membuat video seandainya menunjukkan kerentanan besar (trik suid, waktu tunggu sudo, alat sistem tercemar, dll. Ad nauseum.) Tidak berarti Linux kebal terhadap serangan, untuk mengklaim sebaliknya bodoh Tapi orang tidak bisa menarik kesimpulan berdasarkan video Youtube.
Andrew Lambert
@Amazed valid point, tetapi jangan ragu untuk menginstal lkl dan mengujinya di komputer Anda sendiri.
bbaja42
1
Itu tidak berhasil. Menjalankan make installmenghasilkan kesalahan cannot create regular file '/usr/local/bin/lkl': Permission denied. Berlari sudo make installtidak memberikan kesalahan, tetapi kemudian mencoba menjalankan lkl memberikan kesalahan lain Have to be root to perform a iopl()!.
Mike Rowave
9

Saya belum menonton video, jadi saya merespons kesan yang saya dapatkan tentang apa yang diklaimnya dari utas SU daripada video yang Anda kutip.

Jika penyerang dapat menjalankan kode pada mesin Anda sebagai pengguna Anda, maka mereka dapat mencatat penekanan tombol Anda.

Ya, benar. Semua aplikasi yang Anda jalankan memiliki akses ke penekanan tombol Anda. Jika Anda mengetikkan sesuatu di browser web Anda, browser web Anda memiliki akses ke penekanan tombol Anda.

Ah, katamu, tapi bagaimana dengan mencatat penekanan tombol di aplikasi lain? Selama aplikasi lain berjalan di server X yang sama, mereka masih bisa login. X11 tidak berusaha mengisolasi aplikasi - itu bukan tugasnya. X11 memungkinkan program untuk menentukan pintasan global, yang berguna untuk metode input, untuk mendefinisikan makro, dll.

Jika penyerang dapat menjalankan kode sebagai pengguna Anda, ia juga dapat membaca dan memodifikasi file Anda, dan menyebabkan semua jenis kerusakan lainnya.

Ini bukan ancaman. Itu bagian dari ekspektasi normal suatu sistem kerja. Jika Anda mengizinkan penyerang menjalankan kode pada mesin Anda, mesin Anda tidak aman lagi. Ini seperti jika Anda membuka pintu depan dan membiarkan pembunuh kapak masuk: jika Anda terbelah menjadi dua, itu bukan karena pintu depan Anda tidak aman.

Keylogger hanya dapat mencatat kunci yang ditekan oleh pengguna yang terinfeksi. (Setidaknya selama pengguna yang terinfeksi tidak mengetikkan kata sandi sudo.)

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Lihat Hukum # 1 .
Iszi
"Tidak mengizinkan penyerang menjalankan kode pada mesin Anda" adalah model keamanan yang hebat ... Saya kira Windows menjadi sangat aman ketika digunakan oleh pengguna Linux (yang pastinya tidak akan "mengizinkan penyerang menjalankan kode") ...
gbr
3

Itu 100% mungkin. Untuk ttys / ptys (mode teks), cara termudah adalah menambahkan shim ke / bin / {ba, da, a} sh (misalnya, segmen .code kedua, RX) dan mengubah titik masuk (seperti ELF virus akan). Kecuali akses ke hal itu dalam hal ini, seseorang dapat memodifikasi ~ / .profile atau ~ / .bashrc (dll.), Sebagai model hipotetis yang sangat sederhana:

exec ~ / .malicious_programme

yang dapat memuat kode objek bersama dinamis untuk menyembunyikan program jahat yang dimaksud (contoh: izinkan. profil dibaca dan dimodifikasi, tetapi sembunyikan barisnya. Dan / atau sembunyikan program.)

Seseorang kemudian dapat menggunakan sistem UNIX98 pty (7) atau bahkan hanya pipa (2) untuk merekam semua input dalam shell bercabang, dengan anggapan fd tidak ditandai FD_CLOEXEC, dan bahkan mengubah input pengguna ke shell.

Di X11, meskipun kdm / gdm / xdm dijalankan sebagai setuid root (atau kemampuan yang setara [lihat setcap (8)] atau model keamanan apa pun yang Anda gunakan jika tidak default), semuanya menjadi lebih rumit, jelas. Jika seseorang dapat meningkatkan hak istimewa? iopl (2) atau ioperm (2) membuat hidup lebih mudah dengan akses langsung ke port keyboard 0x60 / 0x64 pada x86. Karena kami menganggap Anda tidak bisa, kami harus mencari rute alternatif. Saya tahu beberapa, tapi saya tidak sepenuhnya yakin Anda ingin disertasi tentang bagaimana hal itu mungkin dan antarmuka yang terlibat.

Cukuplah untuk mengatakan, dering 3, trojan non-superuser sangat mungkin di * nix, terlepas dari proses isolasi, sebagai akibat dari berbagai masalah (terutama dengan X) yang telah menambahkan fitur untuk daemon mode pengguna untuk menyediakan, misalnya, teks -untuk-pidato dukungan untuk semua aplikasi tanpa kompromi keamanan sistem. Saya sudah menguraikan satu yang bekerja secara analog dengan ttysnoops (yang sudah lama melewati tanggal kedaluwarsanya), dan tidak memerlukan root. Saya memiliki kode sampel untuk kasus ini (yang akan mencakup terminal di dalam X), tetapi saya belum mempublikasikannya. Jika Anda ingin informasi lebih lanjut, silakan hubungi saya.

David McIlwraith
sumber
Pertanyaannya mengatakan "tanpa root atau sudo". Bagaimana penyerang memodifikasi program /bintanpa hak istimewa?
G-Man Mengatakan 'Reinstate Monica'
0

Ya, dimungkinkan untuk menginstal perangkat lunak tanpa hak su atau sudo; Namun, ini biasanya dilakukan melalui eksploitasi eskalasi hak istimewa. Video itu melakukan pekerjaan yang cukup baik dari kemampuan keylogger itu, tetapi meninggalkan sedikit detail pada instalasi keylogger. Mungkin ada sedikit tipu daya di sini, tetapi sulit untuk mengatakannya dari video itu sendiri.

Xenoaktif
sumber
Anda memutar kata-kata. Dimungkinkan untuk menginstal perangkat lunak ke direktori sistem tanpa menjalankan su atau sudo, tetapi eksploitasi eskalasi hak istimewa akan memberikan hak istimewa root penyerang - alias hak istimewa "pengguna super" atau "su".
G-Man Mengatakan 'Reinstate Monica'
0

Untuk tujuan pengujian, saya membuat keylogger TTY yang secara dinamis dapat melampirkan tty pengguna dan program tidak perlu diinstal oleh root dan dapat digunakan oleh akun apa pun. Setelah terpasang, itu akan mencatat input yang cocok dengan pola yang diberikan pada baris perintah ketika program dimulai.

wzis
sumber
-3

Apakah mungkin dengan sistem seperti Crunchbang (distro berbasis Debian) cukup tambahkan izin ke file sudoers dengan menggunakan nano visudo di terminal dan tambahkan keylogger ke autostart seperti logkeys untuk Linux misalnya logkeys --mulai --output /home/user/.secret / log

Semoga berhasil

GodOfWarWebMew
sumber
5
Diperlukan hak root atau sudo untuk mengedit file sudoers.
Mike Rowave