2009-12-01

vlad_rulez: (Default)
2009-12-01 05:09 pm
Entry tags:

Появился очередной rootkit exploit для FreeBSD.

Появился очередной rootkit exploit для FreeBSD, уязвимы почти все версии с 7.1 по 8.0 включительно, часть версий 7.0 так же уязвима, во всяком случае patch 3 и patch12.

Любой локальный пользовательватель может получить рутовый доступ с помощью фактически любой системной утилиты у которой owner root и стоит флаг UID (ping, traceroute, passwd, и так далее). Как вы дожны знать, любой php shell = локальному пользователю.
Более подробно почитать тут - http://docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+current/freebsd-announce

Текущий патч:
Заходим под рутом и пишем в консоли
cd /usr/src/libexec/rtld-elf; cp -p rtld.c rtld.c.bak; vi rtld.c

Ищем строку future ( /future)
Меняем этот блок кода:
if (!trust) {
unsetenv(LD_ "PRELOAD");
unsetenv(LD_ "LIBMAP");
unsetenv(LD_ "LIBRARY_PATH");
unsetenv(LD_ "LIBMAP_DISABLE");
unsetenv(LD_ "DEBUG");

На вот такой:

if (!trust) {
// unsetenv(LD_ "PRELOAD");
// unsetenv(LD_ "LIBMAP");
// unsetenv(LD_ "LIBRARY_PATH");
// unsetenv(LD_ "LIBMAP_DISABLE");
// unsetenv(LD_ "DEBUG");
if (unsetenv(LD_ "PRELOAD") || unsetenv(LD_ "LIBMAP") ||
unsetenv(LD_ "LIBRARY_PATH") || unsetenv(LD_ "LIBMAP_DISABLE") ||
unsetenv(LD_ "DEBUG") || unsetenv(LD_ "ELF_HINTS_PATH")) {
_rtld_error("environment corrupt; aborting");
die();
}
}

сохраняем файл и выходим из vi (:wq)
Выполняем:
make
make install

profit.
Взято тут - http://habrahabr.ru/blogs/bsdelniki/76865/#comment_2237042

Уже пропатчился на продакшен серверах.