Tôi nghi ngờ một cuộc tấn công như thế này sẽ hoạt động, trong đó «cái gì đó» là một mô-đun hạt nhân sẽ cố tải sau khi rootfs được gắn kết:
$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko
Cũng lưu ý rằng bạn có thể sử dụng các tên khác, tùy thuộc vào các bí danh được khai báo trong mô-đun. Tôi đoán nó sẽ không được tải cho đến khi depmod được chạy, điều này sẽ xảy ra vào lần tới khi có bản cập nhật kernel, vì vậy, mkdir
nó thậm chí sẽ không hiển thị gần đây trong nhật ký sudo.
Có rất nhiều thứ trong / etc đọc tất cả các tệp trong một thư mục, đôi khi được đệ quy. Thậm chí tệ hơn, một số trong những thư mục đó không tồn tại theo mặc định và cách duy nhất để biết về chúng là đọc manpage, init script, v.v. cho chương trình sử dụng chúng. Một số, thậm chí tệ hơn, là những thứ không tương thích ngược, và thậm chí có thể không được ghi lại nữa.
chỉnh sửa: Suy nghĩ của một vài thư mục, trong /usr/local
:
/usr/local/lib/perl/5.14.2
(khác nhau tùy thuộc vào phiên bản Perl, hãy thử perl -V
tìm hiểu). Tạo một File
thư mục con trong đó, và đặt một Find.pm
trong đó. Bây giờ bất cứ khi nào bất cứ ai sử dụng File::Find
, họ sẽ sử dụng phiên bản của kẻ tấn công. Tương tự, làm tương tự với Getopt::Long
. Các tiện ích hệ thống thường được viết bằng Perl, vì vậy điều này có thể cho root. (Thử ack-grep --color -a 'use.+::' /usr/sbin | less -R
)
- Tôi nghĩ Python, Ruby, v.v ... có các thư mục tương tự. Các tiện ích hệ thống cũng được viết bằng Python.
- Phá hoại nhiều thứ mà ai đó biên dịch với các thư mục con của
/usr/local/include
.