LINUX.ORG.RU

очередная уязвимость в linux kernel 2.6 (повышение привилегий)


0

0

Некий Joanna R. выложил в публичный доступ очередной local root exploit, позволяющий повысить пользовательские привилегии вплоть до root.
The code exploits a root race in /proc

В данный момент уязвимы все ядра 2.6.х, вплоть до последнего 2.6.17.4

В качестве временного workaround-а можно посоветовать отключить поддержку a.out в ядре (модуль binfmt_aout.ko) - это не даст сработать доступному в данный момент эксплоиту.

>>> новость + эксплоит



Проверено: Tima_ ()

cololo@sex:~> gcc h00lyshit.c -o h00lyshit h00lyshit.c:37:23: sys/prctl.h: No such file or directory h00lyshit.c:40:25: linux/a.out.h: No such file or directory h00lyshit.c:41:24: asm/unistd.h: No such file or directory h00lyshit.c: In function `exploit': h00lyshit.c:102: error: `MAP_ANONYMOUS' undeclared (first use in this function) h00lyshit.c:102: error: (Each undeclared identifier is reported only once h00lyshit.c:102: error: for each function it appears in.) h00lyshit.c:112: error: `PR_SET_DUMPABLE' undeclared (first use in this function) h00lyshit.c: In function `main': h00lyshit.c:161: error: invalid application of `sizeof' to incomplete type `exec' h00lyshit.c:162: error: `NMAGIC' undeclared (first use in this function) h00lyshit.c:162: error: `ex' has an incomplete type h00lyshit.c:163: error: `M_386' undeclared (first use in this function) h00lyshit.c:163: error: `ex' has an incomplete type h00lyshit.c:165: error: invalid use of undefined type `struct exec' h00lyshit.c:166: error: invalid use of undefined type `struct exec' h00lyshit.c:166: error: invalid application of `sizeof' to incomplete type `exec' h00lyshit.c:169: error: invalid application of `sizeof' to incomplete type `exec' h00lyshit.c:170: error: invalid application of `sizeof' to incomplete type `exec' h00lyshit.c:174: error: invalid application of `sizeof' to incomplete type `exec' h00lyshit.c: At top level: h00lyshit.c:44: error: storage size of `ex' isn't known

cololo@sex:~> uname -a FreeBSD sex.lan.xnet.nnov.ru 6.1-STABLE FreeBSD 6.1-STABLE #0: Thu Jul 13 20:02:40 MSD 2006 root@sex.lan.xnet.nnov.ru:/usr/obj/usr/src/sys/apocryph i386

тоже мне сплоит. даже не скомпилялся :(

anonymous
()
Ответ на: комментарий от anonymous

Вот радость bsd`шникам :) главное не вспоминать про 6 уязвимостей в 6-ке. Как только народ решил посмотреть, что они там накодили - сразу нашли кучу дыр...

anonymous
()

demon@dom spl % ./h00lyshit /home/install/StarCraft.iso

preparing trying to exploit /home/install/StarCraft.iso

sh-3.1$ wc -l /etc/shadow wc: /etc/shadow: Permission denied sh-3.1$ id uid=1000(demon) gid=100(users) groups=0(root),10(wheel),11(floppy),18(audio),19(cdrom),27(video),35(games),85(u sb),100(users),409(plugdev),1002(qemu) sh-3.1$

хммм.... ну выдает шелл, но не рутовый 2.6.17-ck1-r2

Marmirus ★★
()
Ответ на: комментарий от anonymous

> Da, ti prav: cerberus [20:13:52] $ uname -srvm OpenBSD 3.9 GENERIC#7 i386

Да, для OpenBSD удалось найти только достаточно старое сообщение о local root: http://www.linuxsecurity.com/content/view/103793/153/, это было четыре года назад. Но, если учесть медленные темпы развития (например, поддержка SMP появилась только в 2004 году: http://www.openbsd.org/36.html), есть большие сомнения в практической пользе от этого.

askh ★★★★
()

>есть большие сомнения в практической пользе от этого.

Praktikyjy kazdodnevno na: colo-server desktop laptop firewall dev-boxes (3xOS)

Vse 4to men nado - vse rabotajet.

anonymous
()
Ответ на: комментарий от anonymous

а ты попробуй в линух-эмуляции с подмаунченой linprocfs сплойт то для линуха а не для фри :)

Marmirus ★★
()
Ответ на: комментарий от anonymous

да, и фряха твоя дрява, ужо 3 патча под 6.1 пришло, БДИ!

:)

Marmirus ★★
()
Ответ на: комментарий от anonymous

> Vse 4to men nado - vse rabotajet.

Видимо кириллица не входит в число нужных тебе вещей?..

askh ★★★★
()

>Видимо кириллица не входит в число нужных тебе вещей?..

Podymaj eshe raz po4emy ja pishy na translit, a ne kirillicej.

anonymous
()

Вот жеж "эпидемия"... ни один сплоит толком не собирается, работает на каждой десятой тачке... когда, млять, будут вирусы типа МС-бластер, так чтобы по сети валил систему нафиг и с первого раза?! %)

Gharik
()

Хех, и еще и патч .17.5 устраняющий уязвимость был посчитан слишком круто решающим проблему и реверснут на nosuid,nosgid... Жесткий стеб :)

Gharik
()

НЕ РАБОТАЕТ:

emerge -pv hardened-sources

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-kernel/hardened-sources-2.6.16-r10 USE="-build -doc -symlink" 0 kB

Чего и вам желаю.

Ubnormal
()
Ответ на: комментарий от Ubnormal

Поставил 2.6.17.5, потом прочитал новость про эксплоит. Скомпилил, натравил на фильм. h00lyshit пошуршал немного и отвалился с выкриком Permission denied =) Если кому интересно, дистрибутив Debian Unstable, вот так вот =)

Danmer ★★
()

devil@saber  ~ 0
% ./h00lyshit /home/ftp/pub/gentooth/0.6/gentooth-0.6-build1.iso                                                                         0.01

preparing
trying to exploit /home/ftp/pub/gentooth/0.6/gentooth-0.6-build1.iso

mmap: Bad file descriptor
devil@saber  ~ 1
% uname -a                                                                                                                               0.15
Linux saber 2.6.11-hardened-r1 #2 Fri May 20 16:49:14 EEST 2005 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux


==================================================================

devil@kartman  ~/exploit 1
% ./h00lyshit /home/ftp/pub/gentooth/0.6/gentooth-0.6-build1.iso                                                                         2.29

preparing
trying to exploit /home/ftp/pub/gentooth/0.6/gentooth-0.6-build1.iso

failed: Permission denied
devil@kartman  ~/exploit 0
% uname -a                                                                                                                               0.53
Linux kartman 2.6.16-hardened-r10 #1 SMP Sat Jul 15 12:10:53 EEST 2006 i686 Pentium III (Katmai) GenuineIntel GNU/Linux

DeViL
()
Ответ на: комментарий от anonymous

> BSD на сервер, винды на десктоп, линупс в помойку.

А латентных бсдунов-вантузятников на кол.

anonymous
()
Ответ на: комментарий от Rubystar

> Можно ли без применения патча 2.6.17.5 обезопаситься от эксплойта?

nosuid при монтировании ебт, уже разжевали.

anonymous
()
Ответ на: комментарий от anonymous

Хе хе...

Пробовал монтировать /proc с nosuid,nodev,noexec, всё равно эксплойт на 2.6.x < 2.6.17.5 работает... Только не всегда...

Rubystar ★★
()

r00t@r00t:~$ uname -a
Linux r00t 2.6.16.20madebyR00T #1 Mon Jun 19 13:57:55 MSD 2006 x86_64 Intel(R) Celeron(R) CPU 2.80GHz GenuineIntel GNU/Linux
r00t@r00t:~$ cat /etc/fstab | grep proc
proc /proc proc defaults 0 0
r00t@r00t:~$ gcc -m32 ./h00lyshit.c -o ./h00lyshit
r00t@r00t:~$ ./h00lyshit ./windows.iso

preparing
trying to exploit ./windows.iso

failed: Exec format error
r00t@r00t:~$

Эм? Ну что я делаю "не так"??? Поддержка a.out в ядре есть.
Уже, блин, второй подряд эксплойт не фурычит!

P. S. Slamd64-current

R00T
()
Ответ на: комментарий от Rubystar

> Можно ли без применения патча 2.6.17.5 обезопаситься от эксплойта?

Можно его не запускать :-) Чтобы им воспользоваться, нужно ещё получить доступ на твой компьютер.

askh ★★★★
()
Ответ на: комментарий от R00T

> Поддержка a.out в ядре есть.

Что-то сильно сомневаюсь, учитывая:

> failed: Exec format error

echo -ne "\x08\x01\x64\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\x ff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x00\xb8\x 17\x00\x00\x00\x31\xdb\xcd\x80\x58\xbb\x3d\x00\x00\x00\x01\xc3\xb9\x2d\x00\x00\x 00\x01\xc1\x89\x19\x89\xca\x83\xc2\x04\xb8\x0b\x00\x00\x00\xcd\x80\xb8\x01\x00\x 00\x00\xcd\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 2f\x62\x69\x6e\x2f\x73\x68\x00" > test l chmod +x test

и запусти, если ядро скажет снова "failed: Exec format error", значит у тебя руки кривые и AOUT поддержка в ядре не настроена.

anonymous
()
Ответ на: комментарий от anonymous

Если все в ядре есть поддержка AOUT, то все должно выглядеть вот так:

$ echo -ne "\x08\x01\x64\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\x ff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x00\xb8\x 17\x00\x00\x00\x31\xdb\xcd\x80\x58\xbb\x3d\x00\x00\x00\x01\xc3\xb9\x2d\x00\x00\x 00\x01\xc1\x89\x19\x89\xca\x83\xc2\x04\xb8\x0b\x00\x00\x00\xcd\x80\xb8\x01\x00\x 00\x00\xcd\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 2f\x62\x69\x6e\x2f\x73\x68\x00" > xxx
$ chmod +x xxx
$ file xxx
xxx: Linux/i386 pure executable (NMAGIC)
$ ./xxx
sh-3.1$

ЗЫ
Форум может сожрать часть шеллкода

anonymous
()
Ответ на: комментарий от stassats

$ ./h00lyshit OOo_2.0.3_LinuxIntel_install_ru_infra_deb.tar.bz2

preparing trying to exploit OOo_2.0.3_LinuxIntel_install_ru_infra_deb.tar.bz2

failed: Exec format error

$ ls -la OOo_2.0.3_LinuxIntel_install_ru_infra_deb.tar.bz2

-rw-rw-rw- 1 root staff 158375860 2006-07-05 15:11 OOo_2.0.3_LinuxIntel_install_ru_infra_deb.tar.bz2

$ uname -a

Linux deb 2.6.12 ........... i686 GNU/Linux

не работает :(

anonymous
()
Ответ на: комментарий от jackill

> И фиксы доступны в течение суток, а не месяца. заметь: в течение суток С МОМЕНТА ОБНАРУЖЕНИЯ, а не с момента появления

pv4 ★★
()
Ответ на: комментарий от kott

>собирается, но не фурычит :)

Да я собрал, просто не работает у меня.

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>Коллеги-линуксоиды, а каким образом можно решить эту проблему с уязвимостями?

Ну судя по последним уязвимостям, selinux им мешает - не даются права, хоть убейся.

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>Podymaj eshe raz po4emy ja pishy na translit, a ne kirillicej.

Не смог настроить? Не знаешь как русские буквы на клаве мапятся? Не знаешь про сервис translit.ru?

jackill ★★★★★
()
Ответ на: комментарий от DeViL

>GrSec вестимо лучше ;)

Пока его тоже не начали копать. Я им когда-то пользовался. Но все же selinux поудобнее для меня, как для простого пользователя RH (заметь, им же пользуются в gentoo т debian).

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>Что-то сильно сомневаюсь, учитывая:

У меня была, ибо ядро я сам собирал и туда это впихивал. Просто x86_64 и наверное у того же R00T'а что-то еще.

jackill ★★★★★
()
Ответ на: комментарий от pv4

> И фиксы доступны в течение суток, а не месяца. заметь: в течение суток С МОМЕНТА ОБНАРУЖЕНИЯ, а не с момента появления

Естественно. ;)

jackill ★★★★★
()
Ответ на: комментарий от jackill

ну просто не нужно говорить BSD rip просто так из священных убеждений, ибо уже неоднократно мы вилели rip несколько другой, и не просто сейчас и за последние 3 дня...

anonymous
()

[pts/8 perf:~/mydwn] $ grep  CONFIG_BINFMT_AOUT /boot/config
CONFIG_BINFMT_AOUT=y
[pts/8 perf:~/mydwn] $ make h00lyshit
cc -O2 -fomit-frame-pointer -pipe -march=pentium2    h00lyshit.c   -o h00lyshit
[pts/8 perf:~/mydwn] $ ./h00lyshit alphamail-1.0.2.tar.gz

preparing
trying to exploit alphamail-1.0.2.tar.gz

sh-2.05b# id
uid=0(root) gid=501(perf) groups=10(wheel),501(perf),999(inet_users),9999(sec_officers)
sh-2.05b# uname -a
Linux NeuroNServeR 2.6.12 #1 Sun Dec 18 21:56:14 MSK 2005 i686 pentium2 i386 GNU/Linux

У епт ... :(
Ушел на kernel.org 

perf
()
Ответ на: комментарий от Scream

> а a.out еще кто-то юзает? ужжасная уязвимость...

А ты как думаешь? У Debian Sarge 3.1 в ядре включена поддержка CONFIG_BINFMT_AOUT, у Novell/SuSe(9.1, 10,10.1) - включена... Ubuntu, Mandriva, ASP - вполне возможно, Fedora как мимниму FC3 - опция выключена...

anonymous
()
Ответ на: комментарий от anonymous

>> а a.out еще кто-то юзает? ужжасная уязвимость... > >А ты как думаешь? У Debian Sarge 3.1 в ядре включена поддержка CONFIG_BINFMT_AOUT, у Novell/SuSe(9.1, 10,10.1) - включена... Ubuntu, Mandriva, ASP - вполне возможно, Fedora как мимниму FC3 - опция выключена...

хм, обычно установка дистра не заканчивается на копировании дефолтной системы на винт, или ядро пересобрать большая проблема?

Scream
()
Ответ на: комментарий от anonymous

>Re: очередная уязвимость в linux kernel 2.6 (повышение привилегий) > а a.out еще кто-то юзает? ужжасная уязвимость...

> А ты как думаешь? У Debian Sarge 3.1 в ядре включена поддержка >CONFIG_BINFMT_AOUT, у Novell/SuSe(9.1, 10,10.1) - включена... Ubuntu, >Mandriva, ASP - вполне возможно, Fedora как мимниму FC3 - опция >выключена...

Выключена в ASP эта поддержка.

anonymous
()
Ответ на: комментарий от DeViL

> GrSec вестимо лучше ;)

Но SElinux включен в ядро, а GRsec - внешняя разработка... не люблю я патчи всякие левые накладывать, хоть убей.

Gharik
()
Ответ на: комментарий от Scream

У меня гнусное подозрение, что можно в коде вместо a.out простой ELF-бинарник сочинить и так же в окружение затолкать.

WFrag ★★★★
()
Ответ на: комментарий от anonymous

> ну просто не нужно говорить BSD rip просто так из священных убеждений, ибо уже неоднократно мы вилели rip несколько другой, и не просто сейчас и за последние 3 дня...

Ты путаешь. Мы видели ошибки в системе, серьёзные, но такое случается в любой системе, и, судя по всему, они не затронули тех, кто заранее подумал о безопасности и использовал SELinux.

А когда говорят "BSD rip" имеют в виду сложные перспективы платформы. И с этим сложно что-то сделать - если броситься догонять Linux, то придётся торопиться, а значит пожертвовать стабильностью и безопасностью, а если двигаться прежними темпами, то есть риск серьёзно отстать от жизни. Отчасти возникновению такой ситуации способствовали сами разработчки *BSD - они периодически разделяли силы, когда разработчики Linux делали одну систему. Нужна портируемость? В мире BSD есть NetBSD, а Linux сам портирован на множество платформ. Нужна дополнительная безопасность? В мире BSD есть OpenBSD, а в Linux дополнительные средства встраиваются в оригинальную систему. Может всё-таки стоило развивать одну *BSD, тогда бы, скажем, FreeBSD могла похвастаться и кросплатформенностью, и повышенной безопасностью. Ну и плюс ошибка с символикой во FreeBSD - чертёнок может и смотрится забавно, но для многих эта символика неприемлема, соответственно вряд ли бизнес станет продвигать такую систему. Возможно и название сыргало свою роль - для тех, кто не знает, что такое BSD (то есть для большинства потенциальных пользователей), FreeBSD - это просто слово, которое сложно произнести и запомнить. В результате всего этого впереди оказался Linux.

Теоретически разработчики *BSD могут подумать и о ребрендинге (с логотипом такая попытка уже сделана), и о объединении систем, но есть ли в этом практический смысл? Нам нужна универсальная свободная система, и она есть. Если что-то не нравится, то проще и правильнее приложить усилия к совершенствованию Linux - лучше одна система, которая способна победить Windows, чем множество просто перспективных.

askh ★★★★
()
Ответ на: комментарий от Gharik

>когда, млять, будут вирусы типа МС-бластер, так чтобы по сети валил систему нафиг и с первого раза?! %)

когда линух будет стоять на > 50% десктопов

Reset ★★★★★
()
Ответ на: комментарий от Reset

Боюсь не дожить мне до такого счастья как "увеличение IQ большей части населения планеты хотя бы до 110"... наверное и 20-25% хватило бы :)

Gharik
()
Ответ на: комментарий от Gharik

>Но SElinux включен в ядро, а GRsec - внешняя разработка... не люблю я патчи всякие левые накладывать, хоть убей.

хм... зато приложения ненада патчить как в SELinux. мож сейчас и ненадо, но раньше требовалось.

DeViL
()
Ответ на: комментарий от Gharik

>> Можно ли без применения патча 2.6.17.5 обезопаситься от эксплойта?

> Можно, применив патч 2.6.17.6 %)

:-) 2.6.17.5 плюсадин!

Rubystar ★★
()
Ответ на: комментарий от DeViL

Отнюдь, функциональность подсасывается в glibc, а уж заблокировать запуск всякой шняги - эт вообще никакого патчинга не требует. Патчи - они на стадии устаканивания API и т.п...

Gharik
()
Ответ на: комментарий от anonymous

>ну просто не нужно говорить BSD rip просто так из священных убеждений, ибо уже неоднократно мы вилели rip несколько другой, и не просто сейчас и за последние 3 дня...

Ты не тот ..., который постоянно вместо коммента на нужное сообщение, отвечает на последнее (т.е. мое)?

jackill ★★★★★
()
Ответ на: комментарий от WFrag

>У меня гнусное подозрение, что можно в коде вместо a.out простой ELF-бинарник сочинить и так же в окружение затолкать.

Как видим, при системе мандатного доступа можно хоть обсочиняться.

jackill ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.