Einführung in das Pentesting mobiler Anwendungen, ohne beim Versuch zu sterben
Aktie
Bevor wir über mobiles Pentesting sprechen, müssen wir die Grundlagen legen und zwischen statischer Analyse der Anwendung und dynamischer Analyse unterscheiden. Aber nicht bevor wir über die Struktur einer APK gesprochen haben.
Der Prozess der Zerlegung einer APK wird als Dekomprimierung bezeichnet und durch diesen Prozess können wir auf die Innereien unserer Binärdatei zugreifen:
Dazu würde es ausreichen:
entpacken Sie APP.apk -d Output-unzip
apktool d APP.apk -o Ausgabe-apktool
Wenn es darum geht, den Quellcode zu dekompilieren, haben wir zwei Möglichkeiten: Einerseits können wir die .smali-Datei generieren, die der für Menschen „lesbare“ Bytecode ist (apktool), oder die interpretierte .java-Datei generieren, die nicht die Originalquelle ist Code, aber wir Es hilft, die Logik der Anwendung leichter zu verstehen (jadx).
Statische vs. dynamische Analyse
Statische Analyse
- Anfällige Schlüsselwörter oder Codemuster.
- Anmeldeinformationen/API-Schlüssel.
- URLs/Endpunkte.
- Identifizierung wichtiger Funktionen: Authentifizierung, Statusänderungen, PII.
- Identifizierung der Debug-Funktion. Vorhandensein von Kommentaren im Code.
- Identifizierung gefährlicher Funktionen: Verwendung von externem Speicher, Codeausführung. Desinfektion.
- Hartcodierte Geheimnisse.