LINUX.ORG.RU

Повышение привилегий в vmsplice

 , ,


0

0

Недостаточно скрупулезная проверка входных данных в системном вызове vmsplice позволяет обычному пользователю повысить привилегии до root-а на ядрах 2.6.17-2.6.24.1.

>>> Эксплойт

>>> Патч

>>> Обсуждение на /.

>>> LOR Talks

Update: Вышли новые версии ядер: 2.6.24.2, 2.6.23.16 и 2.6.22.18 с исправленной ошибкой.

>>> Подробности

★★★★

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

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

на слаке это 12 ой .. работает нет .. кто проверял ??

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

> rbash рулит. Не давать пользователям выполнять бинарники вне переменной PATH и все.

anonymous@fucksecurity:~$ rbash
anonymous@fucksecurity:~$ LD_PRELOAD=$HOME/test/fun1.so id
rbash pwned [OK]
evil getuid() executing...
launching r00t xploit ...
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7f67000 .. 0xb7f99000
[+] root
rbash pwned [OK]
evil getuid() executing...
launching r00t xploit ...
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[-] !@#$
root@fucksecurity:~# unset LD_PRELOAD
root@fucksecurity:~# id
uid=0(root) gid=0(root) группы=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(p lugdev),100(users),104(scanner),113(lpadmin),115(powerdev),117(admin),119(fuse), 125(vboxusers),128(uml-net),1000(anonymous)
root@fucksecurity:~# wc -l /etc/shadow
44 /etc/shadow
root@fucksecurity:~# uname -r
2.6.24-5-generic

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

> Этот не заработает. Там код x86.

jessica_biel_naked_in_my_bed.c:
...
#elif defined (__x86_64__)
...

ы?

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

Не забудь sysctl -w kernel.panic=1 чтобы они там несильно волновались если после сплоита машина упадет в kernel panic(обычно падает при ребуте).

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

> я собрал на мандриве, потом залил на RHEL и запустил

Спалился, хакер. А я-то думаю чего у меня RHEL глючит...

// C любовью и вазелином,
// Ваш админ и служба безопасности

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

In the vserver-enabled kernels, a missing access check on certain symlinks in /proc enabled local attackers to access resources in other vservers (CVE-2008-0163).

особенно это в описалове весело..

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

если комп твой - да а если хостинг ?

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

>имхо local root настолько тривиально, что я не вижу никакого смысла в данном эксплоите.

я понимаю, локалхост рулид :)

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

$ ./test
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x2b7ee6634000 .. 0x2b7ee6666000
[-] vmsplice: Bad address

$ uname -a
Linux server2 2.6.18-6-amd64 #1 SMP Sun Feb 10 17:50:19 UTC 2008 x86_64 GNU/Linux

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

c 2.6.24.2 оба не работают. проверено ;) lt@light:~/eee$ ./hack1 ----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] mmap: 0x0 .. 0x1000 [+] page: 0x0 [+] page: 0x20 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4020 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0xb7dd4000 .. 0xb7e06000 [-] vmsplice: Bad address lt@light:~/eee$ ./hack2 ----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] addr: 0xc0115135 [-] wtf lt@light:~/eee$

dmit8815
()

пашет... Fedora 8
Linux fedora 2.6.23.14-115.fc8 #1 SMP Mon Jan 21 14:20:50 EST 2008 i686 i686 i386 GNU/Linux

kbps ★★★
()

Народ, не проверяйте на hardened gentoo. Там рутовую консоль получить не получилось, сервак просто повис.

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

у меня сработало, после чего комп повис.

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

hardened gentoo рулит. На нем этот эксплоит всего лишь вызвал перезагрузку. Активированы PaX и grsecurity. Мандатной защиты нет.

KiberGus
()

проверил на нескольких хостах, редхат, сентос, дебиан

везде работает

но если смонтировать юзерские каталоги в nosuid то не работает

вывод = не пренебрегаем опцией nosuid на юзермоунтах

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

У меня отлично сработал на nosuid-ном /home. Причем покоруптил память, по ходу, так что при пересборке ядра все повисло к такой-то матери.

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

Гы ;)


ss@ACER:~$ LD_PRELOAD=`echo -e $HOME/vmsplice.so` id
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7cd0000 .. 0xb7d02000
[-] vmsplice: Bad address
ss@ACER:~$ sudo cp ~/kill_preload/kill_preload.so /lib/kill_preload.so; sudo cp ~/kill_preload/ld.so.preload /etc/ld.so.preload;
ss@ACER:~$ LD_PRELOAD=`echo -e $HOME/vmsplice.so` id
Kill LD_PRELOAD=/home/ss/vmsplice.so


ХакИры идут влес ;)

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

gentoo-sources от 03:05 ночи уже патченое. :)

hardened-sources пока нет, но и шелла на hardened не даёт, просто ooops и segmentation fault направо и налево до ребута.

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

>все пашет, уже бороздю просторы .mil и .gov

echo 127.0.0.1 vasia.pupkin.mil > /etc/hosts

;)

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

>на серверах с 2.4 полет нормальный

Ну если ты его на 2.4 запускал - тады ой :)

ЗЫ: 2.6.16.xxx - вот наш выбор ;)

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

а у меня что то не работает, может ядро какое то не то...

Microsoft Windows XP [Версия 5.1.2600] (С) Корпорация Майкрософт, 1985-2001.

C:\>uname -a WindowsNT default 1 5 x86

C:\>

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

> 2 строчки кода и новая extraversion ;)

Их там изрядно больше. Пропатчено еще кое-чего, просто в changelog забыли|забили внести.

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

>Их там изрядно больше.  Пропатчено еще кое-чего, просто в changelog забыли|забили внести

 Makefile           1 +       1 -       0 !
 fs/splice.c        1 +       1 -       0 !
 2 files changed, 2 insertions(+), 2 deletions(-)


http://kernel.org/diff/diffview.cgi?file=%2Fpub%2Flinux%2Fkernel%2Fv2.6%2Fincr%
2Fpatch-2.6.24.1-2.bz2



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

Круто! Намного удобнее и быстрее чем su + password

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

> ХакИры идут влес ;)

И там устраивают засаду на БизАпасснИкоФФ, потому что остались еще пара фокусов в загашнике и одним LD_PRELOAD здесь не отделаться. ;)

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

забавно, хоть ненадолго красноглазые от коментов "bsd-rip" будут отвлечены, патча свои мегоядра. p.s. дебиан eatch (или кактам) 2.6.18.5-vserver-686 #1 SMP работает;-)

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

Вы меня огорчаете. А что мешает обьявить эту переменную недоступной, реадонли. Ну чесс слово, как маленькие дети.

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

А вот и засада:

anonymous@fucksecurity:~$ rbash
anonymous@fucksecurity:~$ cd /etc
rbash: cd: restricted
anonymous@fucksecurity:~$ cd /usr/bin
rbash: cd: restricted
anonymous@fucksecurity:~$ ./hello
rbash: ./hello: restricted: cannot specify `/' in command names
anonymous@fucksecurity:~$ LD_AUDIT=$HOME/evil.so id
sh-3.1$ ./hello
Enter Your Name: anonymous
Hello anonymous
sh-3.1$ cd /etc/
sh-3.1$ cd /usr/bin
sh-3.1$ ./id
uid=1000(anonymous) gid=1000(anonymous) groups=1000(anonymous)
sh-3.1$ echo rbash rulez|sed s/rulez/pwned/
rbash pwned

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

# grep typeset /etc/rprofile
typeset -xr EDITOR
typeset -xr DISPLAY HISTFILE HISTSIZE HISTFILESIZE HOME IFS INPUTRC PAGER TMOUT LOGNAME USER
typeset -xr LD_LIBRARY_PATH LD_AOUT_LIBRARY_PATH LD_NOWARN LD_KEEPDIR LD_AOUT_PRELOAD LD_PRELOAD
typeset -xr BASH BASH_ARGC BASH_ARGV BASH_LINENO BASH_SOURCE BASH_VERSION
enable -n typeset
# grep enable /etc/rprofile

#enable -n set
#enable -n export
enable -n unset
enable -n readonly
enable -n declare
enable -n typeset
enable -n kill
enable -n exec
enable -n eval
enable -n shopt
enable -n enable


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

> Вы меня огорчаете. А что мешает обьявить эту переменную недоступной, реадонли. Ну чесс слово, как маленькие дети.

А вы меня умиляете неподкупной детской наивностью. Потому что для хитрых прописывальщиков LD_PRELOAD в readonly есть целый спектр болтов с резьбой разного диаметра и конфигурации(см выше LD_AUDIT). ;)

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

> Туда же добавить LD_AUDIT и т.д.

Да вы только что об этой фишке узнали. Так что не надо тут строит из себя гуру. ;) Огласите весь список "и т.д.", а мы найдем что еще бахнуть. ;)

anonymous
()

Довольно игтересно. У меня этот экспоит не сработал, так как стоит ядро 2.6.23-gentoo-r8. Пробовал на 2.6.23-gentoo-r6 - работает прекрасно.

У меня все роутеры и хостинговые сервера крутятся на Hardened ядрах.
Протестировал на 2.6.22-hardened-r8:

Эксплоит не работает. В логах вот что:

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: PAX: suspicious general protection fault: 0000 [#7]

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: SMP

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: CPU:    0

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: EIP:    0060:[<0004ed09>]    Tainted: G    B  VLI

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: EFLAGS: 00010202   (2.6.22-hardened-r8 #2)

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: eax: 00000000   ebx: dc714a00   ecx: dd008030   edx: 00000000

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: esi: da567e68   edi: 00000001   ebp: 00000000   esp: da567e30

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: ds: 0068   es: 0068   fs: 00d8  gs: 0033  ss: 0068

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: Process a.out (pid: 25100, ti=da566000 task=dd008030 task.ti=da566000)

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: Stack: 00086179 da567f08 ffffffe0 00000030 00000000 00000001 da567e88 da567e68

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel:        000875e0 da567e88 00000000 f6699480 dc714a00 5c5c8d28 da567f08 da567e88

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel:        00000030 00000000 c071a0e8 f7051e04 de5cdbe0 c2afc8e0 00000000 00001000

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: Call Trace:

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel:  [<00086179>] <0> [<000875e0>] <0> =======================

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: Code: 89 c1 8b 00 25 00 40 02 00 89 ca 3d 00 40 02 00 74 12 f0 ff 4a 04 0f 94 c0 84 c0 75 01 c3 89 d0 ff 52 38 c3 8b 51 0c eb e9 89 c2 <8b> 00 f6 c4 40 75 13 f0 ff 4a 04 0f 94 c0 84 c0 75 01 c3 89 d0

Message from syslogd@office at Mon Feb 11 20:58:17 2008 ...
office kernel: EIP: [<0004ed09>]  SS:ESP 0068:da567e30
Feb 11 20:58:17 office kernel: PAX: suspicious general protection fault: 0000 [#7]
Feb 11 20:58:17 office kernel: SMP
Feb 11 20:58:17 office kernel: Modules linked in:
Feb 11 20:58:17 office kernel: CPU:    0
Feb 11 20:58:17 office kernel: EIP:    0060:[<0004ed09>]    Tainted: G    B  VLI
Feb 11 20:58:17 office kernel: EFLAGS: 00010202   (2.6.22-hardened-r8 #2)
Feb 11 20:58:17 office kernel: eax: 00000000   ebx: dc714a00   ecx: dd008030   edx: 00000000
Feb 11 20:58:17 office kernel: esi: da567e68   edi: 00000001   ebp: 00000000   esp: da567e30
Feb 11 20:58:17 office kernel: ds: 0068   es: 0068   fs: 00d8  gs: 0033  ss: 0068
Feb 11 20:58:17 office kernel: Process a.out (pid: 25100, ti=da566000 task=dd008030 task.ti=da566000)
Feb 11 20:58:17 office kernel: Stack: 00086179 da567f08 ffffffe0 00000030 00000000 00000001 da567e88 da567e68
Feb 11 20:58:17 office kernel:        000875e0 da567e88 00000000 f6699480 dc714a00 5c5c8d28 da567f08 da567e88
Feb 11 20:58:17 office kernel:        00000030 00000000 c071a0e8 f7051e04 de5cdbe0 c2afc8e0 00000000 00001000
Feb 11 20:58:17 office kernel: Call Trace:
Feb 11 20:58:17 office kernel:  [<00086179>] <0> [<000875e0>] <0> =======================
Feb 11 20:58:17 office kernel: Code: 89 c1 8b 00 25 00 40 02 00 89 ca 3d 00 40 02 00 74 12 f0 ff 4a 04 0f 94 c0 84 c0 75 01 c3 89 d0 ff 52 38 c3 8b 51 0c eb e9 89 c2 <8b> 00 f6 c4 40 75 13 f0 ff 4a 04 0f 94 c0 84 c0 75 01 c3 89 d0
Feb 11 20:58:17 office kernel: EIP: [<0004ed09>]  SS:ESP 0068:da567e30


А я уже думал что напрасно Hardened ядра имею :). Так что ставим себе Hardened ядра, и не боимся подобного :).

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

Да и вобще, по-моему такое на уровне глибк должно блокироваться:

[test@gaia386 ~]$ LD_AUDIT="./libapr-1.so.0" id ERROR: ld.so: object './libapr-1.so.0' cannot be loaded as audit interface: failed to map segment from shared object; ignored. uid=500(test) gid=500(test) groups=200(restricted),500(test)

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

Об LD_AUDIT - да. Я не строю из себя гуру, просто в принципе защититься возможно. С параноидальными настройками. С включенным TPE+rbash это не прокатит. Плюс, смотрите мой пост выше.

Valmont ★★★
()

народ, лучше скажите на что лучше переходить - windows xp sp3 rc2 или windows vista sp1 rtm ?

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

может хватит тут уже заниматься ерундой ?) Патчите ядра, перезагрузка и еще энное время можете орать тут Вендекапец и БСД-РЫП , как будто вас заставили сидеть с этой дырой в ядре всю оставшуюся жизнь ))

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

Найдите у меня хотя бы один такой пост :-) Использую и linux и freebsd. Винду - каюсь, нет.

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