NorthSec 2022

Reverse and bypass of modern Android runtime protections [FR]
2022-05-20, 09:00–12:00, Community Room (de la commune)

De nos jours, les applications mobiles Android sont souvent protégées contre la rétroconception et le pentest par des outils de protection du code à l'exécution. Grace à cet atelier, vous apprendrez à concevoir des contournements universels en utilisant Ghidra et Frida.

Nowadays, Runtime Application Security Protection (RASP) slow down reverse engineering and security assessement of Android application. During this workshup, you will learn how to create universal bypasses against recent protections thanks to Ghidra and Frida.


Important : This workshop is french speaking

FR

Aujourd'hui, l'audit d'application Android protégées contre la rétro-conception par des outils commerciaux modernes (essentiellement les RASPs) peut se révéler fastidieuse. Même si certaines astuces fonctionnent toujours, il existe de nombreuses façons de ralentir la découverte de l'application et son instrumentation. Pendant cet atelier, nous reverserons avec Ghidra et contournerons dynamiquement avec Frida certaines implémentations modernes de mécanismes tels que : packer, anti-frida, anti-debugger, detection de magisk, ...

L'atelier se déroulera selon le plan suivant :

  • 1/ Introduction aux outils de protection des applications Android à l'exécution (RASP) : heuristiques et workflow
  • 2/ Rappel des limitations de Frida dans le cadre d'une utilisation "out-of-the-box" et comment s'en affranchir, par exemple les contextes difficiles à hooker, deoptimisation de ART, Stalker et multi-thread, process externes, etc ..
  • 3/ Installation et prise en main de l'environnement de test
  • 4/ Cas pratique : Automatisation de la deobfuscation statique de chaine de caractères contigües, non-délimitée par des octets nuls et déchiffrée à la volée à l'éxécution par du code diversifié, grace à l'émulation de p-code Ghidra.
  • 5/ Cas pratique : Ecriture de contournement universels de quelques mécanismes (anti-hook, anti-magisk, ...) par l'instrumentation dynamique (avec Frida) d' instructions / syscalls / fonctions / méthodes chargées dynamiquement dans différents contexte. Tels que :
    l'instrumentation avant/aprés des appels système déclenchés par des instruction SVC (en utilisant Interruptor)
    hook de méthodes définies dynamiquement
    hook précoces (avant l'entrypoint) des bibliothèques partagées (*.so) sans patch
    suivre les threads avec les Stalker

Pré-requis :

EN

Today, reverse engineering of Android application protected by modern & industrial-grade Runtime Application Security Protection (RASP) is challenging and time consuming. Even if some old tricks are still working, there is numerous ways to slow down the RE and to detect hooking. In this workshop, an hands-on case will introduce static deobfuscation thank to Ghidra p-code emulation, and continue by writing of universal bypasses using advanced hooking with Frida and Interruptor. You will deobfuscate string hook instructions with Frida into several contexts as multi-thread, multi-process, isolated process or at different early stages.

Workshop should go as follows:

  • 1/ Quick review of the RASP internal worflow and detection functions
  • 2/ Remember about Frida limitations when it is used "out-of-the-box" (Stalker, Java.classFactory, deoptimize, ..)
  • 3/ Setting up hands-on case and test environment
  • 4/ Use case : Deobfuscation of non-null terminated strings deciphered by inlined and diversified function thank to Ghidra's p-code emulation
  • 5/ Use case : Writing instruction / syscall / functions / methods hooks deployed at very different moment. Such as hooking before/after syscall done through SVC instruction, hook of dynamically define method, hook of shared library entrypoint without patch, implementing a follow thread for Frida's Stalke, and so

Requirements:


What is the language of your talk/workshop?

French

Georges-B Michel is the founder and principal security researcher at Reversense. He worked on many security topics including deobfuscation, DBI, Android RASPs bypass, TEE/TA reversing, web application security, and secure coding. Since 2018, he develops several public OSS and private projects such as Interruptor (a Frida library to improve syscall hooking) and Dexcalibur (a mobile reverse engineering and instrumentation automation software). He talked at several security conferences including Insomni'hack, SSTIC, THC, and PassTheSalt.