6.5 KiB
Xamarin Apps
Lernen Sie das Hacken von AWS von Null bis zum Experten mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud Github-Repositories senden.
Dies ist eine Zusammenfassung des Blog-Beitrags https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
Grundlegende Informationen
Xamarin ist eine Open-Source-Plattform, die für Entwickler entwickelt wurde, um Apps für iOS, Android und Windows mit den .NET- und C#-Frameworks zu erstellen. Diese Plattform bietet Zugriff auf zahlreiche Tools und Erweiterungen, um moderne Anwendungen effizient zu erstellen.
Xamarin-Architektur
- Für Android integriert Xamarin Android- und Java-Namespace über .NET-Bindungen und arbeitet in der Mono-Ausführungsumgebung neben der Android Runtime (ART). Managed Callable Wrappers (MCW) und Android Callable Wrappers (ACW) erleichtern die Kommunikation zwischen Mono und ART, die beide auf dem Linux-Kernel aufbauen.
- Für iOS werden Anwendungen unter der Mono-Laufzeit ausgeführt und nutzen die vollständige Ahead-of-Time (AOT)-Kompilierung, um C# .NET-Code in ARM-Assemblercode umzuwandeln. Dieser Prozess läuft neben der Objective-C-Laufzeit auf einem UNIX-ähnlichen Kernel.
.NET-Laufzeit und Mono-Framework
Das .NET-Framework umfasst Assemblys, Klassen und Namespaces für die Anwendungsentwicklung, wobei die .NET-Laufzeit die Codeausführung verwaltet. Es bietet Plattformunabhängigkeit und Abwärtskompatibilität. Das Mono-Framework ist eine Open-Source-Version des .NET-Frameworks, das 2005 gestartet wurde, um .NET auf Linux zu erweitern. Es wird jetzt von Microsoft unterstützt und von Xamarin geleitet.
Reverse Engineering von Xamarin-Apps
Dekompilierung von Xamarin-Assemblys
Die Dekompilierung wandelt kompilierten Code wieder in Quellcode um. In Windows kann das Fenster "Module" in Visual Studio Module zur Dekompilierung identifizieren, was einen direkten Zugriff auf Code von Drittanbietern und die Extraktion von Quellcode zur Analyse ermöglicht.
JIT vs AOT-Kompilierung
- Android unterstützt Just-In-Time (JIT)- und Ahead-Of-Time (AOT)-Kompilierung mit einem Hybrid-AOT-Modus für optimale Ausführungsgeschwindigkeit. Die vollständige AOT ist exklusiv für Enterprise-Lizenzen.
- iOS verwendet ausschließlich AOT-Kompilierung aufgrund der Einschränkungen von Apple für die Ausführung von dynamischem Code.
Extrahieren von DLL-Dateien aus APK/IPA
Um auf die Assemblys in einer APK/IPA zuzugreifen, entpacken Sie die Datei und erkunden Sie das Verzeichnis der Assemblys. Für Android können Tools wie XamAsmUnZ und xamarin-decompress DLL-Dateien entpacken.
python3 xamarin-decompress.py -o /path/to/decompressed/apk
Für Assembly-Blobs in Android kann pyxamstore sie entpacken.
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
iOS-DLL-Dateien sind leicht zugänglich und können dekompiliert werden, wodurch erhebliche Teile des Anwendungscode offengelegt werden, der oft eine gemeinsame Basis für verschiedene Plattformen hat.
Dynamische Analyse
Die dynamische Analyse umfasst die Überprüfung von SSL-Pinning und die Verwendung von Tools wie Fridax für Laufzeitmodifikationen der .NET-Binärdatei in Xamarin-Apps. Frida-Skripte stehen zur Verfügung, um die Root-Erkennung oder das SSL-Pinning zu umgehen und die Analysefähigkeiten zu verbessern.
Andere interessante Frida-Skripte:
Weitere Informationen
- https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
- https://thecobraden.com/posts/unpacking_xamarin_assembly_stores/
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.