Underc0de

[In]Seguridad Informática => Análisis y desarrollo de malwares => Tutoriales y Manuales de Malwares => Mensaje iniciado por: fudmario en Agosto 13, 2014, 12:56:05 AM

Título: Android: Análisis de Malware | by fudmario
Publicado por: fudmario en Agosto 13, 2014, 12:56:05 AM

Hace un par de semanas me preguntaron sobre esto, así que me saque algo de tiempo y decidi hacer este mini-tutorial para todos, y bueno veremos algunas formas para poder identificar APK's maliciosas y tambien el uso de aplicaciones que nos ayudaran en este proceso.

Comencemos...

¿Qué es una APK?

Cita de: WikipediaUn archivo con extensión .apk (Application PacKage File) es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android...

Un archivo .apk normalmente contiene lo siguiente:

    AndroidManifest.xml
    classes.dex
    resources.arsc
    res (carpeta)
    META-INF (carpeta)
    lib (carpeta)
   
El Formato APK es básicamente un archivo comprimido ZIP con diferente extensión por lo cual pueden ser abiertos e inspeccionados usando un software archivador de ficheros como 7-Zip, Winzip, WinRAR o Ark.




Es un archivo XML codificado como XML binario que nos muestra los datos de la aplicación(Actividades, permisos, servicios, etc.)


Aquí se encuentra el código de la aplicación compilado en un el formato que interpreta la maquina virtual de Dalvik


Aquí se encuentran todos los recursos pre-compilados de la aplicación.


En esta carpeta estan  los recursos de la aplicación.


En esta carpeta encuentran los certificados de la aplicación.

Utilizaremos una muestra disponible en Contagio Mobile
¿Qué es Simplocker?

Cita de: ESETSimplocker es un troyano apuntado a móviles, uno de la los primeros de esta clase que tiene por objetivo los dispositivos móviles con Android. Este código malicioso explora la tarjeta SD residente en busca de ciertos tipos de archivos (.jpeg, .jpg, .png, .bmp, .gif, .pdf, .doc, .docx, .txt, .avi, .mkv, .3gp, .mp4), encripta estos archivos utilizando AES, y luego demanda un rescate de parte del usuario a cambio de la descripción de esos archivos vulnerados. El resultado determina que hasta que el rescate sea pagado, los usuarios no podrán acceder a su archivos personales (fotografías, descargas, canciones , etc.).

Nuestro punto de inicio será el archivo AndroidManifest.xml, este archivo nos mostrará que es lo que va a hacer, si intentamos leer el contenido de este archivo no será legible, para poder leerlo correctamente podemos usar: "AXMLPrinter2" o "xml-apk-parser".

AXMLPrinter2: Obtiene el XML desde el archivo xml binario.
Uso: java -jar AXMLPrinter2.jar <Archivo xml binario>xml-apk-parser: Obtiene el XML directamente desde la APK
Uso: java -jar APKParser.jar <Archivo apk>

(http://i.imgur.com/UIi2Arm.gif)

(http://i.imgur.com/Nj6yXCC.png)

El Archivo AndroidManifest:



Contenido del Archivo AndroidManifest de Simplocker:


Ahora vamos a decompilar el proyecto:

Como al principio hemos dicho que basicamente se trata de un archivo comprimido con diferente extensión, usando WinRAR podriamos extraer el contenido y con el archivo classes.dex pasandolo por Dex2jar obtendriamos el codigo

DEX2JAR
(http://i.imgur.com/jaWYf5f.gif)


JD-GUI:Decompiler(Haz Clic para ver el VIDEOGIF)

(http://s4.postimg.org/omd7p4v55/7_1decompiled.jpg) (http://"http://postimg.org/image/omd7p4v55/")

Otra alternativa sería usar(aunque es de pago) "AndroChef Java Decompiler", es bastante completo tu solo seleccionas tu apk y nos muestra todo el codigo decompilado.


(http://i.imgur.com/50M1u0Z.png)

(http://i.imgur.com/dZ23Q5y.png)


CREANDO UN ENTORNO VIRTUAL:

Bueno para probar vamos a usar un Emulador para Android(yo usaré el Android SDK)


ANDROID VIRTUAL
(http://i.imgur.com/bmBhBmG.gif)

(http://i.imgur.com/GJH9cX4.png)

Para instalar Aplicaciones utilizaremos el "adb.exe" ubicado en la carpeta "platform-tools"
el modo de uso es el Siguiente:

adb.exe install <tu archivo .apk>

Instalando APK
(http://i.imgur.com/wuQKyK7.png)

Simplocker Instalado
(http://i.imgur.com/HkIkywf.png)

Pantalla Principal
(http://i.imgur.com/gf6p0Xm.png)

Archivos Encryptados
(http://i.imgur.com/mT9YI6A.png)



Referencias:
http://es.wikipedia.org/wiki/.apk (http://es.wikipedia.org/wiki/.apk)
http://developer.android.com/guide/topics/manifest/manifest-intro.html (http://developer.android.com/guide/topics/manifest/manifest-intro.html)
http://developer.android.com/reference/android/Manifest.permission.html (http://developer.android.com/reference/android/Manifest.permission.html)
https://code.google.com/p/android4me/downloads/list (https://code.google.com/p/android4me/downloads/list)
https://code.google.com/p/xml-apk-parser/ (https://code.google.com/p/xml-apk-parser/)
http://jd.benow.ca/ (http://jd.benow.ca/)
https://code.google.com/p/dex2jar/ (https://code.google.com/p/dex2jar/)
http://contagiominidump.blogspot.in/2014/06/simplocker-android-file-encrypting-tor.html

Liberar los archivos encryptados:
http://download.eset.com/special/ESET-Simplocker-Decryptor.apk (http://download.eset.com/special/ESET-Simplocker-Decryptor.apk)






Si te gusta y quieres compartirlo adelante, recuerda respetar el autor del Post.
Título: Re:Android: Análisis de Malware | by fudmario
Publicado por: osc en Agosto 13, 2014, 06:15:34 AM
Buen tuto, gracias por compartir!!
Título: Re:Android: Análisis de Malware | by fudmario
Publicado por: fudmario en Agosto 14, 2014, 12:00:41 AM
Gracias por comentar...

Aquí dejo un Videogif como usar Eset Simplocker Decryptor:

(http://i.imgur.com/5zHvE28.gif)

Saludos.