sourcecon - show me your kung-fu
DESCRIPTION
TRANSCRIPT
![Page 1: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/1.jpg)
@jorgemieresJorge [email protected]
Show me your Kung-Fu ++
Sebastián [email protected] http://blog.seguesec.com
@0xroot
![Page 2: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/2.jpg)
ContenidoContenido
• IntroducciónIntroducción• Análisis EstáticoAnálisis Estático• Análisis DinámicoAnálisis Dinámico• Análisis ForenseAnálisis Forense• Amenazas en los smartphonesAmenazas en los smartphones• Hardening AndroidHardening Android• Evolución del malwareEvolución del malware• NickispyNickispy• ProteccionesProtecciones• VulnerabilidadesVulnerabilidades• ConclusiónConclusión
![Page 3: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/3.jpg)
Estructura del sistemaEstructura del sistema
![Page 4: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/4.jpg)
Ficheros APKFicheros APK
• Usado para empacar las aplicaciones• Todo APK incluye:
• classes.dex• resources.asc• /res• /META-INF• AndroidManifest.xml
![Page 5: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/5.jpg)
Formato de ficheros DEXFormato de ficheros DEX
![Page 6: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/6.jpg)
Android ManifestAndroid Manifest
![Page 7: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/7.jpg)
Ejemplo de códigoEjemplo de código
• java/Fuente (Compiler) – dex/dexdump• dex/dex2jar (jdgui) – java/jd-gui• dex/dexdump (basksmali) - smali/basksmali
![Page 8: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/8.jpg)
Análisis EstáticoAnálisis Estático
![Page 9: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/9.jpg)
Análisis DinámicoAnálisis Dinámico
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.pcap
3. Instalamos la aplicación• adb install appname.apk
4. Lanzamos pruebas sobre el dispositivo y la aplicación• adb shell monkey –v –p package.app n
5. Leemos los logs• adb shell logcat –d
6. Podemos apoyarnos en Wireshark para leer los logs de conexiones.
![Page 10: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/10.jpg)
Simular EventosSimular Eventos
• Llamadas de teléfonoLlamadas de teléfono• gsm call p-n• gsm accept p-n• gsm cancel p-n
• SMSSMS• sms send prefix-number text
• Emular velocidad de redEmular velocidad de red• netspeed gsm n• netspeed umts n
• Cambiar coordenadas GPSCambiar coordenadas GPS• geo fix -13… 21…
![Page 11: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/11.jpg)
Modus OperandiModus Operandi
1. AXMLPrinter2 – Extraemos la información delAndroidManifest.xml
2. Dex2jar – Convertimos el fichero .dex en un ficherode clases .jar.JAD – Transformamos los ficheros .class en ficheros .jad
3. 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.
![Page 12: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/12.jpg)
Técnicas antianálisisTécnicas antianálisis
• 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.
![Page 13: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/13.jpg)
ForensicsForensics
• 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 dispositivo 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.
![Page 14: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/14.jpg)
Encrip… What da fuck?Encrip… What da fuck?
![Page 15: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/15.jpg)
Si pierdes tu teléfono prepárate para…Si pierdes tu teléfono prepárate para…
![Page 16: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/16.jpg)
Amenazas en los smartphonesAmenazas en los smartphones
• Amenazas basadas en aplicacionesAmenazas basadas en aplicaciones• Malware • Spyware• Amenazas de privacidad• Vulnerabilidades en aplicaciones
• Amenazas basadas en la webAmenazas basadas en la web• Phishing• Drive-by-downloads• Exploits en navegadores
• Amenazas basadas en las redesAmenazas basadas en las redes• Exploits para protocolos de red• Wi-fi sniffing
• Amenazas físicasAmenazas físicas• Pérdida o robo del dispositivo
![Page 17: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/17.jpg)
Hardening AndroidHardening Android
• Deshabilitar la instalación de software de terceras entidades.Deshabilitar la instalación de software de terceras entidades.
• Deshabilitar funcionalidades/dispositivos inseguros/innecesarios.Deshabilitar funcionalidades/dispositivos inseguros/innecesarios.
• Hacer uso de “antivirus”Hacer uso de “antivirus”
• LEERLEER, , LEERLEER y y LEERLEER los permisos.los permisos.
• Borrado remoto, localización por GPS.Borrado remoto, localización por GPS.
• No instalar aplicaciones descargadas de markets de terceros.No instalar aplicaciones descargadas de markets de terceros.
![Page 18: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/18.jpg)
Evolución del malwareEvolución del malware
Nombre Características Riesgo
AndroidOS.FakePlayer.a
AndroidOS_Droisnake.A
AndroidOS.FakePlayer.b
AndroidOS.FakePlayer.c
Android.Geinimi
Android.HongTouTou
Android.Pjapps
Android.DroidDream
Android.BgServ
Android.Zeahache
Android.Walkinwat
Android.Adsms
Android.Zsone
Android.Spacem
Android.LightDD
Android/DroidKungFu.A
Nombre Características Riesgo
Android.Basebridge
Android.Uxipp
Andr/Plankton-A
Android.Jsmshider
Android.GGTracker
Android.KungFu Variants
AndroidOS_Crusewin.A
AndroidOS_SpyGold.A
DroidDream Light Variant
Android.Smssniffer
Android.HippoSMS
Android.Fokonge
Android/Sndapps.A
Android.Nickispy
Android.Lovetrap
Android.Premiumtext
Android.NickiBot
![Page 19: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/19.jpg)
NickiSpyNickiSpy
• Alerta de seguridad - 19 julioAlerta de seguridad - 19 julio
• Detectado por Symantec ~ 20apps Detectado por Symantec ~ 20apps
• Procedencia – Fujian (China)Procedencia – Fujian (China)
• Nombre – com.nicky.lyyws.xmallNombre – com.nicky.lyyws.xmall
• Desarrollado por – 56mo http://www.56mo.comDesarrollado por – 56mo http://www.56mo.com
• Descargar desde – Descargar desde – http://user.c5005.com/DownList.aspxhttp://user.c5005.com/DownList.aspx
![Page 20: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/20.jpg)
EstadísticasEstadísticas
• No se distribuyó nunca por el Market.
• Se puede descargar desde la página de la compañía:• Elegir marca de Smartphone.• Elegir modelo concreto.
• Acto seguido fue distribuido por varios Markets chinos• CamangiMarket - camangimarket.com• GoAPK - goapk.com
•
•
MD5 Ratio Fecha
ad4dbe34853f1d58543b0b8db133eb5b 10/44 2011.08.31
a21ae2802a0ee460ca2d17a9102ff7b1 14/44 2011.09.04
15afe9bfa1b3139b5727112aa12b8f70 19/44 2011.08.31
426cedcf268bdf556aa405e0c8e03c16 20/44 2011.08.31
0d2d9504649a97e7afee2caca61e277e 15/44 2011.09.02
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)18 muestras ~ 1ª muestra (19.07) ~ Detectadas (11.08-04.09)
![Page 21: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/21.jpg)
AutorAutor
![Page 22: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/22.jpg)
Lista de permisosLista de permisos
•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_STORAGE
![Page 23: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/23.jpg)
Proceso de infecciónProceso de infección
• 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)
![Page 24: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/24.jpg)
Fichero de configuraciónFichero de configuración
• Obtiene el IMEI del dispositivo.
• Crea un fichero de configuración• Ruta: com.nicky.lyyws.xamll/lib/shared_prefs • Nombre fichero: XM_All_Setting
![Page 25: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/25.jpg)
Servidor C&CServidor C&C
• Servidor C&C: jin.56mo.com• Puerto: 2018
![Page 26: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/26.jpg)
Análisis IAnálisis I
![Page 27: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/27.jpg)
Servicio de grabaciónServicio de grabación
• /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)
![Page 28: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/28.jpg)
Servicio SMSServicio SMS
• 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.
![Page 29: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/29.jpg)
Formato “AMR”Formato “AMR”
• 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
![Page 30: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/30.jpg)
¿Protección en las aplicaciones?¿Protección en las aplicaciones?
• 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..
![Page 31: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/31.jpg)
Rompiendo la protecciónRompiendo la protección
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 APKTool5. Firmar la aplicación con jargsigner6. Usar zipalign 7. Instalar y disfrutar.
Proceso manual
Proceso automatizado• Sólo es necesario revertir la librería encargada de veriticar las licencias (License
Verification Library)
• Usar la herramienta anti-lvl::
![Page 32: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/32.jpg)
TapJackingTapJacking
• 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 <= 4.0
• ¿Qué piensa Google de todo esto?
![Page 33: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/33.jpg)
¿Cómo está organizado?¿Cómo está organizado?
• 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/
![Page 34: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/34.jpg)
ConclusionesConclusiones
![Page 35: SourceCON - Show me your kung-fu](https://reader033.vdocuments.net/reader033/viewer/2022061122/5472c2bcb4af9fc30a8b4fe0/html5/thumbnails/35.jpg)
@jorgemieresJorge [email protected]
@jorgemieres
¡MUCHAS GRACIAS!Sebastián [email protected] http://blog.seguesec.com
@0xroot