ตามที่ 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).
สิ่งนี้ใช้ได้สำหรับฉัน (บรรทัดที่ขึ้นต้นด้วย '#' คือรูทส่วนที่มี '$' ไม่ใช่รูท) ในกรณีนี้ผู้ใช้ที่ไม่ใช่รูทอยู่ในwheel
กลุ่ม
# 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': =
ด้วยความสามารถที่ได้รับมันจึงสอดคล้องกับสิ่งที่คุณต้องการ ฉันไม่ได้ตรวจสอบอย่างละเอียดถี่ถ้วนว่าfind
มีคุณสมบัติที่ช่วยให้คุณอ่านไบต์ภายในไฟล์หรือไม่ แต่สิ่งที่ชัดเจนเช่นLD_PRELOAD
และการโจมตี shim ของไลบรารีไม่ควรทำงานเนื่องจากลักษณะของการตรวจสอบ setuid ใน Linux และบิตความสามารถไม่ได้รับ สืบทอดโดยกระบวนการลูก (ไม่เหมือน setuid ดิบ) ดังนั้นจึงเป็นโบนัสอีกอย่าง
โปรดจำไว้ว่าสิ่งที่คุณต้องการจะเพิ่มข้อกังวลเกี่ยวกับข้อมูลส่วนบุคคลที่เป็นไปได้เกี่ยวกับการสร้างหรือการเข้าถึงไฟล์ชั่วคราวและโปรแกรมสามารถใช้เป็นพื้นฐานในการติดตั้งเงื่อนไขการแข่งขัน / การเพิ่มระดับสิทธิ์ (เทียบกับโปรแกรมที่สร้างชื่อไฟล์ แต่ไม่ทำการตรวจสอบความปลอดภัยที่ถูกต้อง)
นอกจากนี้แอปพลิเคชันที่เขียนไม่ดีบางตัวอาจอาศัยข้อมูลเมตาของไฟล์หรือโครงสร้างต้นไม้เป็นวิธีการสื่อความหมายหรือซ่อนข้อมูล นี่อาจทำให้เกิดการเปิดเผยข้อมูลที่ถูก จำกัด หรือเปิดเผยเอกสารที่ไม่ได้รับอนุญาตเป็นพิเศษ (การรักษาความปลอดภัยผ่านความสับสนที่ฉันรู้
ดังนั้นระวังและระมัดระวังเกี่ยวกับการทำและเข้าใจว่ายังมีความเสี่ยงที่เกี่ยวข้องกับสิ่งนี้แม้ว่าสิ่งที่ชัดเจนไม่ทำงาน
โอ้และฉันสนใจที่จะดูว่ามีใครบางคนมีหลักฐานการโจมตีแนวคิดซึ่งใช้กลไกนี้เป็นพื้นฐานสำหรับการยกระดับสิทธิ์ในการแสดงความคิดเห็น!