Mostrando entradas con la etiqueta Análisis Malware. Mostrar todas las entradas
Mostrando entradas con la etiqueta Análisis Malware. Mostrar todas las entradas

Análisis Dinámico en AndroidSwissKnife

Buenas Amigos de Estación Informática. Soy Fare9 y hoy os traigo una nueva actualización de mi herramienta AndroidSwissKnife. ANDROIDSWISSKNIFE




A pesar de estar estos dos últimos días jodido ( con fecha de referencia 28/10/2016 ), he intentado hoy escribir sobre mi última actualización de AndroidSwissKnife (algo que ya llevaba un tiempo en el tintero). Hace ya tiempo que empecé a leer sobre análisis de malware en Android, pero no se me había ocurrido añadir análisis dinámico a mi herramienta, y en cuanto conocí DroidBox dije "Muy interesante, ¿por qué no?" . A los que no tengáis ni idea de que es haré una pequeña explicación:

DroidBox es una herramienta escrita en python la cual te permite levantar un emulador de android con unas imágenes del sistema modificadas, las cuales al ejecutar ciertas funciones, mostrarán por el log de android (se puede ver a través de logcat) la información en un formato JSON (ejemplo en un SMS el número a quien se envía, en una modificación el archivo modificado...). Tras esto va reuniendo la información para luego mostrarla al usuario igual en formato JSON. Para ejecutar la aplicación y en concreto la clase principal (MAIN o LAUNCHER), utiliza una librería llamada monkeyrunner la cual te permite conectar con un dispositivo, instalar una apk, ejecutar una función de la apk, hacer capturas de pantalla, hacer clicks en la pantalla... Me ha parecido una librería tan explendida que hasta famosos la usan:




El código de DroidBox puede ser consultado en: https://github.com/pjlantz/droidbox/tree/master/droidbox4.1.1

A vista de que era una opción bastante interesante, me decidí en incluir el código con distintas modificaciones en el framework AndroidSwissKnife, tuve que realizar modificaciones en distintas funciones al tener que pasar código a Python3 y además como las librerías de XML me parecen un poco aburridas y complejas de usar, me decanté por el gran amigo de los Crawler's programmers BeautifulSoup, el cual de momento funciona bien. Además añadí Burpsuite, a la hora de realizar el análisis dinámico se abrirá una ventana con Burpsuite y después nos pedirá el nombre del emulador, tras esto, creará una carpeta con apktool donde sacará el AndroidManifest para reconocer las partes del APK, y finalmente ejecutará en el emulador la aplicación y empezará a sacar logs (recomiendo dejar cargar el emulador, nunca fue muy bien ese emulador de android la verdad).

Por tanto vamos a ejecutar la aplicación a ver que tal funciona, para animar un poco hoy la sesión con un poco de música, dejo una canción que me encanta y además está cantada por una buena amiga (Fight Together - Español , Fight Together - Català )

  1.  Primero hay que instalar AndroidSwissKnife (hay una pequeña función de instalación, pero todo lo que se pueda hacer manualmente no está de más).
  2. Tras esto elegiremos una APK para realizar el análisis dinámico:
  3. Después (estando dentro de la misma carpeta que el apk) ejecutamos lo siguiente:
    androidSwissKnife.py -a 2abff9ab25d8b9909f23783f20757e612a3eaa02.apk --DroidBox 
  4. Tras esto y un poco de paciencia, tendremos abierto un Burpsuite donde podremos establecer el proxy, y establecer Intercept en OFF para no tener problemas (pestaña Proxy -> Intercept is Off), también la aplicación nos pedirá el nombre de nuestro emulador (en mi caso Sandbox):
  5. Tras esto, abrirá otro terminal, en el cual empezará a ejecutar el emulador, además en el terminal que ya teníamos abierto, empezará a usar apktool para poder conseguir el AndroidManifest de la aplicación. Tras esto nos mostrará el nombre del archivo, sus diferentes hashes (MD5,SHA1,SHA256), y finalmente diferentes partes del Manifest (uses-permissions,permissions,activities,MainActivity...).
  6. Una vez tengamos cargado el emulador, pulsaremos ENTER en nuestro terminal:
  7. Entonces monkeyrunner empezará a funcionar, conectará con el dispositivo, instalará la aplicación y finalmente ejecutará la clase principal.
     
  8. Una vez acabado, empezará el análisis dinámico y la recolección de logs, para ello podemos interactuar con el emulador y con la aplicación, con lo cual conseguiremos más logs en nuestro programa. Para finalizar simplemente tendremos que pulsar CTRL-C:
  9. Una vez pulsado CTRL-C nos mostrará en formato JSON, los logs sacados por la herramienta. Y aquí vendrá la pericia del auditor para poder saber que a accedido, o si realizó accesos a internet, o envío de SMS...
Y bueno hasta aquí, la ampliación de la herramienta AndroidSwissKnife para análisis de aplicaciones Android, aún está en una fase algo beta, tiene algunos problemillas pero se irán solucionando (cosillas varias, como por ejemplo un thread que no finaliza, fallos en algun log...), puede que la opción de burpsuite se vuelva opcional, ya que alguna aplicación pueden detectar proxies y cosillas así.
Aún así presentaré esta herramienta en el SEC/ADMIN de este año. Espero os guste y cualquier cuestión en mi github teneis un email de contacto, así como una pestañita de issues, donde dejar vuestros problemas con la herramienta.

AndroidSwissKnife, la suiza de las aplicaciones de Android

Muy buenas a todos los seguidores de Estación Informática, me conocen en el mundillo de la seguridad por Fare9 y por este nombre podeis contactar conmigo. No hace mucho que me metí en este mundillo y la verdad es que me apasiona, hace unos meses publiqué una herramienta que aprovechaba la vulnerabilidad DoS en Whatsapp para Android, la cual enviaba via whatsapp web unos 7000 stickers, lo cual debido a las políticas que tendría Android en esos momentos de gestión de memoria, provocaba el cierre de la aplicación.





 Hoy os traigo una herramienta que he estado programando estos días para ayudaros en la tarea del análisis estático de aplicaciones Android: ANDROIDSWISSKNIFE .


Ahora paso a explicar un poco sus funciones...

 Bien como la mayoría sabemos, las aplicaciones de Android se programan principalmente en Java como lenguaje de programación principal, añadiendo librerías (en caso de necesitarlas) escritas en C/C++ para las diferentes arquitecturas donde se ejecutará esta APK, el malware por supuesto no es una excepción y se escribe igual que una aplicación normal, harán uso de las APIs que Google ponga a su disposición para realizar esas acciones "malignas" que conocemos (robo de credenciales, ransomware, backdoors...). Pues para conocer que realizan estas aplicaciones nos basamos en los análisis estáticos y dinámicos de la aplicación. Estos últimos se realizan ejecutando la aplicación en un términal, o un sistema emulado en una máquina virtual, y viendo el tráfico de red, los logs que pueda dejar la aplicación u otro tipo de técnicas del estilo.
El análisis estático se basa en la observación de los archivos que vienen con la apk, así entre ellos, el código , metadatos, buscar diferentes expresiones dentro de los archivos...
AndroidSwissKnife tiene implementadas varias rutinas para esto, agilizando cosas como la observación del AndroidManifest, búsqueda de patrones con expresiones regulares ( esas que tanto nos destrozan la cabeza), y el desensamblado del código.
En android podemos intentar desensamblar el código fuente de la aplicación de varias formas entre ellas:
  • obtener el código fuente como tal (con jadx), esto nos quitará muchos quebraderos ya que el código fuente de alto nivel nos permite verlo todo más claro, pero a su vez es el más dificil de conseguir .
  • Código Smali (con apktool) es un código que llamaríamos ensamblador basado en Jasmin (que es el código ensamblador de java). Este código tiene sencillos mnemotécnicos y es fácil de aprender, además puede ser bastante útil por si queremos modificar la aplicación y volver a empaquetarla.
  • Dalvik bytetcode conseguimos el bytecode usado por la máquina virtual Dalvik que luego será interpretado para ejecutarlo en el móvil, smali está también basado en este bytecode por tanto no será muy dificil de aprender.
Además de este código fuente tambien podremos obtener el código nativo de las librerías, el cual cambiará según sea para arm, mips o x86.

Todas estas rutinas las veo necesarias para el análisis estático, pero por supuesto la herramienta es libre y cualquiera puede modificar el código, si crees que tienes una buena idea puede modificarse la rama principal. De momento se está intentando añadir un módulo para sacar reportes en PDF (quizás la parte más importante en un pentest o análisis profesional) , y también se está estudiando la forma de añadir soporte para mostrar el desensamblado de radare2.

Espero les gustara el post, y espero les guste la aplicación. Aquí me despido hasta la proxima y sigan divirtiendose con la seguridad informática.

DroidOL: Nuevo marco para detectar Malware en Android



Hola a tod@s


DroidOL y es un marco de detección de malware adaptable y escalable basado en aprendizaje en línea. Un grupo de investigadores de la Universidad Tecnológica de Nanyang, Singapur, han creado una nueva solución para la detección de malware para Android a gran escala.


DroidOL alcanza una precisión superior a través de la extracción de características de alta calidad de gráficos de flujo de control entre procedimiento (ICFGs) de aplicaciones, que son conocidos por ser fuerte contra la evasión y la ofuscación técnicas adoptadas por el malware explican los investigadores.



Utilizaban el núcleo gráfico de Weisfeiler-Lehman (WL) para extraer rasgos semánticos de ICFGs y finalmente, en línea aprender a distinguir entre aplicaciones benignas y maliciosas.


“En un análisis comparativo a gran escala con más de 87.000 aplicaciones, DroidOL alcanza exactitud 84.29% superando a dos técnicas de malware de vanguardia por más de 20% “

"Nuestros resultados experimentales indican que enfoques de aprendizaje basado en línea son altamente convenientes para la detección de malware reales" apuntaban los investigadores.


El malware para android ha crecido mucho en los últimos años y sus capacidades han crecido enormemente, por ello es necesario nuevas técnicas efectivas para detectarlo y no ir siempre por detrás de los ciberdelincuentes.

No seáis malos. 



¿Cómo puedo descargar una APK de Google Play?



Hola a tod@s

Me han consultado en varias ocasiones ¿Cómo puedo descargar una APK de Google Play?

Hoy es el día que os respondo con  APK Downloader: es un servicio online que permite descargar aplicaciones de Google Play directamente a tu PC. Una vez descargadas en tu PC ya disponemos de ellas para jugar, por ejemplo descompilarlas y analizar el comportamiento de estas, quizás no encontremos sorpresas en sus llamadas y encontremos malware.

¿Cómo funciona online APK Downloader?
Hay un grupo de monos que trabajan detrás 24/7 y buscan en las aplicaciones que desea descargar. Tal y como habéis leído la descripción anteriror aparece en su sitio oficial. ;)

Seguro que ya se os ha pasado por la cabeza ¿Puedo descargar aplicaciones de pago? Para evitar la piratería, no se le permite descargar aplicaciones de pago.

APK Downloader está disponible en http://apps.evozi.com/apk-downloader


No seáis malos.

Recopilación servicios online para analizar malware



Hola a tod@s

Para los amantes del malware traemos hoy una recopilación de recursos online donde subir y analizar muestras de “bichos”.
Comenzamos la recopilación por el más conocido por todos, Virustotal, la primera sede de Google en Andalucía ;)

  • Virustotal: Escáner online de virus, malware y URLs, analiza las aplicaciones con más de 50 motores antivirus.
  • Jottis malware scan: Es un servicio online que permite escanear archivos sospechosos con varios programas antivirus.
  • Metascan Online: Otro escáner online gratuito de ficheros con más motores de antivirus que Jottis.
  • Anubis: El informe es bastante completo y nos muestra gran cantidad de información sobre cómo interacciona el virus con el registro de Windows, el sistema de archivos, la red, llamadas al sistema, etc. Además de subir cualquier ejecutable, también nos permite subir archivos .apk de Android. Tras finalizar, Anubis nos permite descargar el análisis en varios formatos, incluyendo HTML, XML o PDF, y además, podemos descargar el fichero .pcap con el tráfico generado por el malware, para mí de lo mejor para analizar archivos online.
  • ThreatExpert: Es un sistema de análisis de amenaza automatizado avanzado diseñado para analizar y reportar el comportamiento de los virus informáticos, gusanos, troyanos, adware o spyware.
  • Eureka Malware Analysis Page : Servicio de análisis automático de binarios de malware. Nos permite descargar el ejecutable desempaquetado por si queremos analizarlo nosotros mismos, y nos permite examinar el desensamblado del ejecutable así como el diagrama de flujo de ejecución del mismo.
  • Wepawet: Enfocado a ficheros JavaScript, PDF y Flash.
  • VirSCAN: Escáner de virus, soporta 36 motores de antivirus.
  • malwr.com: Servicio de análisis de malware gratuito hecho a partir de un sandbox Cuckoo
  • Joe Security: Además de un análisis dinámico y un interesante análisis estático que busca partes del código que sólo se ejecutaran bajo ciertas condiciones (por ejemplo, malware dirigido a un objetivo concreto) y por lo tanto, son difíciles de detectar en un análisis dinámico normal. Un sistema muy completo, pudiendo analizar ficheros .apk, ejecutables, documentos o URLs.
  • ViCheck.ca: Además de ejecutables, ViCheck.ca puede examinar archivos en formato MS Office Word, Powerpoint, Excel, Access o Adobe PDF. Permite la carga de varios archivos a la vez. Lo único que tendremos que poner en el formulario, además del archivo que queremos examinar, es un correo electrónico donde se enviará el resultado del análisis.
  • AndroTotal: De esta aplicación ya hablamos aquí. Analiza las aplicaciones con varios motores antivirus, menos que Virustotal. Además, muestra información como los permisos y las actividades que realiza la aplicación.
  • Mobile Sandbox: Permite acceder a la información de un análisis estático de toda la vida.
  • Akana: Es un entorno interactivo online que muestra la información típica de un análisis estático.
A analizar muestras!

No seáis malos.
 

Análisis de Malware en APKS



Hola tod@s


Android se ha convertido en él plataforma móvil más atacada por el malware, no obstante es el sistema operativo más usado. Por ello, es necesario contar con unas series de herramientas para analizar las APKS que instalamos en nuestros dispositivos móviles, al igual que analizamos las aplicaciones que instalamos en los PC´s.

Veamos algunas herramientas que podemos encontrar para analizar APK:

  • DroidBox: es una gran utilidad de análisis dinámico, permite el acceso a las comunicaciones de la aplicación, también cuanta con un mapa que muestra el comportamiento de la APK.
  • APKTool: es una utilidad multiplataforma que permite descompilar y volver a compilar las aplicaciones.
  • Androguarn: es una utilidad cuyo objetivo es detectar y advertir de comportamientos potencialmente peligrosos como información sensible del dispositivo móvil, el envío de SMS Premium, grabación de audio y video, etc.
  • Androguard: desarrollada en Python, permite decompilar y tener acceso a permisos, Receivers, Activities, Content Providers, Services, Package Name, clases, métodos, etc.
  • ApkInspector: también desarrollada en Python, su característica principal es que dispone de un interface gráfico a través del cual se pueden visualizar diferentes aspectos de las APKs analizadas como por ejemplo el AndroidManifest.xml.
  • APKStudio: es un IDE (entorno de desarrollo integrado) multiplataforma que permite descompilar y compilar APKs
  • Dex2Jar: permite convertir un fichero .APK en uno .JAR de manera que se pueda visualizar el código de la aplicación.
  • JD-GUI: es una herramienta con interface gráfica que permite interactuar de una manera intuitiva con ficheros con extensión .CLASS.
  • JAD: Es una aplicación multiplataforma que permite convertir ficheros .DEX en ficheros .CLASS. 
No seáis malos.