Un blog de Seguridad Informática, desde un punto de vista tecnológico

Explotación en Android y SET

En relación con la presentación de SMS Spoofing, nos ha llegado alguna petición sobre el material relacionado con la demo explotación de Android.

Lo primero, comentar que todo lo utilizado para la demo de explotación de Android está basado en el trabajo de Javier Moreno y Eloi Sanfélix, presentado en la Rooted CON 2010,  Seguridad y explotación nativa en Android. Los autores publicaron material sobre la presentación en sus respectivos blogs:

Para información sobre explotación nativa en Android os referenciamos pues, a dicho material :).

Sin embargo, ponemos a vuestra disposición el siguiente material, que utilizamos durante la presentación de SMS Spoofing:

android_stack_tb.rb: El exploit original de Eloi Sanfelix y Javier Moreno, con la
«Ret» modificada para obtener el control con el desbordamiento en nuestro entorno Android 1.6 (API level 4).

Para poder llevar a cabo la modificación, (sorry si hay algo equivocado, cualquier comentario es bienvenido 🙂 ), hay que tener en cuenta que tras machacar la pila, el exploit de Eloi Sanfelix y Javier Moreno salta a un offset de setjmp (libc) para poder setear registros con valores escritos en la pila. En nuestro entorno hay que modificar dicha Ret para conseguir el efecto deseado:

(gdb) disass setjmp
Dump of assembler code for function setjmp:
0x0000dde0 <setjmp+0>:    stmdb    sp!, {r0, lr}
0x0000dde4 <setjmp+4>:    mov    r0, #0    ; 0x0
0x0000dde8 <setjmp+8>:    blx    0x12154 <sigblock>
0x0000ddec <setjmp+12>:    mov    r1, r0
0x0000ddf0 <setjmp+16>:    ldmia    sp!, {r0, lr} <-- Aquí es donde habría que saltar
0x0000ddf4 <setjmp+20>:    str    r1, [r0, #100]
0x0000ddf8 <setjmp+24>:    ldr    r1, [pc, #16]    ; 0xde10 <setjmp+48>
0x0000ddfc <setjmp+28>:    str    r1, [r0], #4
0x0000de00 <setjmp+32>:    add    r0, r0, #52    ; 0x34
0x0000de04 <setjmp+36>:    stmia    r0, {r4, r5, r6, r7, r8, r9, r10, r11, r12, sp, lr}
0x0000de08 <setjmp+40>:    mov    r0, #0    ; 0x0
0x0000de0c <setjmp+44>:    bx    lr
0x0000de10 <setjmp+48>:    rsbmis    pc, r8, #4194304    ; 0x400000

Y la libc dentro de la app vulnerable la libc se mapea en:

# cat maps
00008000-00009000 r-xp 00000000 1f:01 414        /data/bin/myapp
00009000-0000a000 rwxp 00001000 1f:01 414        /data/bin/myapp
40000000-40008000 r-xs 00000000 00:07 187        /dev/ashmem/system_properties (deleted)
afc00000-afc21000 r-xp 00000000 1f:00 478        /system/lib/libm.so
afc21000-afc22000 rwxp 00021000 1f:00 478        /system/lib/libm.so
afd00000-afd01000 r-xp 00000000 1f:00 495        /system/lib/libstdc++.so
afd01000-afd02000 rwxp 00001000 1f:00 495        /system/lib/libstdc++.so
afe00000-afe39000 r-xp 00000000 1f:00 524        /system/lib/libc.so <-- Aquí  está mapeada la libc
afe39000-afe3c000 rwxp 00039000 1f:00 524        /system/lib/libc.so
afe3c000-afe47000 rwxp afe3c000 00:00 0
b0000000-b0010000 r-xp 00000000 1f:00 403        /system/bin/linker
b0010000-b0011000 rwxp 00010000 1f:00 403        /system/bin/linker
b0011000-b001a000 rwxp b0011000 00:00 0
bead1000-beae6000 rwxp befeb000 00:00 0          [stack]

Por lo tanto nuestro Ret ha de ser «0xafe0ddf0».

android_stack_tb_http.rb: El módulo utilizado durante la presentación de SMS Spoofing. Es el exploit anterior, modificado para servirse a través de una app Web, que comprueba el user-agent y si es un android 1.6 intenta explotar la vulnerabilidad.

android_sample.py: El launcher del metasploit anterior para SET. Para entender como estaba integrado dentro de SET os dejamos el siguiente diagrama:

El material está disponible en: https://github.com/testpurposes/ncn2010_sms_spoofing

Hay que tener en cuenta que el material anterior fué utilizado para construir una demo!!, en un entorno real de explotación de plataformas Android, por ejemplo, lo más coherente sería utilizar vulnerabilidades en aplicaciones «cliente» (como un reader de PDF).

Esperamos que el material le sea de utilidad a alguien. Igualmente, si alguien utiliza este u otro material de la presentación sobre SMS Spoofing y le apetece hacernos llegar feedback sería genial!

Saludos!

Anuncio publicitario

4 comentarios

  1. Muchas gracias por la referencia y felicidades por la charla, es una lástima que no pudiera asistir a la NcN.

    Si podemos aclarar alguna duda estaremos encantados 🙂 Saludos!

    5 diciembre, 2010 en 17:38

    • juan vazquez

      Hola,

      Muchas gracias por las felicitaciones! Hubiera sido genial teneros por la NcN! Y las gracias a vosotros por poner disponible el material sobre explotación en Android, increíble trabajo!

      Por cierto, nos apuntamos el ofrecimiento de aclarar dudas 🙂

      Un saludo!

      5 diciembre, 2010 en 17:54

  2. Muchas gracias por su presentación y su trabajo!

    Algún sitio donde tengan colgado los vídeos de demostración en el momento que hacen la explotación?

    7 diciembre, 2010 en 22:39

    • juan vazquez

      Hola Edgar,

      Ahora mismo, está disponible el video que se puede encontrar en:

      http://noconname.org/congreso.html#videos

      Aunque en el video la parte de explotación no se ve bien, la cámara no coge bien ninguno de los monitores que estaban proyectando la demo 😦 De todos modos, a ver si te puede servir de algo.

      saludos,

      juan

      8 diciembre, 2010 en 1:59

Responder a juan vazquez Cancelar la respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s