การสาธิตช่องโหว่บน Ubuntu 9.04


15

สำหรับชั้นเรียนเกี่ยวกับความปลอดภัยด้านไอทีฉันต้องการแสดงให้เห็นถึงการยกระดับสิทธิ์ให้กับนักเรียน เมื่อต้องการทำเช่นนั้นฉันได้ตรวจสอบexploit/linux/localรายการในกรอบ Metasploit ที่ค้นพบ (จากคนอื่น ๆ ) exploit/linux/local/sock_sendpageตั้งแต่เดือนสิงหาคม 2009

ฉันจะตั้งค่า VM กับ 32 บิตอูบุนตูเซิร์ฟเวอร์ 9.04 ( http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso ) ตั้งแต่เดือนเมษายน 2009 ให้ฉันuname -r 2.6.28-11-genericตามคำอธิบายของการใช้ประโยชน์

Linux 2.4 / 2.6 ทุกรุ่นตั้งแต่พฤษภาคม 2001 เชื่อว่าจะได้รับผลกระทบ: 2.4.4 ขึ้นไปและรวมถึง 2.4.37.4; 2.6.0 ขึ้นไปและรวมถึง 2.6.30.4

ดังนั้นดูเหมือนว่าเซิร์ฟเวอร์ Ubuntu ที่ฉันตั้งค่าควรเหมาะสำหรับการสาธิต อย่างไรก็ตามฉันไม่สามารถทำงานได้

ฉันเพิ่มผู้ใช้ (ปกติ) บนเซิร์ฟเวอร์และการเข้าถึง SSH ทำงานได้ จากภายใน Metasploit auxiliary/scanner/ssh/ssh_loginกรอบฉันสามารถสร้างเซสชั่นโดยใช้ อย่างไรก็ตามเมื่อฉันใช้ประโยชน์จากฉันได้รับ

[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)

[*] Exploit completed, but no session was created.

ฉันไม่ได้รับข้อมูลเพิ่มเติมใด ๆ แม้กระทั่งเมื่อตั้งค่าDEBUG_EXPLOITเป็นจริง /tmpคือ writabe, จากภายใน Metasploit SSH session:

$ sessions -c "touch /tmp/test.txt"
[*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted])

$ sessions -c "ls -l /tmp"
[*] Running 'ls -l /tmp' on shell session 1 ([redacted])

total 0

-rw-r--r-- 1 [redacted] [redacted] 0 2016-03-28 09:44 test.txt

ฉันพยายามตั้งค่าWriteableDirไดเรกทอรีหลักของผู้ใช้บนเซิร์ฟเวอร์ แต่ไม่มีการเปลี่ยนแปลงใด ๆ ฉันหายไปนี่อะไร เซิร์ฟเวอร์ Ubuntu รุ่นนี้ (ที่ฉันไม่ได้ตั้งใจปรับปรุง!) ไม่มีความเสี่ยงหรือไม่?


อย่างน้อยที่สุดคุณควรตรวจสอบบันทึกของ VM
Klaatu von Schlacker

@KlaatuvonSchlacker: ฉันกำลังมองหาอะไรกันแน่? ฉันเพิ่งใช้ประโยชน์จากมันอีกครั้งและไม่มีการเพิ่มรายการใหม่ลงในบันทึกของ VM
Andreas Unterweger

คำตอบ:


16

รีลีส 9.04 ได้รับการสนับสนุนจนถึง 23 ตุลาคม 2010 ช่องโหว่ที่คุณพบมีการรายงานในเดือนสิงหาคม 2009 ดูเหมือนว่าสมเหตุสมผลเนื่องจากตั้งแต่รีลีสยังคงเป็นปัจจุบันและได้รับการสนับสนุนในเวลานั้น ISO ได้รับการแก้ไขและสิ่งที่คุณดาวน์โหลดเป็นรุ่นที่ ไม่มีช่องโหว่อีกต่อไป

นอกจากนี้คุณดูเหมือนจะแสดงให้เห็นอย่างชัดเจนว่ามันไม่ได้มีช่องโหว่ ท้ายที่สุดคุณลองใช้ประโยชน์และดูเหมือนว่าจะล้มเหลว

ทำไมคุณไม่ลองใช้ช่องโหว่ที่ใหม่กว่านี้? ตัวอย่างเช่นCVE-2013-2094ซึ่งควรมีผลกับ Ubuntuเช่นกัน


ดูเหมือนจะไม่เป็นโมดูล Metasploit สำหรับ CVE-2013-2094 มีการหาประโยชน์อื่น ๆ จากโมดูล Metasploit ที่อาจใช้งานได้หรือไม่ ใช้ประโยชน์จาก linux / / / pkexec ท้องถิ่นจาก 2011 ดูเหมือนมีแนวโน้ม แต่ให้ผลเช่นเดียวกับการใช้ประโยชน์ / Linux / ท้องถิ่น / sock_sendpage
Andreas Unterweger

@AndreasUnterweger โอ้ขอโทษฉันไม่รู้ด้วยซ้ำว่าไม่มีโมดูล ฉันเพิ่งพบว่ามีการสุ่มโดยค้นหา "การเพิ่มสิทธิพิเศษ" สำหรับpkexecประโยชน์ที่คุณมีการตรวจสอบรุ่นของlibpolkit-backend-1? 0.94-1ubuntu1.1หน้าเว็บที่คุณเชื่อมโยงไปยังระบุว่าช่องโหว่ดังกล่าวต้องใช้รุ่นที่เก่ากว่า
terdon

ตามdpkg -s libpolkit2เวอร์ชั่นที่ติดตั้ง0.9-2ubuntu1ไว้
Andreas Unterweger

@AndreasUnterweger ในกรณีนั้นฉันไม่มีความคิด ขอโทษ คุณอาจจะดีกว่าที่จะโพสต์คำถามเกี่ยวกับความปลอดภัยของข้อมูลโดยถามถึงการใช้ประโยชน์จากการเพิ่มระดับสิทธิพิเศษและการรวมกันของการแจกจ่ายที่เป็นที่รู้จักในการทำงาน
terdon

@AndreasUnterweger และThorbjørnRavnAndersenโปรดใช้การสนทนานี้เพื่อแชท ฉันย้ายความคิดเห็นก่อนหน้าของคุณไปที่นั่นแล้ว
terdon

1

สิ่งนี้ไม่ได้ตอบคำถามเฉพาะของคุณ แต่จะให้ทางเลือกส่วนตัวเพิ่มเติมแก่คุณในการแสดงนักเรียนของคุณ ...

คุณอาจต้องการพิจารณาการกำหนดค่าพลาดสองผู้ดูแลระบบต่อไปนี้ซึ่งอาจนำไปสู่ ​​priv esc ใน 'ระวัง (มีหลายวิธีที่จะพลาดการกำหนดค่ากล่อง' ระวัง 'ที่สามารถอนุญาต priv esc ได้ดังนั้นโปรดพิจารณาสิ่งนี้ด้วยความอยากอาหาร) ....

  1. suid และ guid ไบนารีที่เป็นเจ้าของโดยกลุ่ม root / root ( find / -uid 0 -perm -4000 -type f 2>/dev/nullและfind / -uid 0 -perm -2000 -type f 2>/dev/null) และดูว่าพวกเขาเป็นโลกที่เขียนได้เพื่อให้ผู้ใช้สิทธิ์ต่ำในการเปลี่ยนแปลงพวกเขา; โฟลเดอร์ที่พวกเขามีอยู่นั้นสามารถเขียนได้โดยผู้ใช้ที่มีสิทธิ์ต่ำของคุณ - สำหรับการฉีดเส้นทางของไลบรารีที่เป็นไปได้ สิ่งที่เกี่ยวกับห้องสมุดที่ใช้ - เป็นสิ่งที่สามารถเปลี่ยนแปลงได้: ตรวจสอบค่าของส่วนหัวใด ๆDT_RPATHและDT_RUNPATHELF ภายในไบนารีโดยใช้หนึ่งในคำสั่งต่อไปนี้:

    • objdump -x ...
    • readelf -a ...
    • scanelf (จาก PaX)
    • elfdump (จากดวงอาทิตย์)
    • readelf -a binary | grep PATH
  2. sudoers ข้อบกพร่อง

    • NOPASSWD - ผู้โจมตีในพื้นที่สามารถใช้การเข้าถึงนี้เพื่อเพิ่มสิทธิ์ของพวกเขาภายในระบบปฏิบัติการเมื่อผู้ใช้ลืมล็อคหน้าจอ

    • ไม่มีไฟล์ปฏิบัติการใน Sudoers - ไฟล์ปฏิบัติการบาง/etc/sudoersไฟล์ไม่มีอยู่ หากสร้างไฟล์เรียกทำงานไฟล์เหล่านั้นสามารถรันผ่าน sudo ในฐานะรูทซึ่งอนุญาตให้มีการเพิ่มระดับสิทธิ์

    • Orphaned Sudoers Entries - /etc/sudoersไฟล์อาจมีจำนวนรายการที่ถูกโยงถึงซึ่งไม่มีบัญชีที่สอดคล้องกันที่กำหนดค่าใน/etc/passwdไฟล์ หากผู้ใช้ถูกสร้างขึ้นด้วยชื่อที่ถูกกำพร้าหนึ่งชื่อผู้ใช้จะมีวิธีเพิ่มสิทธิ์ให้กับการเข้าถึงรูททั้งหมด

    • โปรแกรมบางอย่างไม่ควรจะอยู่ใน sudo - เช่นviการใช้งาน:eหรือCtrl o และการใช้งานในการเข้าถึง:w/etc/shadow

    • ไม่ถูกต้องคิดออกคำสั่ง / ไม่ดีที่ใช้ใน sudoers ไฟล์ - ฉันมักจะเห็นhttpdใน sudoers - จึงพยายามเป็นผู้ใช้ priv ต่ำที่มีการเข้าถึง sudo เพื่อให้ทำงานได้เพียงแค่ว่าคำสั่ง ( sudo -lหรือsudo -llจะแสดงสิ่งที่ผู้ใช้สามารถทำ): sudo /usr/bin/httpd -t /etc/shadowและดูที่ข้อผิดพลาด

    • ไฟล์ perms ของคำสั่งและไฟล์ที่กล่าวถึงใน sudoers อ่อนแอ - ดูย่อหน้าก่อนหน้าของฉันบน suid และ guid bit ไบนารีที่ root เป็นเจ้าของ


btw คุณสามารถลองใช้รหัสต้นฉบับของ Spender สำหรับโมดูล metasploit ในกรณีที่โมดูล metasploit นั้นค่อนข้างไม่ถูกต้อง: grsecurity.net/~spender/exploits
Richard Braganza

ขอบคุณมากที่ทำรายการเหล่านี้ อย่างไรก็ตามฉันกลัวว่านักเรียนทั้งสองกลุ่มจะต้องการข้อมูลพื้นฐานและบริบทมากเกินไปจากนักเรียน - พวกเขาแทบจะไม่รู้จัก Linux ในจุดนี้ ฉันต้องการแสดงให้พวกเขาเห็นว่าการเพิ่มระดับสิทธิพิเศษเป็นเรื่องจริงและพวกเขาควรแก้ไขระบบที่พวกเขา / จะต้องรับผิดชอบ กระแทกแดกดันฉันไม่สามารถแสดงให้เห็นถึงการเพิ่มสิทธิพิเศษตามที่อธิบายไว้ข้างต้น แก้ไข: ฉันจะดูรหัสของ Spender แต่ขณะนี้ใกล้หมดขออภัย ขอบคุณมากสำหรับลิงค์
Andreas Unterweger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.