Tại sao là gật đầu, trong / etc / fstab rất quan trọng? Làm thế nào các thiết bị nhân vật có thể được sử dụng để hack?


19

Tôi đang tìm hiểu về bảo mật linux và đấu tranh để hiểu tại sao một chiếc USB có thiết bị ký tự trên đó lại có khả năng nguy hiểm.

Nếu tôi có thẻ USB có tệp thực thi bash có gốc setuid trên đó, thì nguy hiểm là rõ ràng: Bất kỳ ai có thẻ USB như vậy đều có thể nhận được quyền root trên máy tính của tôi nếu tôi có mục như

/dev/sdb1 /media/usbstick auto defaults 0 0

trong tôi /etc/fstabbởi vì defaultsbao gồm suid.

Nhưng những gì về thiết bị nhân vật? Làm cách nào tôi có thể sử dụng thiết bị ký tự để có được quyền root hoặc phá vỡ nội dung nếu thẻ USB có thiết bị ký tự trên thiết bị được gắn với devhoặc defaults?

Câu trả lời:


31

Do quyền truy cập vào thiết bị bên dưới chỉ được kiểm soát bởi quyền truy cập tệp theo mặc định, do đó, nếu thanh USB của bạn chứa hệ thống tệp POSIX có nút thiết bị có thể ghi thế giới tương ứng với thiết bị thực trong hệ thống, bạn có thể sử dụng nút thiết bị đó để truy cập vào nút tương ứng thiết bị như một người dùng "đơn giản". Tưởng tượng một thiết bị tương ứng với một trong các thiết bị âm thanh, webcam của bạn /dev/sda(là thiết bị chặn chứ không phải thiết bị ký tự, nhưng đối số là như nhau) ...

Đây là một ví dụ để làm cho mọi thứ rõ ràng hơn. Giả sử bạn muốn truy cập /dev/sda(sau đó bạn có thể thực hiện bất kỳ điều gì bạn muốn với nội dung của đĩa, bao gồm cả việc tạo chương trình cho phép bạn trở thành root; đây là một thiết bị khối nhưng vấn đề là giống với các thiết bị ký tự). Trên hệ thống mục tiêu của bạn, ls -l /dev/sdahiển thị

brw-rw----  1 root disk      8,   0 Sep  8 11:25 sda

Điều này có nghĩa /dev/sdalà một thiết bị khối ( bở đầu dòng), với số chính 8 và số phụ 0 ( 8, 0ở giữa dòng). Thiết bị chỉ có thể truy cập root(đọc / ghi) và các thành viên của disknhóm (cũng đọc / ghi).

Bây giờ hãy tưởng tượng trên hệ thống này bạn không thể trở thành rootnhưng vì một số lý do, bạn có thể gắn USB như một người dùng mà không cần nodev. Trên một hệ thống khác, nơi bạn đang ở root, bạn có thể tạo một tệp đặc biệt tương ứng trên khóa USB của mình:

mknod -m 666 usersda b 8 0

Điều này sẽ tạo ra một tập tin đặc biệt được gọi usersda, có thể đọc và ghi được bởi mọi người.

Gắn chìa khóa vào hệ thống mục tiêu của bạn và xin chào, bạn có thể sử dụng usersdathiết bị theo cách tương tự /dev/sda, nhưng không hạn chế truy cập ...

(Điều này sẽ hoạt động ngay cả với các hệ thống tệp được mã hóa, miễn là bạn có thể truy cập thiết bị ánh xạ được giải mã: tạo thiết bị phù hợp với /dev/mappermục nhập phù hợp .)


Nghe có vẻ thú vị! Nhưng tôi không chắc là tôi hiểu nó. Một thiết bị là một tập tin và các tập tin được truy cập thông qua các nút. Thiết bị giả trên thanh USB của tôi sẽ có một nút khác và do đó, nó sẽ là một thiết bị khác, phải không?
rosix

7
Một thiết bị là một tập tin đặc biệt, với một số lượng lớn và nhỏ; bạn có thể thấy những số đó nếu bạn làm ls -l /dev, chúng là hai số xuất hiện thay vì kích thước tệp. Hạt nhân khớp với tệp đặc biệt của thiết bị với trình điều khiển sử dụng các số đó, vì vậy bạn có thể có nhiều tệp trỏ đến cùng trình điều khiển và thiết bị hạt nhân. Các tập tin đặc biệt được tạo ra bằng cách sử dụng mknod.
Stephen Kitt

Lưu ý rằng /dev/tty*các thiết bị là thiết bị ký tự và kẻ xâm nhập có quyền truy cập đọc / ghi đầy đủ vào các phiên cuối của bạn và / hoặc bảng điều khiển hệ thống kết hợp với lạm dụng các tính năng giả lập thiết bị đầu cuối có thể cho phép tất cả các loại thủ đoạn khó chịu ...
telcoM

1
@TheQuark khá nhiều, vâng. Đó là một chút tổng quát hơn; Tôi muốn nói rằng, diễn giải, có nghĩa là các ứng dụng khác có thể coi các tập tin của thiết bị như là các nút của thiết bị, chứ không phải các tập tin đơn giản.
Stephen Kitt

1
@ n00b bạn không thể gắn kết usersda, nhưng ít nhất bạn có thể sử dụng nó để đọc từ đĩa bên dưới mà không bị hạn chế và cũng có thể ghi vào nó. Bạn có thể dễ dàng sao chép tất cả nội dung của đĩa và với các công cụ như debuge2fs, ghi đè, /etc/shadowv.v.
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.