Saya menduga serangan seperti ini akan berhasil, di mana «sesuatu» adalah modul kernel yang akan mencoba memuat setelah rootfs di-mount:
$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko
Perhatikan juga bahwa Anda dapat menggunakan nama lain, tergantung pada alias yang dinyatakan dalam modul. Saya kira itu tidak akan dimuat sampai depmod dijalankan, yang akan terjadi pada saat berikutnya ada pembaruan kernel-sehingga mkdir
bahkan tidak akan ditampilkan baru-baru ini di log sudo.
Ada banyak hal di / etc yang membaca semua file dalam direktori, terkadang secara rekursif. Lebih buruk lagi, beberapa direktori tersebut tidak ada secara default, dan satu-satunya cara untuk mengetahuinya adalah dengan membaca halaman manual, skrip init, dll. Untuk program yang menggunakannya. Beberapa, bahkan lebih buruk, sudah usang hal-hal kompatibilitas, dan bahkan mungkin tidak didokumentasikan lagi.
sunting: Memikirkan beberapa direktori lagi, ini dalam /usr/local
:
/usr/local/lib/perl/5.14.2
(berbeda tergantung pada versi Perl, cobalah perl -V
untuk mencari tahu). Buat File
subdirektori di sana, dan letakkan Find.pm
di dalamnya. Sekarang setiap kali ada yang menggunakan File::Find
, mereka akan menggunakan versi penyerang. Demikian pula, lakukan hal yang sama dengan Getopt::Long
. Utilitas sistem sering ditulis dalam Perl, jadi ini mungkin memberikan root. (Coba ack-grep --color -a 'use.+::' /usr/sbin | less -R
)
- Saya pikir Python, Ruby, dll. Memiliki direktori yang sama. Utilitas sistem juga ditulis dalam Python.
- Subvert banyak hal yang dikompilasi dengan subdirektori dari seseorang
/usr/local/include
.