วิธีการหลอกลวง / เลียนแบบไดเรกทอรีที่ใช้โดยแอปพลิเคชันไบนารีเป็นไดเรกทอรีอื่น


9

สมมติว่ามีแอ็พพลิเคชันไบนารีที่เขียนข้อมูลไปยัง/tmpเสมอ

ฉันจะหลอก / จำลอง/tmpเพื่อประโยชน์ของไบนารีนี้เป็นไดเรกทอรีอื่น ๆ (เช่นhome/tmp) ได้อย่างไร

สมมติว่าฉันไม่มีวิธีแก้ไขไบนารีนี้เพื่อบังคับให้ใช้ไดเรกทอรีอื่น

คำตอบ:


11

คุณสามารถเรียกใช้โปรแกรมประยุกต์ในส่วนchrootสภาพแวดล้อมเช่นการประยุกต์ใช้เห็นไม่ได้เป็นจริง/ /คุณสร้างลำดับชั้นของระบบไฟล์ใหม่และเมานต์ ( --bind) ทุกอย่างที่คุณต้องการ จุดที่เกี่ยวข้องคือ: คุณสามารถติดจริง~/tmpไป/tmpในchrootสภาพแวดล้อม

แทนที่จะใช้chroot(ซึ่งต้องการสิทธิ์ผู้ใช้ขั้นสูง) คุณสามารถทำสิ่งเดียวกันกับคอนเทนเนอร์ Linux ( lxc) ฉันไม่คุ้นเคยlxcแต่เป็นกระบวนการผู้ใช้ทั่วไปกับระบบโฮสต์คุณไม่จำเป็นต้องเป็น superuser สำหรับการกำหนดค่าภายในคอนเทนเนอร์


คำตอบที่ดีฉันไม่เคยได้ยินchrootหรือlxcไม่สามารถทำสิ่งนี้ได้ นอกจากนี้ยังเป็นเรื่องที่ดีมากที่รู้ว่ามีวิธีการทำให้สำเร็จโดยไม่ต้องเป็นผู้ใช้ขั้นสูง
Nobilis

3
@Nobilis 98 upvotes ที่หายไปสำหรับสิ่งนี้ได้รับการยอมรับว่าเป็นคำตอบที่ดี ...
Hauke ​​Laging

2
ระวัง แต่ที่chrootต้องมีการตั้งค่าเพิ่มเติม (คุณจะเปลี่ยนทั้ง/ไม่เพียง แต่/tmpเพื่อให้การเข้าถึงใด ๆ เพื่อ/etc, /varฯลฯ ก็จะภายใน "คุก") และได้สร้างความกังวลด้านความปลอดภัยของตัวเอง (ที่ "จำคุก" โปรแกรมอาจ สามารถจัดการส่วนต่าง ๆ ของระบบไฟล์ซึ่งโดยปกติจะไม่เกินขีด จำกัด หากคุณไม่ระมัดระวังในการอนุญาตเมื่อตั้งค่าของปลอม/)
IMSoP

@IMSoP คุณจะอธิบายหรือไม่ว่า "อาจจะสามารถจัดการบางส่วนของระบบไฟล์ซึ่งโดยปกติแล้วจะมีข้อ จำกัด " ในรายละเอียดเพิ่มเติม?
Hauke ​​Laging

@HaukeLaging หาก/ไม่ จำกัด เฉพาะการเขียนใหม่rootผู้ใช้ "ที่ถูกจำคุก" สามารถสร้างหรือแทนที่ไฟล์ที่ดูเหมือนจะอยู่ในตำแหน่งของระบบหลักเช่น/etc/passwd; chrootนี้จากนั้นจะสามารถนำมาใช้สำหรับการเพิ่มสิทธิ์ที่จะไม่ออกไปข้างนอกที่เป็นไปได้ เซิร์ฟเวอร์ Linux FTP จำนวนมากซึ่งโดยปกติใช้chrootเพื่อซ่อนส่วนที่เหลือของระบบไฟล์ตอนนี้ปฏิเสธที่จะทำเช่นนั้นหากไดเรกทอรีนั้นสามารถเขียนได้โดยผู้ใช้ที่ไม่ใช่รูท
IMSoP

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