Exploiting on ARM by @NoxOner
Ando de vagal! por ello realizo un copy & paste del sitio de Nox http://www.noxsoft.net/exploiting-arm/ propiamente del curso que andamos metiendonos gracias a su proactividad y gans de compartir, honestamente estuve en 2 de ellos los cuales me dejo :O me falta!! por la |@·~½{{[][{¬½~·|@·!"#$#%/ y ... |@·|@·|@·| xD Note ahi cuando hablaba, dafuq! me falta mucho.. quizas a algunos no, pero honestamente necesito conocer mas a fondo para mejorar mis skills.
Por ello, aqui tenemos la entrada de su blog :) el cual es Noxsoft dense una vuelta, si no lo conocen sin mas que decir les dejo con la entrada copy pasteada.
Por ello, aqui tenemos la entrada de su blog :) el cual es Noxsoft dense una vuelta, si no lo conocen sin mas que decir les dejo con la entrada copy pasteada.
Exploiting on ARM
Se irán adjunto los streaming que se realiza con la gente de CLS para todos los interesados, acerca de como saltar las mitigaciones de explotación en ARM, específicamente en Android.
¿Por qué se llama “Exploiting on ARM” y luego leo “Explotacion en Android 1.5″? Simple, es explotación sobre arquitectura ARM, elegí Android porque había documentación sobre su emulador, SDK y NDK. Además que tenía pensando adquirir un smartphone Android, matando dos pájaros de un tiro, usarlo para la investigación y para mi uso personal.
Este proyecto tiene como objetivo evitar las horas de estudio e investigación para saber lo básico de la arquitectura ARM y explotación. Aunque comenzaron los videos un poco desordenados, a continuación se podrán en orden de conocimiento, siendo el primero una pequeña intro a ARM (pero creo que fue el video número 3 :P). Luego, como sigue:
Intro a la explotación sobre ARM – Parte 1, se verá lo siguiente:
Registros ARM y comparativa con x86.
Instrucciones ARM y comparativa con x86.
Ejecución condicional.
De ARM hacia Thumb y viceversa.
Intro a la explotación sobre ARM – Parte 2, se verá lo siguiente:
Tipos de datos y tamaño.
Set de instrucciones y alineamiento.
Depuración.
Gadget
- Gadgets en x86 y comparativa con ARM.
- Búsqueda de Gadgets.
- ARM.
- Thumb.
- Thumb-2.
Syscall.
- Función syscall.
- De syscall a syswrite.
- SuperVisor Call (SVC).
Shellcoding.
- Byte nulo.
- Posicionamiento de la shellcode.
- Creación de una shellcode.
Mitigaciones de explotación en Android.
- Android 1.5
- Android 2.3
- Android 4.0
- Android 4.1
La vulnerabilidad a usar en este cursillo, desbordamiento de buffer.
Explotación en Android 1.5 (emulador) – Parte 1, se verá lo siguiente:
Depuración sobre ARM, Android.
La vulnerabilidad.
Aplicaciones nativas para ARM, Android.
Prólogo y epílogo de una función en ARM.
Call convention.
Controlando el ProgramCounter.
Explotación en Android 1.5 (emulador) – Parte 2, se verá lo siguiente:
Gadgets en ARM.
Registros del procesador ARM.
Tipos de datos, tamaño y alineamiento.
ARM, Thumb y Thumb-2.
Registro Current Program Status Register (CPSR).
- Flags.
Ensamblador ARM y comparativa con x86.
Ejecución condicional
PC Relative.
De PLT hacia GOT.
Syscall.
- De write a sywrite.
Shellcoding.
De ARM a Thumb.
Explotando la vulnerabilidad y saltando hacia la shellcode.
- Ejecutando la función write remotamente para imprimir “Hacked\n}:D”.
- Ejecutando la función exevc para obtener una shell remota.
Explotación en Android 2.3.7 (Huawei U8500), se verá lo siguiente:
Mapa de memoria de Android 1.5
Mapa de memoria de Android 2.3.7
Protección de mitigación a nivel binario
Protección de mitigación en el sistema operativo.
- XN soportado por hardware
Bypassando XN.
- ROP
- Llamando a la función mprotect.
- Gadget con control doble en ejecución.
- Ejecutando la función write remotamente para imprimir “HelloWord :D”.
- Ejecutando la función exevc para obtener una shell remota.
Para poder ver las actualizaciones y demas sigan al blog de Nox, en el blog ire posteando segun vayan saliendo.