รันไบนารีที่ root เป็นเจ้าของโดยไม่มี sudo


12

ฉันมีคำถามในการสัมภาษณ์งาน:

วิธีที่คุณสามารถรัน (รัน) โปรแกรมกับผู้ใช้user1โดยไม่มีsudoสิทธิ์และไม่สามารถเข้าถึงrootบัญชี:

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

คำตอบ:


17

เนื่องจากคุณได้รับอนุญาตให้อ่าน:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

แน่นอนว่าสิ่งนี้จะไม่ให้สิทธิ์คุณเพิ่มโดยอัตโนมัติอย่างน่าอัศจรรย์ คุณจะยังคงดำเนินการไบนารีนั้นในฐานะผู้ใช้ปกติ


4
@ user2555595 ฉันกลัวว่าคุณผิด ลองลบไฟล์ execute บิตบนไฟล์ที่คุณเป็นเจ้าของและดำเนินการ แม้แต่รูทจะได้รับ "สิทธิ์ถูกปฏิเสธ" เมื่อทำการเรียกใช้ไฟล์โดยไม่ได้ตั้งค่าบิตเรียกใช้งาน
โจเซฟอาร์

คุณพูดถูกต้องขอบคุณสำหรับข้อมูล
user2555595

5
@ user2555595 ใช้ได้กับสคริปต์เท่านั้นไม่ใช่ไบนารี เฉพาะเจาะจงมากขึ้นเท่านั้นbashหรือ POSIX เชลล์สคริปต์หากbashเรียกใช้เป็นล่าม
โทมัสนีแมน

ขอบคุณสำหรับข้อมูลของคุณผู้คน! ขอให้มีความสุขมาก ๆ ในวันนี้!
inivanoff1

2
@ inivanoff1 โปรดอย่าลืมทำเครื่องหมายหนึ่งในคำตอบ "ยอมรับ" เพื่อให้ผู้คนรู้ว่าคำถามนี้ได้รับการแก้ไขแล้ว
โจเซฟอาร์

20

คุณสามารถใช้ตัวเชื่อมโยง / ตัวโหลดเดอร์ของ Linux โดยตรงเพื่อรันไฟล์เรียกทำงานของELFที่คุณได้อ่าน แต่ไม่ได้ใช้สิทธิ์:

$ /lib/ld-linux.so.* /home/user1/binary_program

เมื่อเรียกใช้งาน ELF ได้ตามปกติแล้วตัวเชื่อมโยงแบบไดนามิกซึ่งถูกเก็บไว้ใน.interpส่วนของรหัสโปรแกรมจะถูกใช้ เหตุผลในการเรียกใช้ตัวเชื่อมโยงแบบไดนามิกโดยตรง (สัมภาษณ์งานนอกสถานที่) รวมถึงการส่งตัวเลือกบรรทัดคำสั่งเพื่อแก้ไขพฤติกรรมของมัน

โปรดทราบว่าสถานที่จริงของลิงเกอร์แบบไดนามิกมากอาจขึ้นอยู่กับสภาพแวดล้อมเช่นใน 64 /lib64/ld-linux-x86-64.so.2บิตอูบุนตูลิงเกอร์ที่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.