Exploit local para Kernel 2.6.26-2 (x64), alguna sugerencia?

Iniciado por grx0, 11 Diciembre 2010, 07:15 AM

0 Miembros y 1 Visitante están viendo este tema.

grx0

Hola

Estoy trabajando con una maquina virtual donde tengo instalado un Debian 5.0.7, con el kernel "2.6.26-2-vserver-amd64".

Necesito un exploit local para escalar privilegios de root, he visto el bug del "pipe.c" en estas versiones de kernel, aunque no me ha servido, o bien alguna otra vulnerabilidad presente en esta version de Debian.

Es una maquina que esta en la red de mi trabajo y ya he conseguido acceso remoto por medio de otra vulnerabilidad.

saludos


grx0

#2
Hola

Muchas gracias por el aporte.

El comando "staprun" no viene por defecto en esta distribucion o por lo menos en esta version de Debian.

Ya habia visto una variante de este exploit en otro lado, creo haberlo probado sin efectos.

Muchas gracias

Ivanchuk

Lo q podes hacer es fijarte los anuncios de seguridad en lugar de buscar por exploits derecho viejo:
:http://www.debian.org/security/2010/dsa-2126

Por ejemplo:
-CVE-2010-3859 Dan Rosenberg reported an issue in the TIPC protocol. When the tipc module is loaded, local users can gain elevated privileges via the sendmsg() system call.

Tenes buena data como para buscar si existe el exploit o eventualmente buscar si podes encontrar el error :rolleyes: y hacerte el exploit.
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

Ivanchuk

Mira te encontre mas info, asumiendo que el modulo tipc esta cargado.

Dan Rosenberg reportando el problema.
:http://www.spinics.net/lists/netdev/msg144701.html

static inline int msg_calc_data_size(struct iovec const *msg_sect, u32 num_sect)
{
int dsz = 0; <<<<
int i;

for (i = 0; i < num_sect; i++)
dsz += msg_sect[i].iov_len; <<<<
return dsz;
}


Que es llamada para construir el msg en msg_build

static inline int msg_build(struct tipc_msg *hdr,
    struct iovec const *msg_sect, u32 num_sect,
    int max_size, int usrmem, struct sk_buff** buf)
{
...
dsz = msg_calc_data_size(msg_sect, num_sect);
if (unlikely(dsz > TIPC_MAX_USER_MSG_SIZE)) { <<<< trunc
*buf = NULL;
return -EINVAL;
}
...
res = !copy_from_user((*buf)->data + pos, <<<< heap overflow
      msg_sect[cnt].iov_base,
      msg_sect[cnt].iov_len);
...


Lo saque del src de mi kernel. Como explotarlo? bue se me ocurre crear un server y un cliente que se le conecte en local para despues usar llamar a sendmsg. Hay ejemplos en la red:
:http://www.mail-archive.com/tipc-discussion@lists.sourceforge.net/msg00125.html

Ahora si el kernel no tiene cargado este modulo fuistes :-[. Bueno nada por ahi capaz que no puedas aprovecharte de este error en particular pero buscando otros estoy seguro que te las vas a poder rebuscar para explotarlos  ;).
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

grx0

Hola

Muy agradecido por tu interes y ayuda.

Lo que venia pensando hace unos dias es, instalarme en una VM un Debian con las mismas condiciones basicas donde necesito trabajar, sea version de Kernel y version de la Distro en general.

He intentar ver si logro algun Core Dump que de una luz para ejecutar codigo.

Custion de bajar el source correspondiente a la version del Kernel que tiene instalado para tener un panorama mas claro de donde estoy parado.

Por lo poco que he revisado el server, creo que es una instalacion de Debian bastante por defecto mas alla de los agregados o configuracion que hizo el administrador, ya algo se me va ocurrir, despues de todo consegui shell de forma propia encontrando una vulnerabilidad muy tonta de configuracion.

En caso que tengas algun otro aoorte o cualquier idea, estoy abierto a leerte o bien si ah otro usuario le sirve de ultima la data bienvenido sea. Por lo pronto yo sigo trabajando a ver que de nuevo descubro.

Se me ocurrio tambien revisar todos los binarios con SUID como para aprovecharme de ellos o usarlo para saltar a root.

saludos