ฉันมีคำถามในการสัมภาษณ์งาน:
วิธีที่คุณสามารถรัน (รัน) โปรแกรมกับผู้ใช้
user1
โดยไม่มีsudo
สิทธิ์และไม่สามารถเข้าถึงroot
บัญชี:$ whoami user1 $ ls -l ~/binary_program -rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
ฉันมีคำถามในการสัมภาษณ์งาน:
วิธีที่คุณสามารถรัน (รัน) โปรแกรมกับผู้ใช้
user1
โดยไม่มีsudo
สิทธิ์และไม่สามารถเข้าถึงroot
บัญชี:$ whoami user1 $ ls -l ~/binary_program -rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
คำตอบ:
เนื่องจากคุณได้รับอนุญาตให้อ่าน:
$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary
แน่นอนว่าสิ่งนี้จะไม่ให้สิทธิ์คุณเพิ่มโดยอัตโนมัติอย่างน่าอัศจรรย์ คุณจะยังคงดำเนินการไบนารีนั้นในฐานะผู้ใช้ปกติ
bash
หรือ POSIX เชลล์สคริปต์หากbash
เรียกใช้เป็นล่าม
คุณสามารถใช้ตัวเชื่อมโยง / ตัวโหลดเดอร์ของ Linux โดยตรงเพื่อรันไฟล์เรียกทำงานของELFที่คุณได้อ่าน แต่ไม่ได้ใช้สิทธิ์:
$ /lib/ld-linux.so.* /home/user1/binary_program
เมื่อเรียกใช้งาน ELF ได้ตามปกติแล้วตัวเชื่อมโยงแบบไดนามิกซึ่งถูกเก็บไว้ใน.interp
ส่วนของรหัสโปรแกรมจะถูกใช้ เหตุผลในการเรียกใช้ตัวเชื่อมโยงแบบไดนามิกโดยตรง (สัมภาษณ์งานนอกสถานที่) รวมถึงการส่งตัวเลือกบรรทัดคำสั่งเพื่อแก้ไขพฤติกรรมของมัน
โปรดทราบว่าสถานที่จริงของลิงเกอร์แบบไดนามิกมากอาจขึ้นอยู่กับสภาพแวดล้อมเช่นใน 64 /lib64/ld-linux-x86-64.so.2
บิตอูบุนตูลิงเกอร์ที่