Your SlideShare is downloading. ×
Malware intelligence ppt-slides
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Malware intelligence ppt-slides

3,643
views

Published on

Slides de la conferencia sobre android dada en la NCN 2011

Slides de la conferencia sobre android dada en la NCN 2011

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,643
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
102
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Show me your Kung-FuSebastián Guerrero Jorge Mieres @0xrootsguerrero@malwareint.com http://blog.seguesec.com @jorgemieres jamieres@malwareint.com
  • 2. Contenido • Introducción • Análisis Estático • Análisis Dinámico • Análisis Forense • Nickispy • Protecciones • Vulnerabilidades • Conclusión
  • 3. Estructura del sistema
  • 4. • Usado para empacar las aplicaciones • Todo APK incluye: • classes.dex • resources.asc • /res • /META-INF • AndroidManifest.xmlFicheros APK
  • 5. Formato de ficheros DEX
  • 6. Android Manifest
  • 7. • java/Fuente (Compiler) – dex/dexdump• dex/dex2jar (jdgui) – java/jd-gui• dex/dexdump (basksmali) - smali/basksmaliEjemplo de código
  • 8. Análisis Estático
  • 9. 1. Creamos una máquina virtual usando el SDK.2. Lanzamos el emulador y almacenamos las conexiones en un pcap: • emulator –port n @device-name –tcpdump foo.pcap3. Instalamos la aplicación • adb install appname.apk4. Lanzamos pruebas sobre el dispositivo y la aplicación • adb shell monkey –v –p package.app n5. Leemos los logs • adb shell logcat –d6. Podemos apoyarnos en Wireshark para leer los logs de conexiones.Análisis Dinámico
  • 10. • Llamadas de teléfono • gsm call p-n • gsm accept p-n • gsm cancel p-n• SMS • sms send prefix-number text• Emular velocidad de red • netspeed gsm n • netspeed umts n• Cambiar coordenadas GPS • geo fix -13… 21…Simular Eventos
  • 11. 1. AXMLPrinter2 – Extraemos la información del AndroidManifest.xml2. Dex2jar – Convertimos el fichero .dex en un fichero de clases .jar. JAD – Transformamos los ficheros .class en ficheros .jad3. JDgui – Leemos el código almacenado en el fichero .jar.4. Understand – Análisis estático del código.5. Wireshark – Análisis dinámico del código. Modus Operandi
  • 12. • Noob • Nombrar ficheros de clases con el mismo nombre en minúscula/mayúscula. Esto ocultará los ficheros en sistemas que no distingan entre minúsculas/mayúsculas: N.class ~ n.class • Cifrar las conexiones que realiza el malware (DES) dificultando su análisis.• Rookie • Introducir técnicas para comprobar si se está ejecutando en un emulador. • Mejorar la eficiencia del código y ofuscarlo con alguna aplicación como ProGuard.• Master of Universe • Modificar el propio bytecode para inutilizar las herramientas de reversing.Técnicas antianálisis
  • 13. • Android está basado en el núcleo de Linux.• Se usa MTD para interactuar con la memoria flash. • Sigue la nomenclatura /dev/mtd* • Puntos de montura para /system, /data, /cache están asociados a diferentes mtdblocks. • Cada dispositiva está asociado a un dispositivo ro (Read Only).• Es necesario ser usuario root para poder realizar un análisis forense. • Exploits. • Aplicaciones específicas• A la hora de traernos los ficheros al disco podemos usar: • Comando PULL del SDK para descargar/subir ficheros. • Instalar un servidor SSH en el teléfono como DropBear. • Instalar un servidor FTP.• Hacer correlaciones de los diferentes puntos de montaje.• Tener acceso a los datos y bases de datos.Forensics
  • 14. Encrip… What da fuck?
  • 15. Si pierdes tu teléfono prepárate para…
  • 16. • Alerta de seguridad - 19 julio • Detectado por Symantec ~ 20apps • Procedencia – Fujian (China) • Nombre – com.nicky.lyyws.xmall • Desarrollado por – 56mo http://www.56mo.com • Descargar desde – http://user.c5005.com/DownList.aspxNickiSpy
  • 17. • No se distribuyó nunca por el Market. MD5 Ratio Fecha ad4dbe34853f1d58543b0b8db133eb5b 10/44 2011.08.31• Se puede descargar desde la página de la compañía: • Elegir marca de Smartphone. a21ae2802a0ee460ca2d17a9102ff7b1 14/44 2011.09.04 • Elegir modelo concreto. 15afe9bfa1b3139b5727112aa12b8f70 19/44 2011.08.31• Acto seguido fue distribuido por varios Markets chinos 426cedcf268bdf556aa405e0c8e03c16 20/44 2011.08.31 • CamangiMarket - camangimarket.com 0d2d9504649a97e7afee2caca61e277e 15/44 2011.09.02 • GoAPK - goapk.com 0d2d9504649a97e7afee2caca61e277e 15/44 2011.09.02 83a98eabf044826622db7c211764cdf4 13/44 2011.08.23 298446914e6c845fb331bfbfd2176d9d 26 /44 2011.08.23 f6cea3c1c0e9d2cf0ec373f142852399 12/44 2011.08.23 • f4514598c47658e513888ae6cb3fd8b1 23 /44 2011.08.14 1cbb2e45356bad1f3ecb103ed76dffdd 9 /44 2011.08.11 a72adce41ea55c239ef04fbda446ceb1 2/44 2011.09.02 edf5d97f1d47bdb3ca9c414f33337a87 7/44 2011.08.12 0e7989aac352df525e5ebb077c786072 9/44 2011.08.11 5664e00084e949b07227459d8bdaf9f3 13/44 2011.08.10 • a21ae2802a0ee460ca2d17a9102ff7b1 14/44 2011.09.04 18 muestras ~ 1ª muestra (19.07) ~ Detectadas (11.08-04.09) Estadísticas
  • 18. Autor
  • 19. •android.permission.CALL_PHONE•android.permission.PROCESS_OUTGOING_CALLS•android.permission.INTERNET•android.permission.ACCESS_GPS•android.permission.ACCESS_COARSE_LOCATION•android.permission.ACCESS_COARSE_UPDATES•android.permission.ACCESS_FINE_LOCATION•android.permission.READ_PHONE_STATE•android.permission.READ_CONTACTS•android.permission.WRITE_CONTACTS•android.permission.ACCESS_WIFI_STATE•android.permission.SEND_SMS•android.permission.READ_SMS•android.permission.WRITE_SMS•android.permission.WAKE_LOCK•android.permission.RECORD_AUDIO•android.permission.WRITE_EXTERNAL_STORAGELista de permisos
  • 20. • Inicializamos el emulador (podemos especificar el puerto, seleccionar la VM, almacenar las conexiones, entre otras opciones).• Instalamos la aplicación.• Árbol inicial (Antes de la infección).• Simulamos actividad• Árbol final (Después de la infección) Proceso de infección
  • 21. • Obtiene el IMEI del dispositivo. • Crea un fichero de configuración • Ruta: com.nicky.lyyws.xamll/lib/shared_prefs • Nombre fichero: XM_All_SettingFichero de configuración
  • 22. • Servidor C&C: jin.56mo.com • Puerto: 2018Servidor C&C
  • 23. Análisis I
  • 24. • /sdcard/shangzhou/callrecord/• setAudioSource(1) • public static final int MIC • Microphone audio source • Constant Value: 1 (0x00000001)• setOutputFormat(1) • public static final int THREE_GPP • 3GPP media file format • Constant Value: 1 (0x00000001)• setAudioEncoder(1) • public static final int AMR_NB • AMR (Narrowband) audio codec • Constant Value: 1 (0x00000001)Servicio de grabación
  • 25. • Número SMS Premium: 15859268161. • Envía un SMS con el IMEI. • El número premium pertenece a Fujiance. • Comprueba que la aplicación no corra en un emulador.Servicio SMS
  • 26. • Formato AMR • AMR (Adaptative Multi-Rate) es un formato de compresión de audio optimizado para la codificación de voz.• El malware almacena el audio grabado en: • /sdcard/shangzhou/callrecord•El fichero creado tiene como nombre la fecha y hora en que fue creado: • 20110907184158001 – año//mes/día– hora/minutos Formato “AMR”
  • 27. • Se basa en una simple condición de estado• Usa dos simples métodos de autentificación • checkAccess para comprobar que tenemos los suficientes permisos para ejecutar la aplicación. • handleServiceConnectionError para manejar los errores. ¿Protección en las aplicaciones?
  • 28. Proceso manual 1. Desempacar el APK usando la herramienta Baksmali. 2. Realizar el cambio de código en los métodos checkAccess y handleServiceConnectionError . 3. Generar la clave privada con la que firmar el paquete. 4. Empacar el APK usando APKTool 5. Firmar la aplicación con jargsigner 6. Usar zipalign 7. Instalar y disfrutar. Proceso automatizado• Sólo es necesario revertir la librería encargada de veriticar las licencias (License Verification Library)• Usar la herramienta anti-lvl: Rompiendo la protección
  • 29. • Vulnerabilidad “Touch-Event Hijacking” • Podemos mostrar al usuario una interfaz tapadera. • Hacer compras, click en banners de publicidad, instalar aplicaciones, saltarnos los permisos, o incluso robar cualquier tipo de información del teléfono• ¿Cómo funciona? • A través de Toasts , que permiten pasar los eventos a las capas inferiores• ¿Qué versiones se ven afectadas? • Según Google ninguna, esta vulnerabilidad está corregida. • Remitiéndonos a las pruebas, a día de hoy <= 2.3.4• ¿Qué piensa Google de todo esto? TapJacking
  • 30. • Se han diseñado un total de 4 payloads • CallPayload.java – Realiza llamadas al número de indicado. • MarketPayload.java – Descarga e instala aplicaciones del market. • ResetPayload.java – Devuelve al estado de fábrica el teléfono. • SMSPayload.java – Envía un mensaje de texto al número indicado.• Está diseñado para que se puedan añadir payloads por el usuario de forma sencilla.• La estructura interna es la siguiente: • Main.java – Ejecuta el servicio y carga los payloads. • MalwarePayload.java – Abstracción para implementar más fácilmente los payloads. • MalwareService.java – Crea el toast e inicia el proceso de tap-jack. • main.xml – Tiene el layout de la aplicación, lanzando con un evento onClick cada payload. • strings.xml – Contiene las cadenas que son utilizadas en la aplicación.• El código puede descargarse desde: • http://code.google.com/p/tap-android/ ¿Cómo está organizado?
  • 31. Conclusiones
  • 32. ¡MUCHAS GRACIAS!Sebastián Guerrero Jorge Mieres @0xrootsguerrero@malwareint.com http://blog.seguesec.com @jorgemieres jamieres@malwareint.com

×