ใช้ประโยชน์จากช่องโหว่ Remote Command Execution ใน EasyNAS
ใช้ประโยชน์จากช่องโหว่และรับสิทธิ์รูท (CVE-2023–0830)
การแนะนำ:
เมื่อเร็ว ๆ นี้ ฉันค้นพบช่องโหว่ซึ่งอยู่ในสคริปต์การสำรองและกู้คืนข้อมูลที่ใช้ใน EasyNAS ซึ่งเป็นโซลูชันที่เก็บข้อมูลบนเครือข่าย (NAS) แบบโอเพ่นซอร์สยอดนิยม CVE-2023–0830 เผยแพร่บนhttps://vuldb.com/?id.220950. ช่องโหว่ซึ่งอนุญาตให้ดำเนินการคำสั่งโดยพลการด้วยสิทธิ์ของรูท อาจถูกโจมตีโดยผู้โจมตีเพื่อลบไฟล์ระบบที่สำคัญ ปรับเปลี่ยนหรือขโมยข้อมูลที่ละเอียดอ่อน หรือแม้กระทั่งเข้าถึงระบบโดยไม่ได้รับอนุญาต ในบล็อกโพสต์นี้ ฉันจะแสดงให้เห็นว่าผู้โจมตีสามารถใช้ช่องโหว่นี้ได้อย่างไรโดยสร้างคำขอ GET ที่เป็นอันตรายไปยัง WebUI ของระบบ EasyNAS และเราจะแสดงรหัสสคริปต์ที่มีช่องโหว่และวิธีบรรเทาปัญหา
รายละเอียดของช่องโหว่:
ช่องโหว่นี้มีอยู่ในสคริปต์การสำรองและกู้คืน ซึ่งใช้เพื่อสร้างและกู้คืนข้อมูลสำรองของระบบ EasyNAS สคริปต์เขียนด้วย Perl และดำเนินการผ่านเว็บอินเตอร์เฟสของระบบ EasyNAS ช่องโหว่อยู่ที่การใช้ฟังก์ชันระบบเพื่อดำเนินการคำสั่งด้วยอินพุตที่ผู้ใช้เป็นผู้ป้อน ต่อไปนี้เป็นรหัสสคริปต์ที่มีช่องโหว่:
$rc=system("/usr/bin/sudo /usr/bin/tar cvf $mount_dir/$vol/$file @config_files > /dev/null" );
/usr/bin/sudo /usr/bin/tar cvf $mount_dir/$vol/$file @config_files > /dev/null
ตัวอย่างเช่น ผู้โจมตีสามารถใช้คำขอ GET ต่อไปนี้:
/easynas/backup.pl?action=backup&menu=none&.submit=Backup&name=%7cwhoami%7c%7ca+%23
การลดผลกระทบ:
ช่องโหว่นี้สามารถบรรเทาได้ด้วยการตรวจสอบความถูกต้องและฆ่าเชื้ออินพุตของผู้ใช้อย่างเหมาะสม วิธีหนึ่งในการทำเช่นนี้คือการใช้วิธีพารามิเตอร์ในตัวของโมดูล Perl CGI.pm ซึ่งจะลบช่องว่างนำหน้าหรือต่อท้ายและอักขระควบคุมออกจากอินพุตของผู้ใช้ นอกจากนี้ สามารถใช้นิพจน์ทั่วไปเพื่อตรวจสอบการป้อนข้อมูลของผู้ใช้และตรวจสอบให้แน่ใจว่าประกอบด้วยอักขระที่อนุญาตเท่านั้น
อีกวิธีในการบรรเทาช่องโหว่นี้คือการใช้โมดูล Perl Taint.pm ซึ่งสามารถใช้เพื่อเปิดใช้งานโหมดเทนต์ในสคริปต์ โหมด Taint ช่วยให้มั่นใจว่าอินพุตที่ผู้ใช้ระบุทั้งหมดนั้น "เสีย" ซึ่งหมายความว่าถือว่าไม่ปลอดภัยที่จะใช้ในระบบ
บทสรุป:
ช่องโหว่นี้ในสคริปต์การสำรองและกู้คืนข้อมูลสำหรับ EasyNAS เป็นปัญหาร้ายแรงที่อาจนำไปสู่การเข้าถึงระบบโดยไม่ได้รับอนุญาต สิ่งสำคัญคือต้องดำเนินการตามขั้นตอนที่จำเป็นเพื่อปกป้องระบบ EasyNAS ของคุณและตระหนักถึงช่องโหว่นี้ ช่องโหว่นี้สามารถบรรเทาได้ด้วยการตรวจสอบความถูกต้องและฆ่าเชื้ออินพุตของผู้ใช้อย่างเหมาะสม หลีกเลี่ยงการใช้ "sudo" ในสคริปต์ และใช้คำสั่ง "su" นี่เป็นการเตือนว่าสิ่งสำคัญคือต้องอัปเดตซอฟต์แวร์อยู่เสมอและตระหนักถึงช่องโหว่ต่างๆ แม้แต่ซอฟต์แวร์โอเพ่นซอร์ส เช่น EasyNAS ก็อาจมีปัญหาด้านความปลอดภัยได้ สิ่งสำคัญคือต้องตระหนักถึงความเสี่ยงที่อาจเกิดขึ้นและดำเนินการตามขั้นตอนที่จำเป็นเพื่อปกป้องระบบของคุณ
ใช้ประโยชน์:
EasyNAS 1.1.0 — ช่องโหว่คำสั่ง OS ที่ได้รับการรับรองความถูกต้อง (github.com)





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)