Dựa theo man 7 capabilities
CAP_DAC_READ_SEARCH
* Bypass file read permission checks and directory read and execute permission checks;
* Invoke open_by_handle_at(2).
Điều này làm việc cho tôi. (các dòng bắt đầu bằng '#' là root, những dòng có '$' không phải là root) trong trường hợp này, người dùng không root nằm trong wheel
nhóm.
# cp /usr/bin/find /usr/bin/sudofind
# chmod 710 /usr/bin/sudofind
# chown root:wheel /usr/bin/sudofind
# setcap cap_dac_read_search+ep /usr/bin/sudofind
# exit
$ find /root
find: ‘/root’: Permission denied
$ sudofind /root
/root /root
/root/Testbed
...
...
$ sudofind /root -exec cat {} \;
cat: /root: Permission denied
cat: /root/Testbed: Permission denied
$ sudofind /root -printf "%u %g %m %c %p\n"
root root 644 Mon Apr 20 09:20:48.0457518493 2015 /root
root root 755 Fri Dec 4 02:34:03.0016294644 2015 /root/Testbed
...
...
$ # Capability inheritance test..
$ sudofind /root -exec /bin/sleep 10 \; &
[1] 17017
$ getpcaps $(pgrep find)
Capabilities for `17017': = cap_dac_read_search+ep
$ getpcaps $(pgrep sleep)
Capabilities for `17019': =
Cho những gì khả năng cấp, nó phù hợp với chính xác những gì bạn muốn. Tôi chưa kiểm tra kỹ xem find
có tính năng nào cho phép bạn đọc byte bên trong tệp hay không, nhưng các công cụ rõ ràng như LD_PRELOAD
các cuộc tấn công shim thư viện không nên hoạt động do bản chất của kiểm tra setuid trong Linux và các bit khả năng không nhận được được kế thừa bởi các tiến trình con hoặc (không giống như setuid thô) vì vậy đó là một phần thưởng khác.
Hãy nhớ rằng những gì bạn muốn làm sẽ gây ra những lo ngại về quyền riêng tư liên quan đến việc tạo hoặc truy cập tệp tạm thời và chương trình có thể được sử dụng làm cơ sở để thực hiện một nỗ lực leo thang điều kiện / đặc quyền chủng tộc (chống lại các chương trình tạo tên tệp nổi tiếng nhưng không kiểm tra bảo mật chính xác).
Ngoài ra, một số ứng dụng được viết kém có thể dựa vào siêu dữ liệu tệp hoặc cấu trúc cây như một cách để truyền đạt ý nghĩa hoặc ẩn dữ liệu. Điều này có thể gây ra việc phát hành thông tin bị hạn chế hoặc tiết lộ các tài liệu đặc quyền không được biết đến (bảo mật thông qua che khuất tôi biết, nhưng đây là điều mà các nhà cung cấp nguồn đóng đặc biệt thích làm, thật không may).
Do đó, hãy cẩn thận và cảnh giác khi thực hiện nó và hiểu rằng vẫn có rủi ro liên quan đến việc này ngay cả khi những điều rõ ràng không hoạt động.
Ồ, và tôi rất muốn xem liệu ai đó có bằng chứng về tấn công khái niệm sử dụng cơ chế này làm cơ sở cho sự leo thang đặc quyền trong các bình luận!