Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena

This commit is contained in:
Translator 2025-07-15 17:14:11 +00:00
parent 515a414df1
commit 5031e65a6e
8 changed files with 91 additions and 91 deletions

View File

@ -51,7 +51,7 @@ svc wifi disable; ifconfig wlan0 up; nexutil -s0x613 -i -v2
Disable monitor mode:
nexutil -m0; svc wifi enable
```
Aktivieren Sie „Monitor-Modus beim Start von airodump starten“, damit jeder Hijacker-Scan im nativen Monitor-Modus (`wlan0` anstelle von `wlan0mon`) erfolgt.
Aktivieren Sie „Monitor-Modus beim Start von airodump starten“, damit jeder Hijacker-Scan im nativen Monitor-Modus erfolgt (`wlan0` anstelle von `wlan0mon`).
Wenn Hijacker beim Start Fehler anzeigt, erstellen Sie das erforderliche Verzeichnis im gemeinsamen Speicher und öffnen Sie die App erneut:
```bash
@ -60,10 +60,10 @@ mkdir -p /storage/emulated/0/Hijacker
### Was bedeuten diese `nexutil`-Flags?
* **`-s0x613`** Schreibe Firmware-Variable 0x613 (FCAP_FRAME_INJECTION) → `1` (Aktivieren des TX von beliebigen Frames).
* **`-i`** Setze das Interface in den Monitor-Modus (Radiotap-Header wird hinzugefügt).
* **`-v2`** Setze die ausführliche Ebene; `2` druckt Bestätigung und Firmware-Version.
* **`-m0`** Stelle den verwalteten Modus wieder her (wird im *disable*-Befehl verwendet).
* **`-v2`** Setze die Ausführlichkeitsebene; `2` druckt Bestätigung und Firmware-Version.
* **`-m0`** Stelle den Managed-Modus wieder her (wird im *disable*-Befehl verwendet).
Nachdem du *Monitor-Modus aktivieren* ausgeführt hast, solltest du das Interface im Monitor-Zustand sehen und in der Lage sein, rohe Frames mit zu erfassen:
Nach dem Ausführen von *Enable monitor mode* solltest du das Interface im Monitor-Zustand sehen und in der Lage sein, rohe Frames mit:
```bash
airodump-ng --band abg wlan0
```

BIN
src/images/discount.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

View File

@ -57,7 +57,7 @@ Wenn Sie sich die **Strings** der APK ansehen, können Sie nach **Passwörtern**
**Firebase**
Achten Sie besonders auf **Firebase-URLs** und überprüfen Sie, ob sie schlecht konfiguriert sind. [Weitere Informationen darüber, was Firebase ist und wie man es ausnutzen kann, finden Sie hier.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
Achten Sie besonders auf **Firebase-URLs** und überprüfen Sie, ob sie schlecht konfiguriert sind. [Weitere Informationen darüber, was Firebase ist und wie man es ausnutzt, finden Sie hier.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
### Grundverständnis der Anwendung - Manifest.xml, strings.xml
@ -70,7 +70,7 @@ Die **Untersuchung der _Manifest.xml_ und _strings.xml_**-Dateien einer Anwendun
- **Netzwerksicherheit**: Benutzerdefinierte Netzwerksicherheitskonfigurationen (`android:networkSecurityConfig="@xml/network_security_config"`) in _res/xml/_ können Sicherheitsdetails wie Zertifikatspinning und HTTP-Verkehrseinstellungen spezifizieren. Ein Beispiel ist das Zulassen von HTTP-Verkehr für bestimmte Domains.
- **Exportierte Aktivitäten und Dienste**: Das Identifizieren exportierter Aktivitäten und Dienste im Manifest kann Komponenten hervorheben, die missbraucht werden könnten. Eine weitere Analyse während des dynamischen Testens kann aufzeigen, wie man diese Komponenten ausnutzt.
- **Content Provider und FileProviders**: Exponierte Content Provider könnten unbefugten Zugriff oder Modifikationen von Daten ermöglichen. Die Konfiguration von FileProviders sollte ebenfalls überprüft werden.
- **Broadcast-Empfänger und URL-Schemata**: Diese Komponenten könnten für Ausnutzungen verwendet werden, wobei besonderes Augenmerk darauf gelegt werden sollte, wie URL-Schemata für Eingabeverletzungen verwaltet werden.
- **Broadcast-Empfänger und URL-Schemata**: Diese Komponenten könnten für Ausnutzungen verwendet werden, wobei besonderes Augenmerk darauf gelegt werden sollte, wie URL-Schemata für Eingabeverwundbarkeiten verwaltet werden.
- **SDK-Versionen**: Die Attribute `minSdkVersion`, `targetSDKVersion` und `maxSdkVersion` geben die unterstützten Android-Versionen an und heben die Bedeutung hervor, veraltete, anfällige Android-Versionen aus Sicherheitsgründen nicht zu unterstützen.
Aus der **strings.xml**-Datei können sensible Informationen wie API-Schlüssel, benutzerdefinierte Schemata und andere Entwicklernotizen entdeckt werden, was die Notwendigkeit einer sorgfältigen Überprüfung dieser Ressourcen unterstreicht.
@ -78,7 +78,7 @@ Aus der **strings.xml**-Datei können sensible Informationen wie API-Schlüssel,
### Tapjacking
**Tapjacking** ist ein Angriff, bei dem eine **bösartige** **Anwendung** gestartet wird und sich **oberhalb einer Opferanwendung positioniert**. Sobald sie die Opfer-App sichtbar verdeckt, ist ihre Benutzeroberfläche so gestaltet, dass sie den Benutzer dazu verleitet, mit ihr zu interagieren, während sie die Interaktion an die Opfer-App weiterleitet.\
In der Tat **blendet es den Benutzer aus, sodass er nicht weiß, dass er tatsächlich Aktionen auf der Opfer-App ausführt**.
In der Tat **blendet es den Benutzer aus, sodass er nicht weiß, dass er tatsächlich Aktionen in der Opfer-App ausführt**.
Weitere Informationen finden Sie in:
@ -100,12 +100,12 @@ android-task-hijacking.md
**Interner Speicher**
In Android sind Dateien, die im **internen** Speicher **gespeichert** sind, **so konzipiert**, dass sie **ausschließlich** von der **App**, die sie **erstellt** hat, **zugänglich** sind. Diese Sicherheitsmaßnahme wird vom Android-Betriebssystem **durchgesetzt** und ist im Allgemeinen ausreichend für die Sicherheitsbedürfnisse der meisten Anwendungen. Entwickler nutzen jedoch manchmal Modi wie `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE`, um **zuzulassen**, dass Dateien zwischen verschiedenen Anwendungen **geteilt** werden. Diese Modi **beschränken jedoch nicht den Zugriff** auf diese Dateien durch andere Anwendungen, einschließlich potenziell bösartiger.
In Android sind Dateien, die im **internen** Speicher **gespeichert** sind, **so konzipiert**, dass sie **ausschließlich** von der **App**, die sie **erstellt** hat, **zugänglich** sind. Diese Sicherheitsmaßnahme wird vom Android-Betriebssystem **durchgesetzt** und ist im Allgemeinen ausreichend für die Sicherheitsbedürfnisse der meisten Anwendungen. Entwickler nutzen jedoch manchmal Modi wie `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE`, um **Dateien** zwischen verschiedenen Anwendungen **zu teilen**. Diese Modi **beschränken jedoch nicht den Zugriff** auf diese Dateien durch andere Anwendungen, einschließlich potenziell bösartiger.
1. **Statische Analyse:**
- **Stellen Sie sicher**, dass die Verwendung von `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE` **sorgfältig geprüft** wird. Diese Modi **könnten Dateien potenziell ungewolltem oder unbefugtem Zugriff** aussetzen.
- **Stellen Sie sicher**, dass die Verwendung von `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE` **sorgfältig geprüft** wird. Diese Modi **könnten Dateien** für **unbeabsichtigten oder unbefugten Zugriff** **aussetzen**.
2. **Dynamische Analyse:**
- **Überprüfen** Sie die **Berechtigungen**, die auf Dateien gesetzt sind, die von der App erstellt wurden. Überprüfen Sie insbesondere, ob Dateien **so eingestellt sind, dass sie weltweit lesbar oder schreibbar sind**. Dies kann ein erhebliches Sicherheitsrisiko darstellen, da es **jeder Anwendung**, die auf dem Gerät installiert ist, unabhängig von ihrer Herkunft oder Absicht, ermöglichen würde, diese Dateien **zu lesen oder zu modifizieren**.
- **Überprüfen** Sie die **Berechtigungen**, die für Dateien festgelegt sind, die von der App erstellt wurden. Überprüfen Sie insbesondere, ob Dateien **so eingestellt sind, dass sie weltweit lesbar oder schreibbar sind**. Dies kann ein erhebliches Sicherheitsrisiko darstellen, da es **jeder Anwendung**, die auf dem Gerät installiert ist, unabhängig von ihrer Herkunft oder Absicht, **ermöglicht, diese Dateien zu lesen oder zu modifizieren**.
**Externer Speicher**
@ -114,7 +114,7 @@ Beim Umgang mit Dateien auf **externem Speicher**, wie SD-Karten, sollten bestim
1. **Zugänglichkeit**:
- Dateien auf externem Speicher sind **global lesbar und schreibbar**. Das bedeutet, dass jede Anwendung oder jeder Benutzer auf diese Dateien zugreifen kann.
2. **Sicherheitsbedenken**:
- Angesichts des einfachen Zugriffs wird geraten, **keine sensiblen Informationen** auf externem Speicher zu speichern.
- Angesichts der einfachen Zugänglichkeit wird geraten, **keine sensiblen Informationen** auf externem Speicher zu speichern.
- Externer Speicher kann entfernt oder von jeder Anwendung zugegriffen werden, was ihn weniger sicher macht.
3. **Umgang mit Daten vom externen Speicher**:
- Führen Sie immer **Eingangsvalidierungen** für Daten durch, die vom externen Speicher abgerufen werden. Dies ist entscheidend, da die Daten aus einer nicht vertrauenswürdigen Quelle stammen.
@ -128,8 +128,8 @@ Externer Speicher kann in `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` **zuge
**Sensible Daten im Klartext gespeichert**
- **Geteilte Präferenzen**: Android erlaubt jeder Anwendung, XML-Dateien im Pfad `/data/data/<packagename>/shared_prefs/` einfach zu speichern, und manchmal ist es möglich, sensible Informationen im Klartext in diesem Ordner zu finden.
- **Datenbanken**: Android erlaubt jeder Anwendung, SQLite-Datenbanken im Pfad `/data/data/<packagename>/databases/` einfach zu speichern, und manchmal ist es möglich, sensible Informationen im Klartext in diesem Ordner zu finden.
- **Geteilte Präferenzen**: Android ermöglicht es jeder Anwendung, XML-Dateien im Pfad `/data/data/<packagename>/shared_prefs/` einfach zu speichern, und manchmal ist es möglich, sensible Informationen im Klartext in diesem Ordner zu finden.
- **Datenbanken**: Android ermöglicht es jeder Anwendung, SQLite-Datenbanken im Pfad `/data/data/<packagename>/databases/` einfach zu speichern, und manchmal ist es möglich, sensible Informationen im Klartext in diesem Ordner zu finden.
### Gebrochene TLS
@ -140,9 +140,9 @@ Aus irgendeinem Grund akzeptieren Entwickler manchmal alle Zertifikate, selbst w
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
```
Eine gute Möglichkeit, dies zu testen, besteht darin, den Datenverkehr mit einem Proxy wie Burp zu erfassen, ohne das Burp CA-Zertifikat auf dem Gerät zu autorisieren. Außerdem können Sie mit Burp ein Zertifikat für einen anderen Hostnamen generieren und es verwenden.
Eine gute Möglichkeit, dies zu testen, besteht darin, den Datenverkehr mit einem Proxy wie Burp zu erfassen, ohne das Burp CA-Zertifikat auf dem Gerät zu autorisieren. Außerdem können Sie mit Burp ein Zertifikat für einen anderen Hostnamen generieren und verwenden.
### Defekte Kryptografie
### Gebrochene Kryptografie
**Schlechte Schlüsselverwaltungsprozesse**
@ -150,15 +150,15 @@ Einige Entwickler speichern sensible Daten im lokalen Speicher und verschlüssel
**Verwendung unsicherer und/oder veralteter Algorithmen**
Entwickler sollten keine **veralteten Algorithmen** verwenden, um **Autorisierungsprüfungen** durchzuführen, **Daten zu speichern** oder **zu senden**. Einige dieser Algorithmen sind: RC4, MD4, MD5, SHA1... Wenn **Hashes** beispielsweise zum Speichern von Passwörtern verwendet werden, sollten brute-force **resistente** Hashes mit Salt verwendet werden.
Entwickler sollten keine **veralteten Algorithmen** verwenden, um **Autorisierungsprüfungen** durchzuführen, **Daten zu speichern** oder **zu senden**. Einige dieser Algorithmen sind: RC4, MD4, MD5, SHA1... Wenn **Hashes** beispielsweise zum Speichern von Passwörtern verwendet werden, sollten hash-brute-force **resistente** Hashes mit Salt verwendet werden.
### Weitere Überprüfungen
- Es wird empfohlen, die **APK zu obfuskieren**, um die Reverse-Engineering-Arbeit für Angreifer zu erschweren.
- Wenn die App sensibel ist (wie Bank-Apps), sollte sie **eigene Überprüfungen durchführen, um zu sehen, ob das Mobilgerät gerootet ist**, und entsprechend handeln.
- Wenn die App sensibel ist (wie Bank-Apps), sollte sie überprüfen, ob ein **Emulator** verwendet wird.
- Wenn die App sensibel ist (wie Bank-Apps), sollte sie **ihre eigene Integrität überprüfen, bevor sie ausgeführt wird**, um zu überprüfen, ob sie modifiziert wurde.
- Verwenden Sie [**APKiD**](https://github.com/rednaga/APKiD), um zu überprüfen, welcher Compiler/Packer/Obfuskator verwendet wurde, um die APK zu erstellen.
- Wenn die App sensibel ist (wie Bank-Apps), sollte sie **ihre eigene Integrität überprüfen, bevor sie ausgeführt wird**, um zu prüfen, ob sie modifiziert wurde.
- Verwenden Sie [**APKiD**](https://github.com/rednaga/APKiD), um zu überprüfen, welcher Compiler/Packer/Obfuskator zum Erstellen der APK verwendet wurde.
### React Native Anwendung
@ -231,7 +231,7 @@ Dank der ADB-Verbindung können Sie **Drozer** und **Frida** in den Emulatoren v
#### Verwendung eines Emulators
- [**Android Studio**](https://developer.android.com/studio) (Sie können **x86** und **arm** Geräte erstellen, und laut [**diesem**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**neueste x86** Versionen **unterstützen ARM-Bibliotheken** ohne einen langsamen ARM-Emulator zu benötigen).
- [**Android Studio**](https://developer.android.com/studio) (Sie können **x86** und **arm** Geräte erstellen, und laut [**diesem** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**neueste x86** Versionen **unterstützen ARM-Bibliotheken** ohne einen langsamen ARM-Emulator zu benötigen).
- Lernen Sie, wie Sie es auf dieser Seite einrichten:
{{#ref}}
@ -242,7 +242,7 @@ avd-android-virtual-device.md
- [**Nox**](https://es.bignox.com) (Kostenlos, unterstützt jedoch kein Frida oder Drozer).
> [!TIP]
> Denken Sie daran, dass beim Erstellen eines neuen Emulators auf einer beliebigen Plattform der Emulator langsamer läuft, je größer der Bildschirm ist. Wählen Sie also nach Möglichkeit kleine Bildschirme aus.
> Denken Sie daran, dass beim Erstellen eines neuen Emulators auf einer beliebigen Plattform der Emulator umso langsamer läuft, je größer der Bildschirm ist. Wählen Sie also nach Möglichkeit kleine Bildschirme aus.
Um **Google-Dienste** (wie den App Store) in Genymotion zu installieren, müssen Sie auf die rot markierte Schaltfläche im folgenden Bild klicken:
@ -273,9 +273,9 @@ Entwickler sollten vorsichtig sein, **Debugging-Informationen** öffentlich zug
> Beachten Sie, dass ab **neueren Versionen als Android 4.0** **Anwendungen nur auf ihre eigenen Protokolle zugreifen können**. Anwendungen können also nicht auf die Protokolle anderer Apps zugreifen.\
> Dennoch wird empfohlen, **sensible Informationen nicht zu protokollieren**.
**Zwischenablage-Caching**
**Zwischenablage-Puffer-Caching**
Das **zwischenablagebasierte** Framework von Android ermöglicht die Copy-Paste-Funktionalität in Apps, birgt jedoch ein Risiko, da **andere Anwendungen** auf die Zwischenablage **zugreifen** können, was potenziell sensible Daten offenlegen könnte. Es ist wichtig, die Funktionen **Kopieren/Einfügen** für sensible Abschnitte einer Anwendung, wie z. B. Kreditkartendaten, zu deaktivieren, um Datenlecks zu verhindern.
Das **zwischenablagebasierte** Framework von Android ermöglicht die Copy-Paste-Funktionalität in Apps, birgt jedoch ein Risiko, da **andere Anwendungen** auf die Zwischenablage **zugreifen** können, was potenziell sensible Daten offenlegen könnte. Es ist entscheidend, die Funktionen **Kopieren/Einfügen** für sensible Abschnitte einer Anwendung, wie z. B. Kreditkartendaten, zu deaktivieren, um Datenlecks zu verhindern.
**Absturzprotokolle**
@ -292,14 +292,14 @@ Anwendungen integrieren häufig Dienste wie Google Adsense, die unbeabsichtigt *
Die meisten Anwendungen verwenden **interne SQLite-Datenbanken**, um Informationen zu speichern. Während des Pentests sollten Sie einen **Blick** auf die **Datenbanken** werfen, die erstellt wurden, die Namen der **Tabellen** und **Spalten** sowie alle **gespeicherten Daten**, da Sie **sensible Informationen** finden könnten (was eine Schwachstelle darstellen würde).\
Datenbanken sollten sich in `/data/data/the.package.name/databases` wie `/data/data/com.mwr.example.sieve/databases` befinden.
Wenn die Datenbank vertrauliche Informationen speichert und **verschlüsselt** ist, Sie jedoch das **Passwort** in der Anwendung **finden** können, ist das immer noch eine **Schwachstelle**.
Wenn die Datenbank vertrauliche Informationen speichert und **verschlüsselt** ist, Sie jedoch das **Passwort** in der Anwendung **finden** können, ist dies immer noch eine **Schwachstelle**.
Zählen Sie die Tabellen mit `.tables` und zählen Sie die Spalten der Tabellen mit `.schema <table_name>`.
### Drozer (Exploiting Activities, Content Providers und Services)
Aus [Drozer-Dokumentation](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** ermöglicht es Ihnen, **die Rolle einer Android-App zu übernehmen** und mit anderen Apps zu interagieren. Es kann **alles tun, was eine installierte Anwendung tun kann**, wie die Nutzung des Inter-Process Communication (IPC)-Mechanismus von Android und die Interaktion mit dem zugrunde liegenden Betriebssystem.\
Drozer ist ein nützliches Tool, um **exportierte Aktivitäten, exportierte Dienste und Content Provider** auszunutzen, wie Sie in den folgenden Abschnitten lernen werden.
Laut [Drozer-Dokumentation](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** ermöglicht es Ihnen, **die Rolle einer Android-App zu übernehmen** und mit anderen Apps zu interagieren. Es kann **alles tun, was eine installierte Anwendung tun kann**, wie die Nutzung des Inter-Process Communication (IPC)-Mechanismus von Android und die Interaktion mit dem zugrunde liegenden Betriebssystem.\
Drozer ist ein nützliches Tool, um **exportierte Aktivitäten, exportierte Dienste und Content Providers** auszunutzen, wie Sie in den folgenden Abschnitten lernen werden.
### Ausnutzen exportierter Aktivitäten
@ -335,7 +335,7 @@ Wenn Tapjacking nicht verhindert wird, könnten Sie die exportierte Aktivität m
### Ausnutzen von Content Providern - Zugriff auf und Manipulation sensibler Informationen
[**Lesen Sie dies, wenn Sie auffrischen möchten, was ein Content Provider ist.**](android-applications-basics.md#content-provider)\
Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine App verfügbare Content Provider hat, können Sie möglicherweise **sensible** Daten von ihnen **extrahieren**. Es ist auch interessant, mögliche **SQL-Injektionen** und **Path Traversals** zu testen, da sie anfällig sein könnten.
Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine App verfügbare Content Provider hat, können Sie möglicherweise **sensible** Daten von ihnen **extrahieren**. Es ist auch interessant, mögliche **SQL-Injection**- und **Path Traversal**-Angriffe zu testen, da sie anfällig sein könnten.
[**Erfahren Sie, wie Sie Content Provider mit Drozer ausnutzen.**](drozer-tutorial/index.html#content-providers)
@ -344,7 +344,7 @@ Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine A
[**Lesen Sie dies, wenn Sie auffrischen möchten, was ein Service ist.**](android-applications-basics.md#services)\
Denken Sie daran, dass die Aktionen eines Services in der Methode `onStartCommand` beginnen.
Ein Service ist im Grunde etwas, das **Daten empfangen**, **verarbeiten** und (oder nicht) eine Antwort **zurückgeben** kann. Wenn eine Anwendung einige Services exportiert, sollten Sie den **Code** überprüfen, um zu verstehen, was er tut, und ihn **dynamisch** testen, um vertrauliche Informationen zu extrahieren, Authentifizierungsmaßnahmen zu umgehen...\
Ein Service ist im Grunde etwas, das **Daten empfangen**, sie **verarbeiten** und (oder nicht) eine Antwort **zurückgeben** kann. Wenn eine Anwendung einige Services exportiert, sollten Sie den **Code** überprüfen, um zu verstehen, was er tut, und ihn **dynamisch** testen, um vertrauliche Informationen zu extrahieren, Authentifizierungsmaßnahmen zu umgehen...\
[**Erfahren Sie, wie Sie Services mit Drozer ausnutzen.**](drozer-tutorial/index.html#services)
### **Ausnutzen von Broadcast Receivers**
@ -371,18 +371,18 @@ _Beachten Sie, dass Sie **den Paketnamen weglassen** können und das Mobilgerät
```
**Code ausgeführt**
Um den **Code zu finden, der in der App ausgeführt wird**, gehen Sie zu der Aktivität, die durch den Deeplink aufgerufen wird, und suchen Sie die Funktion **`onNewIntent`**.
Um den **Code zu finden, der in der App ausgeführt wird**, gehe zur Aktivität, die durch den Deeplink aufgerufen wird, und suche die Funktion **`onNewIntent`**.
![](<../../images/image (436) (1) (1) (1).png>)
**Sensible Informationen**
Jedes Mal, wenn Sie einen Deep Link finden, überprüfen Sie, dass **er keine sensiblen Daten (wie Passwörter) über URL-Parameter empfängt**, da jede andere Anwendung **den Deep Link nachahmen und diese Daten stehlen könnte!**
Jedes Mal, wenn du einen Deep Link findest, überprüfe, dass **er keine sensiblen Daten (wie Passwörter) über URL-Parameter empfängt**, da jede andere Anwendung **den Deep Link nachahmen und diese Daten stehlen könnte!**
**Parameter im Pfad**
Sie **müssen auch überprüfen, ob ein Deep Link einen Parameter im Pfad** der URL verwendet, wie: `https://api.example.com/v1/users/{username}`. In diesem Fall können Sie eine Pfadtraversierung erzwingen, indem Sie auf etwas wie: `example://app/users?username=../../unwanted-endpoint%3fparam=value` zugreifen.\
Beachten Sie, dass Sie, wenn Sie die richtigen Endpunkte innerhalb der Anwendung finden, möglicherweise eine **Open Redirect** verursachen können (wenn ein Teil des Pfades als Domainname verwendet wird), **Accountübernahme** (wenn Sie die Benutzerdaten ohne CSRF-Token ändern können und der verwundbare Endpunkt die richtige Methode verwendet) und jede andere Verwundbarkeit. Mehr [Info dazu hier](http://dphoeniixx.com/2020/12/13-2/).
Du **musst auch überprüfen, ob ein Deep Link einen Parameter im Pfad** der URL verwendet, wie: `https://api.example.com/v1/users/{username}`. In diesem Fall kannst du eine Pfadtraversierung erzwingen, indem du auf etwas wie: `example://app/users?username=../../unwanted-endpoint%3fparam=value` zugreifst.\
Beachte, dass du, wenn du die richtigen Endpunkte innerhalb der Anwendung findest, möglicherweise eine **Open Redirect** verursachen kannst (wenn ein Teil des Pfades als Domainname verwendet wird), **Accountübernahme** (wenn du die Benutzerdaten ohne CSRF-Token ändern kannst und der verwundbare Endpunkt die richtige Methode verwendet) und jede andere Verwundbarkeit. Mehr [Infos dazu hier](http://dphoeniixx.com/2020/12/13-2/).
**Weitere Beispiele**
@ -390,9 +390,9 @@ Ein [interessanter Bug-Bounty-Bericht](https://hackerone.com/reports/855618) üb
### Transport Layer Inspektion und Verifizierungsfehler
- **Zertifikate werden von Android-Anwendungen nicht immer ordnungsgemäß überprüft**. Es ist üblich, dass diese Anwendungen Warnungen ignorieren und selbstsignierte Zertifikate akzeptieren oder in einigen Fällen auf HTTP-Verbindungen zurückgreifen.
- **Zertifikate werden von Android-Anwendungen nicht immer ordnungsgemäß überprüft**. Es ist üblich, dass diese Anwendungen Warnungen übersehen und selbstsignierte Zertifikate akzeptieren oder in einigen Fällen auf HTTP-Verbindungen zurückgreifen.
- **Verhandlungen während des SSL/TLS-Handshakes sind manchmal schwach** und verwenden unsichere Cipher-Suiten. Diese Verwundbarkeit macht die Verbindung anfällig für Man-in-the-Middle (MITM)-Angriffe, die es Angreifern ermöglichen, die Daten zu entschlüsseln.
- **Leckage privater Informationen** ist ein Risiko, wenn Anwendungen über sichere Kanäle authentifizieren, aber dann über unsichere Kanäle für andere Transaktionen kommunizieren. Dieser Ansatz schützt sensible Daten, wie Sitzungscookies oder Benutzerdetails, nicht vor der Abfangung durch böswillige Akteure.
- **Leckage privater Informationen** ist ein Risiko, wenn Anwendungen über sichere Kanäle authentifizieren, dann jedoch über unsichere Kanäle für andere Transaktionen kommunizieren. Dieser Ansatz schützt sensible Daten, wie Sitzungscookies oder Benutzerdetails, nicht vor Abfangen durch böswillige Akteure.
#### Zertifikatsverifizierung
@ -404,21 +404,21 @@ SSL-Pinning ist eine Sicherheitsmaßnahme, bei der die Anwendung das Serverzerti
#### Verkehrsinpektion
Um HTTP-Verkehr zu inspizieren, ist es notwendig, das **Zertifikat des Proxy-Tools** (z. B. Burp) zu **installieren**. Ohne die Installation dieses Zertifikats ist der verschlüsselte Verkehr möglicherweise nicht über den Proxy sichtbar. Für eine Anleitung zur Installation eines benutzerdefinierten CA-Zertifikats [**klicken Sie hier**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Um HTTP-Verkehr zu inspizieren, ist es notwendig, das **Zertifikat des Proxy-Tools** (z. B. Burp) zu **installieren**. Ohne die Installation dieses Zertifikats ist der verschlüsselte Verkehr möglicherweise nicht über den Proxy sichtbar. Für eine Anleitung zur Installation eines benutzerdefinierten CA-Zertifikats, [**klicke hier**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Anwendungen, die **API Level 24 und höher** anvisieren, erfordern Änderungen an der Network Security Config, um das CA-Zertifikat des Proxys zu akzeptieren. Dieser Schritt ist entscheidend für die Inspektion von verschlüsseltem Verkehr. Für Anweisungen zur Änderung der Network Security Config [**verweisen Sie auf dieses Tutorial**](make-apk-accept-ca-certificate.md).
Anwendungen, die **API Level 24 und höher** anvisieren, erfordern Änderungen an der Network Security Config, um das CA-Zertifikat des Proxys zu akzeptieren. Dieser Schritt ist entscheidend für die Inspektion von verschlüsseltem Verkehr. Für Anweisungen zur Änderung der Network Security Config, [**siehe dieses Tutorial**](make-apk-accept-ca-certificate.md).
Wenn **Flutter** verwendet wird, müssen Sie die Anweisungen auf [**dieser Seite**](flutter.md) befolgen. Dies liegt daran, dass das bloße Hinzufügen des Zertifikats in den Store nicht funktioniert, da Flutter seine eigene Liste gültiger CAs hat.
Wenn **Flutter** verwendet wird, musst du die Anweisungen auf [**dieser Seite**](flutter.md) befolgen. Dies liegt daran, dass das bloße Hinzufügen des Zertifikats in den Store nicht funktioniert, da Flutter seine eigene Liste gültiger CAs hat.
#### Umgehung von SSL-Pinning
Wenn SSL-Pinning implementiert ist, wird es notwendig, es zu umgehen, um HTTPS-Verkehr zu inspizieren. Verschiedene Methoden stehen zu diesem Zweck zur Verfügung:
Wenn SSL-Pinning implementiert ist, wird es notwendig, es zu umgehen, um HTTPS-Verkehr zu inspizieren. Verschiedene Methoden stehen dafür zur Verfügung:
- Automatisch **modifizieren** Sie die **apk**, um SSL-Pinning mit [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) zu **umgehen**. Der größte Vorteil dieser Option ist, dass Sie kein Root benötigen, um das SSL-Pinning zu umgehen, aber Sie müssen die Anwendung deinstallieren und die neue installieren, und das funktioniert nicht immer.
- Sie könnten **Frida** (unten besprochen) verwenden, um diesen Schutz zu umgehen. Hier haben Sie eine Anleitung zur Verwendung von Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
- Sie können auch versuchen, SSL-Pinning **automatisch zu umgehen** mit [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
- Sie können auch versuchen, SSL-Pinning **automatisch zu umgehen** mit **MobSF dynamischer Analyse** (unten erklärt).
- Wenn Sie immer noch denken, dass es Verkehr gibt, den Sie nicht erfassen, können Sie versuchen, **den Verkehr mit iptables an burp weiterzuleiten**. Lesen Sie diesen Blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
- Automatisch **modifiziere** die **apk**, um **SSL-Pinning zu umgehen** mit [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Der größte Vorteil dieser Option ist, dass du kein Root benötigst, um das SSL-Pinning zu umgehen, aber du musst die Anwendung deinstallieren und die neue installieren, und das funktioniert nicht immer.
- Du könntest **Frida** (unten besprochen) verwenden, um diesen Schutz zu umgehen. Hier hast du eine Anleitung zur Verwendung von Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
- Du kannst auch versuchen, **SSL-Pinning automatisch zu umgehen** mit [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
- Du kannst auch versuchen, **SSL-Pinning automatisch zu umgehen** mit **MobSF dynamischer Analyse** (unten erklärt)
- Wenn du immer noch denkst, dass es Verkehr gibt, den du nicht erfasst, kannst du versuchen, **den Verkehr mit iptables an burp weiterzuleiten**. Lies diesen Blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
#### Suche nach häufigen Webverwundbarkeiten
@ -427,20 +427,20 @@ Es ist auch wichtig, nach häufigen Webverwundbarkeiten innerhalb der Anwendung
### Frida
[Frida](https://www.frida.re) ist ein dynamisches Instrumentierungstool für Entwickler, Reverse-Engineers und Sicherheitsforscher.\
**Sie können auf die laufende Anwendung zugreifen und Methoden zur Laufzeit hooken, um das Verhalten zu ändern, Werte zu ändern, Werte zu extrahieren, anderen Code auszuführen...**\
Wenn Sie Android-Anwendungen pentesten möchten, müssen Sie wissen, wie man Frida verwendet.
**Du kannst laufende Anwendungen zugreifen und Methoden zur Laufzeit hooken, um das Verhalten zu ändern, Werte zu ändern, Werte zu extrahieren, anderen Code auszuführen...**\
Wenn du Android-Anwendungen pentesten möchtest, musst du wissen, wie man Frida verwendet.
- Lernen Sie, wie man Frida verwendet: [**Frida-Tutorial**](frida-tutorial/index.html)
- Lerne, wie man Frida verwendet: [**Frida-Tutorial**](frida-tutorial/index.html)
- Eine "GUI" für Aktionen mit Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
- Ojection ist großartig, um die Verwendung von Frida zu automatisieren: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
- Sie finden einige großartige Frida-Skripte hier: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
- Versuchen Sie, Anti-Debugging / Anti-Frida-Mechanismen zu umgehen, indem Sie Frida wie in [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) angegeben laden (Tool [linjector](https://github.com/erfur/linjector-rs))
- Du kannst einige großartige Frida-Skripte hier finden: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
- Versuche, Anti-Debugging / Anti-Frida-Mechanismen zu umgehen, indem du Frida wie in [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) angegeben lädst (Tool [linjector](https://github.com/erfur/linjector-rs))
### **Speicher dumpen - Fridump**
Überprüfen Sie, ob die Anwendung sensible Informationen im Speicher speichert, die sie nicht speichern sollte, wie Passwörter oder mnemonische Sätze.
Überprüfe, ob die Anwendung sensible Informationen im Speicher speichert, die sie nicht speichern sollte, wie Passwörter oder mnemonics.
Mit [**Fridump3**](https://github.com/rootbsd/fridump3) können Sie den Speicher der App dumpen mit:
Mit [**Fridump3**](https://github.com/rootbsd/fridump3) kannst du den Speicher der App dumpen mit:
```bash
# With PID
python3 fridump3.py -u <PID>
@ -455,7 +455,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
```
### **Empfindliche Daten im Keystore**
In Android ist der Keystore der beste Ort, um sensible Daten zu speichern. Mit ausreichenden Berechtigungen ist es jedoch immer noch **möglich, darauf zuzugreifen**. Da Anwendungen dazu neigen, hier **sensible Daten im Klartext** zu speichern, sollten die Pentests dies als Root-Benutzer oder jemand mit physischem Zugriff auf das Gerät überprüfen, da diese Person in der Lage sein könnte, diese Daten zu stehlen.
In Android ist der Keystore der beste Ort, um sensible Daten zu speichern. Mit ausreichenden Rechten ist es jedoch immer noch **möglich, darauf zuzugreifen**. Da Anwendungen dazu neigen, hier **sensible Daten im Klartext** zu speichern, sollten die Pentests dies als Root-Benutzer oder jemand mit physischem Zugriff auf das Gerät überprüfen, da diese Person in der Lage sein könnte, diese Daten zu stehlen.
Selbst wenn eine App Daten im Keystore speichert, sollten die Daten verschlüsselt sein.
@ -487,11 +487,11 @@ Dieses Tool kann Ihnen helfen, verschiedene Tools während der dynamischen Analy
### Intent Injection
Entwickler erstellen häufig Proxy-Komponenten wie Aktivitäten, Dienste und Broadcast-Empfänger, die diese Intents verarbeiten und an Methoden wie `startActivity(...)` oder `sendBroadcast(...)` weitergeben, was riskant sein kann.
Entwickler erstellen häufig Proxy-Komponenten wie Aktivitäten, Dienste und Broadcast-Receiver, die diese Intents verarbeiten und an Methoden wie `startActivity(...)` oder `sendBroadcast(...)` weitergeben, was riskant sein kann.
Die Gefahr liegt darin, Angreifern zu ermöglichen, nicht exportierte App-Komponenten auszulösen oder auf sensible Content-Provider zuzugreifen, indem sie diese Intents fehlleiten. Ein bemerkenswertes Beispiel ist die `WebView`-Komponente, die URLs in `Intent`-Objekte über `Intent.parseUri(...)` umwandelt und sie dann ausführt, was potenziell zu bösartigen Intent-Injektionen führen kann.
### Wichtige Erkenntnisse
### Wesentliche Erkenntnisse
- **Intent Injection** ist ähnlich wie das Open Redirect-Problem im Web.
- Exploits beinhalten das Übergeben von `Intent`-Objekten als Extras, die umgeleitet werden können, um unsichere Operationen auszuführen.
@ -500,12 +500,12 @@ Die Gefahr liegt darin, Angreifern zu ermöglichen, nicht exportierte App-Kompon
### Android Client Side Injections und andere
Wahrscheinlich kennen Sie diese Art von Schwachstellen aus dem Web. Sie müssen bei diesen Schwachstellen in einer Android-Anwendung besonders vorsichtig sein:
Wahrscheinlich kennen Sie diese Art von Schwachstellen aus dem Web. Sie müssen besonders vorsichtig mit diesen Schwachstellen in einer Android-Anwendung sein:
- **SQL Injection:** Stellen Sie beim Umgang mit dynamischen Abfragen oder Content-Providern sicher, dass Sie parametrisierte Abfragen verwenden.
- **JavaScript Injection (XSS):** Überprüfen Sie, ob die Unterstützung für JavaScript und Plugins für alle WebViews deaktiviert ist (standardmäßig deaktiviert). [Mehr Infos hier](webview-attacks.md#javascript-enabled).
- **JavaScript Injection (XSS):** Überprüfen Sie, ob JavaScript- und Plugin-Unterstützung für alle WebViews deaktiviert ist (standardmäßig deaktiviert). [Mehr Infos hier](webview-attacks.md#javascript-enabled).
- **Local File Inclusion:** WebViews sollten keinen Zugriff auf das Dateisystem haben (standardmäßig aktiviert) - `(webview.getSettings().setAllowFileAccess(false);)`. [Mehr Infos hier](webview-attacks.md#javascript-enabled).
- **Eternal cookies**: In mehreren Fällen, wenn die Android-Anwendung die Sitzung beendet, wird das Cookie nicht widerrufen oder es könnte sogar auf der Festplatte gespeichert werden.
- **Eternal cookies**: In mehreren Fällen, wenn die Android-Anwendung die Sitzung beendet, wird das Cookie nicht widerrufen oder könnte sogar auf der Festplatte gespeichert werden.
- [**Secure Flag** in cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
---
@ -518,12 +518,12 @@ Wahrscheinlich kennen Sie diese Art von Schwachstellen aus dem Web. Sie müssen
![](<../../images/image (866).png>)
**Schwachstellenbewertung der Anwendung** mit einem schönen webbasierten Frontend. Sie können auch eine dynamische Analyse durchführen (aber Sie müssen die Umgebung vorbereiten).
**Schwachstellenbewertung der Anwendung** mithilfe eines ansprechenden webbasierten Frontends. Sie können auch eine dynamische Analyse durchführen (aber Sie müssen die Umgebung vorbereiten).
```bash
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
```
Beachten Sie, dass MobSF **Android**(apk)**, IOS**(ipa) **und Windows**(apx) Anwendungen analysieren kann (_Windows-Anwendungen müssen von einem auf einem Windows-Host installierten MobSF analysiert werden_).\
Hinweis: MobSF kann **Android**(apk)**, IOS**(ipa) **und Windows**(apx) Anwendungen analysieren (_Windows-Anwendungen müssen von einem auf einem Windows-Host installierten MobSF analysiert werden_).\
Wenn Sie auch eine **ZIP**-Datei mit dem Quellcode einer **Android**- oder **IOS**-App erstellen (gehen Sie zum Stammordner der Anwendung, wählen Sie alles aus und erstellen Sie eine ZIP-Datei), kann es diese ebenfalls analysieren.
MobSF ermöglicht auch die **Diff/Compare**-Analyse und die Integration von **VirusTotal** (Sie müssen Ihren API-Schlüssel in _MobSF/settings.py_ festlegen und aktivieren: `VT_ENABLED = TRUE` `VT_API_KEY = <Ihr API-Schlüssel>` `VT_UPLOAD = TRUE`). Sie können auch `VT_UPLOAD` auf `False` setzen, dann wird der **Hash** anstelle der Datei **hochgeladen**.
@ -537,15 +537,15 @@ Der **MobSF-Dynamikanalysator** kann:
- **HTTPS-Verkehr erfassen**
- **Frida** verwenden, um **Laufzeit**-**informationen** zu erhalten
Ab Android **Versionen > 5** wird **automatisch Frida gestartet** und die globalen **Proxy**-Einstellungen werden festgelegt, um den Verkehr zu **erfassen**. Es wird nur den Verkehr der getesteten Anwendung erfassen.
Ab Android **Versionen > 5** wird **automatisch Frida gestartet** und die globalen **Proxy**-Einstellungen werden festgelegt, um den Verkehr zu **erfassen**. Es wird nur der Verkehr der getesteten Anwendung erfasst.
**Frida**
Standardmäßig werden auch einige Frida-Skripte verwendet, um **SSL-Pinning**, **Root-Erkennung** und **Debugger-Erkennung** zu **umgehen** und um **interessante APIs** zu **überwachen**.\
MobSF kann auch **exportierte Aktivitäten aufrufen**, **Screenshots** davon machen und sie für den Bericht **speichern**.
Um den dynamischen Test zu **starten**, drücken Sie die grüne Schaltfläche: "**Start Instrumentation**". Drücken Sie auf "**Frida Live Logs**", um die von den Frida-Skripten generierten Protokolle zu sehen, und auf "**Live API Monitor**", um alle Aufrufe an gehookte Methoden, übergebene Argumente und zurückgegebene Werte zu sehen (dies wird nach dem Drücken von "Start Instrumentation" angezeigt).\
MobSF ermöglicht es Ihnen auch, Ihre eigenen **Frida-Skripte** zu laden (um die Ergebnisse Ihrer Frida-Skripte an MobSF zu senden, verwenden Sie die Funktion `send()`). Es hat auch **mehrere vorgefertigte Skripte**, die Sie laden können (Sie können weitere in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` hinzufügen), wählen Sie einfach **diese aus**, drücken Sie "**Load**" und drücken Sie "**Start Instrumentation**" (Sie können die Protokolle dieser Skripte in "**Frida Live Logs**" sehen).
Um mit dem dynamischen Testen zu **beginnen**, drücken Sie die grüne Schaltfläche: "**Start Instrumentation**". Drücken Sie auf "**Frida Live Logs**", um die von den Frida-Skripten generierten Protokolle zu sehen, und auf "**Live API Monitor**", um alle Aufrufe an gehookte Methoden, übergebene Argumente und zurückgegebene Werte zu sehen (dies wird nach dem Drücken von "Start Instrumentation" angezeigt).\
MobSF ermöglicht es Ihnen auch, Ihre eigenen **Frida-Skripte** zu laden (um die Ergebnisse Ihrer Frida-Skripte an MobSF zu senden, verwenden Sie die Funktion `send()`). Es hat auch **mehrere vorgefertigte Skripte**, die Sie laden können (Sie können weitere in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` hinzufügen), wählen Sie einfach **sie aus**, drücken Sie "**Load**" und drücken Sie "**Start Instrumentation**" (Sie können die Protokolle dieser Skripte in "**Frida Live Logs**" sehen).
![](<../../images/image (419).png>)
@ -562,7 +562,7 @@ Sobald Sie das zusätzliche Modul ausgewählt haben, das Sie verwenden möchten,
**Shell**
Mobsf bietet Ihnen auch eine Shell mit einigen **adb**-Befehlen, **MobSF-Befehlen** und gängigen **Shell**-**Befehlen** am unteren Ende der Seite zur dynamischen Analyse. Einige interessante Befehle:
MobSF bietet Ihnen auch eine Shell mit einigen **adb**-Befehlen, **MobSF-Befehlen** und gängigen **Shell**-**Befehlen** am unteren Ende der Seite zur dynamischen Analyse. Einige interessante Befehle:
```bash
help
shell ls
@ -574,12 +574,12 @@ receivers
**HTTP-Tools**
Wenn der HTTP-Verkehr erfasst wird, können Sie eine unschöne Ansicht des erfassten Verkehrs auf dem "**HTTP(S) Traffic**" unten oder eine schönere Ansicht im grünen Button "**Start HTTPTools**" sehen. Von der zweiten Option aus können Sie die **erfassten Anfragen** an **Proxys** wie Burp oder Owasp ZAP **senden**.\
Um dies zu tun, _Burp einschalten -->_ _Intercept ausschalten --> im MobSB HTTPTools die Anfrage auswählen_ --> drücken Sie auf "**Send to Fuzzer**" --> _wählen Sie die Proxy-Adresse_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
Um dies zu tun, _Burp einschalten -->_ _Intercept ausschalten --> im MobSB HTTPTools die Anfrage auswählen_ --> drücken Sie "**Send to Fuzzer**" --> _wählen Sie die Proxy-Adresse_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
Sobald Sie die dynamische Analyse mit MobSF abgeschlossen haben, können Sie auf "**Start Web API Fuzzer**" drücken, um **HTTP-Anfragen zu fuzzern** und nach Schwachstellen zu suchen.
> [!TIP]
> Nach der Durchführung einer dynamischen Analyse mit MobSF können die Proxy-Einstellungen falsch konfiguriert sein, und Sie können sie nicht über die GUI beheben. Sie können die Proxy-Einstellungen beheben, indem Sie:
> Nach der Durchführung einer dynamischen Analyse mit MobSF können die Proxy-Einstellungen falsch konfiguriert sein, und Sie können sie nicht über die GUI beheben. Sie können die Proxy-Einstellungen beheben, indem Sie Folgendes tun:
>
> ```
> adb shell settings put global http_proxy :0
@ -632,7 +632,7 @@ super-analyzer {apk_file}
StaCoAn ist ein **plattformübergreifendes** Tool, das Entwicklern, Bug-Bounty-Jägern und ethischen Hackern hilft, [statische Codeanalyse](https://en.wikipedia.org/wiki/Static_program_analysis) von mobilen Anwendungen durchzuführen.
Das Konzept besteht darin, dass Sie Ihre mobile Anwendungsdatei (eine .apk- oder .ipa-Datei) auf die StaCoAn-Anwendung ziehen und ablegen, und es wird ein visueller und tragbarer Bericht für Sie erstellt. Sie können die Einstellungen und Wortlisten anpassen, um ein individuelles Erlebnis zu erhalten.
Das Konzept besteht darin, dass Sie Ihre mobile Anwendungsdatei (eine .apk- oder .ipa-Datei) auf die StaCoAn-Anwendung ziehen und ablegen, und sie wird einen visuellen und tragbaren Bericht für Sie erstellen. Sie können die Einstellungen und Wortlisten anpassen, um ein individuelles Erlebnis zu erhalten.
Laden Sie [die neueste Version](https://github.com/vincentcox/StaCoAn/releases) herunter:
```
@ -648,7 +648,7 @@ androbugs.exe -f [APK file]
```
### [Androwarn](https://github.com/maaaaz/androwarn)
**Androwarn** ist ein Tool, dessen Hauptziel es ist, den Benutzer über potenziell bösartiges Verhalten zu informieren, das von einer Android-Anwendung entwickelt wurde.
**Androwarn** ist ein Tool, dessen Hauptziel es ist, potenziell bösartiges Verhalten, das von einer Android-Anwendung entwickelt wurde, zu erkennen und den Benutzer zu warnen.
Die Erkennung erfolgt durch die **statische Analyse** des Dalvik-Bytecodes der Anwendung, dargestellt als **Smali**, mit der [`androguard`](https://github.com/androguard/androguard) Bibliothek.
@ -709,7 +709,7 @@ Dies ist ein LLM-Tool, um potenzielle Sicherheitsanfälligkeiten in Android-Apps
### [Simplify](https://github.com/CalebFenton/simplify)
Es ist ein **generischer Android-Deobfuskator.** Simplify **führt eine App virtuell aus**, um ihr Verhalten zu verstehen, und **versucht dann, den Code zu optimieren**, sodass er identisch funktioniert, aber für einen Menschen leichter verständlich ist. Jeder Optimierungstyp ist einfach und generisch, sodass es keine Rolle spielt, welcher spezifische Obfuskationstyp verwendet wird.
Es ist ein **generischer Android-Deobfuskator.** Simplify **führt eine App virtuell aus**, um ihr Verhalten zu verstehen, und **versucht dann, den Code zu optimieren**, sodass er identisch funktioniert, aber für einen Menschen leichter zu verstehen ist. Jeder Optimierungstyp ist einfach und generisch, sodass es keine Rolle spielt, welcher spezifische Obfuskationstyp verwendet wird.
### [APKiD](https://github.com/rednaga/APKiD)

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
Shizuku ist ein Open-Source-Dienst, der **einen privilegierten Java-Prozess mit `app_process` startet** und ausgewählte **Android-System-APIs über Binder bereitstellt**. Da der Prozess mit denselben **`shell` UID-Fähigkeiten, die ADB verwendet**, gestartet wird, kann jede Anwendung (oder jedes Terminal), die an die exportierte AIDL-Schnittstelle bindet, viele Aktionen ausführen, die normalerweise **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, Datei-I/O innerhalb von `/data`,** usw. erfordern **ohne das Gerät zu rooten**.
Shizuku ist ein Open-Source-Dienst, der **einen privilegierten Java-Prozess mit `app_process` startet** und ausgewählte **Android-System-APIs über Binder bereitstellt**. Da der Prozess mit den gleichen **`shell` UID-Fähigkeiten, die ADB verwendet**, gestartet wird, kann jede Anwendung (oder jedes Terminal), die an die exportierte AIDL-Schnittstelle bindet, viele Aktionen ausführen, die normalerweise **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, Datei-I/O innerhalb von `/data`,** usw. erfordern **ohne das Gerät zu rooten**.
Typische Anwendungsfälle:
* Sicherheitsüberprüfung von einem nicht gerooteten Gerät
@ -28,7 +28,7 @@ adb push start.sh \
# spawn the privileged process
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
```
Das gleiche Skript kann über eine **Netzwerk-ADB**-Verbindung (`adb connect <IP>:5555`) ausgeführt werden.
Das gleiche Skript kann über eine **network ADB** Verbindung (`adb connect <IP>:5555`) ausgeführt werden.
### 1.3 Rooted Geräte
Wenn das Gerät bereits gerootet ist, führen Sie aus:
@ -83,11 +83,11 @@ for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
done
```
* Protokolliere die Logs jeder Anwendung:
* Protokolle jeder Anwendung dumpen:
```bash
logcat -d | grep -iE "(error|exception)"
```
* Gelesene gespeicherte Wi-Fi-Anmeldeinformationen (Android 11 +):
* Gespeicherte Wi-Fi-Anmeldeinformationen lesen (Android 11 +):
```bash
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
```
@ -99,7 +99,7 @@ pm uninstall --user 0 com.miui.weather2
---
## 4. Sicherheitsüberlegungen / Erkennung
1. Shizuku benötigt **ADB-Debugging**-Berechtigungen, daher müssen _Entwickleroptionen → USB/Wireless-Debugging_ **aktiviert** sein.
Organisationen können dies über ein MDM oder mit `settings put global development_settings_enabled 0` blockieren.
Organisationen können dies über ein MDM oder durch `settings put global development_settings_enabled 0` blockieren.
2. Der Dienst registriert sich unter dem Namen `moe.shizuku.privileged.api`.
Ein einfaches `adb shell service list | grep shizuku` (oder Endpoint-Sicherheitsregel) erkennt seine Anwesenheit.
3. Die Fähigkeiten sind auf das beschränkt, was der `shell`-Benutzer bereits tun kann es ist **nicht root**.

View File

@ -12,7 +12,7 @@ Mit einem alten jailbroken Gerät ist es möglich, die IPA zu installieren, **si
## Entschlüsselte IPA erhalten
### Von Apple beziehen
### Von Apple erhalten
1. Installiere die App, die du pentesten möchtest, auf dem iPhone.
2. Installiere und starte [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) auf deinem macos.
@ -42,18 +42,18 @@ Dann installieren Sie die IPA beispielsweise mit:
```bash
ideviceinstaller -i no-min-version.ipa -w
```
Beachten Sie, dass Sie möglicherweise den **AppSync Unified tweak** von Cydia benötigen, um `invalid signature`-Fehler zu vermeiden.
Beachten Sie, dass Sie möglicherweise den **AppSync Unified tweak** von Cydia benötigen, um `invalid signature`-Fehler zu verhindern.
Sobald installiert, können Sie den **Iridium tweak** von Cydia verwenden, um die entschlüsselte IPA zu erhalten.
### Patch-Berechtigungen & Neuunterzeichnung
### Berechtigungen patchen & neu signieren
Um die Anwendung mit der Berechtigung `get-task-allow` neu zu unterzeichnen, stehen mehrere Tools wie `app-signer`, `codesign` und `iResign` zur Verfügung. `app-signer` hat eine sehr benutzerfreundliche Oberfläche, die es ermöglicht, eine IPA-Datei sehr einfach neu zu unterzeichnen, indem die zu unterzeichnende IPA, die **`get-taks-allow`**-Berechtigung sowie das zu verwendende Zertifikat und das Bereitstellungsprofil angegeben werden.
Um die Anwendung mit der Berechtigung `get-task-allow` neu zu signieren, stehen mehrere Tools wie `app-signer`, `codesign` und `iResign` zur Verfügung. `app-signer` hat eine sehr benutzerfreundliche Oberfläche, die es ermöglicht, eine IPA-Datei sehr einfach neu zu signieren, indem die zu signierende IPA, **`get-taks-allow`** und das zu verwendende Zertifikat sowie das Bereitstellungsprofil angegeben werden.
Bezüglich des Zertifikats und der Signierungsprofile bietet Apple **kostenlose Entwickler-Signierungsprofile** für alle Konten über Xcode an. Erstellen Sie einfach eine App und konfigurieren Sie eine. Konfigurieren Sie dann das **iPhone, um den Entwickler-Apps zu vertrauen**, indem Sie zu `Einstellungen``Datenschutz & Sicherheit` navigieren und auf `Entwicklermodus` klicken.
Mit der neu unterzeichneten IPA ist es Zeit, sie auf dem Gerät zu installieren, um sie zu pentesten:
Mit der neu signierten IPA ist es Zeit, sie auf dem Gerät zu installieren, um sie zu pentesten:
```bash
ideviceinstaller -i resigned.ipa -w
```
@ -61,9 +61,9 @@ ideviceinstaller -i resigned.ipa -w
### Entwicklermodus aktivieren (iOS 16+)
Seit iOS 16 hat Apple den **Entwicklermodus** eingeführt: Jede Binärdatei, die `get_task_allow` *oder* mit einem Entwicklungszertifikat signiert ist, verweigert das Starten, bis der Entwicklermodus auf dem Gerät aktiviert ist. Sie können auch Frida/LLDB nicht anhängen, es sei denn, dieses Flag ist aktiviert.
Seit iOS 16 hat Apple den **Entwicklermodus** eingeführt: Jede Binary, die `get_task_allow` enthält *oder* mit einem Entwicklungszertifikat signiert ist, wird sich weigern zu starten, bis der Entwicklermodus auf dem Gerät aktiviert ist. Sie können auch Frida/LLDB nicht anhängen, es sei denn, dieses Flag ist aktiviert.
1. Installieren oder übertragen Sie **irgendeine** entwickler-signierte IPA auf das Telefon.
1. Installieren oder pushen Sie **irgendeine** entwickler-signierte IPA auf das Telefon.
2. Navigieren Sie zu **Einstellungen → Datenschutz & Sicherheit → Entwicklermodus** und aktivieren Sie ihn.
3. Das Gerät wird neu gestartet; nach Eingabe des Passworts werden Sie aufgefordert, den Entwicklermodus **einzuschalten**.
@ -76,7 +76,7 @@ Es gibt jetzt mehrere ausgereifte Möglichkeiten, IPAs zu sideloaden und sie ohn
| Tool | Anforderungen | Stärken | Einschränkungen |
|------|--------------|-----------|-------------|
| **AltStore 2 / SideStore** | macOS/Windows/Linux-Begleitgerät, das die IPA alle 7 Tage mit einem kostenlosen Entwicklerprofil neu signiert | Automatisches Nachladen über Wi-Fi, funktioniert bis iOS 17 | Computer im selben Netzwerk erforderlich, 3-App-Limit von Apple auferlegt |
| **TrollStore 1/2** | Gerät auf iOS 14 15.4.1, das anfällig für den CoreTrust-Bug ist | *Permanente* Signierung (kein 7-Tage-Limit); kein Computer erforderlich, sobald installiert | Nicht unterstützt auf iOS 15.5+ (Bug gepatcht) |
| **TrollStore 1/2** | Gerät mit iOS 14 15.4.1, das anfällig für den CoreTrust-Bug ist | *Permanente* Signierung (kein 7-Tage-Limit); kein Computer erforderlich, sobald installiert | Nicht unterstützt auf iOS 15.5+ (Bug gepatcht) |
Für routinemäßige Pentests auf aktuellen iOS-Versionen sind Alt/Side-Store in der Regel die praktischste Wahl.
@ -94,7 +94,7 @@ Neuere Frida-Versionen (>=16) behandeln automatisch die Zeigerautorisierung und
### Automatisierte dynamische Analyse mit MobSF (kein Jailbreak)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) kann eine dev-signierte IPA auf einem echten Gerät mit der gleichen Technik (`get_task_allow`) instrumentieren und bietet eine Web-UI mit Dateisystembrowser, Verkehrserfassung und Frida-Konsole【】. Der schnellste Weg ist, MobSF in Docker auszuführen und dann dein iPhone über USB anzuschließen:
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) kann eine von einem Entwickler signierte IPA auf einem echten Gerät mit der gleichen Technik (`get_task_allow`) instrumentieren und bietet eine Web-Benutzeroberfläche mit Dateisystembrowser, Datenverkehrserfassung und Frida-Konsole【】. Der schnellste Weg ist, MobSF in Docker auszuführen und dann Ihr iPhone über USB anzuschließen:
```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \

View File

@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
Das Skript `telnet-ntlm-info.nse` wird NTLM-Informationen (Windows-Versionen) abrufen.
Aus dem [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Im TELNET-Protokoll gibt es verschiedene "**Optionen**", die genehmigt werden und mit der Struktur "**DO, DON'T, WILL, WON'T**" verwendet werden können, um einem Benutzer und einem Server zu ermöglichen, sich auf die Verwendung eines elaborierteren (oder vielleicht einfach nur anderen) Satzes von Konventionen für ihre TELNET-Verbindung zu einigen. Solche Optionen könnten das Ändern des Zeichensatzes, des Echo-Modus usw. umfassen.
Aus dem [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Im TELNET-Protokoll gibt es verschiedene "**Optionen**", die genehmigt werden und mit der Struktur "**DO, DON'T, WILL, WON'T**" verwendet werden können, um es einem Benutzer und einem Server zu ermöglichen, sich auf die Verwendung eines elaborierteren (oder vielleicht einfach anderen) Satzes von Konventionen für ihre TELNET-Verbindung zu einigen. Solche Optionen könnten das Ändern des Zeichensatzes, des Echo-Modus usw. umfassen.
**Ich weiß, dass es möglich ist, diese Optionen aufzulisten, aber ich weiß nicht wie, also lass es mich wissen, wenn du weißt wie.**
@ -71,7 +71,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
* **CVE-2024-45698 D-Link Wi-Fi 6 Router (DIR-X4860)**: Der integrierte Telnet-Dienst akzeptierte fest codierte Anmeldeinformationen und konnte Eingaben nicht bereinigen, was eine nicht authentifizierte Remote-RCE als Root über manipulierte Befehle auf Port 23 ermöglichte. In Firmware ≥ 1.04B05 behoben.
* **CVE-2023-40478 NETGEAR RAX30**: Ein stackbasierter Pufferüberlauf im Telnet-CLI-Befehl `passwd` ermöglicht es einem benachbarten Angreifer, die Authentifizierung zu umgehen und beliebigen Code als Root auszuführen.
* **CVE-2022-39028 GNU inetutils telnetd**: Eine Zwei-Byte-Sequenz (`0xff 0xf7` / `0xff 0xf8`) löst eine NULL-Zeiger-Dereferenzierung aus, die `telnetd` zum Absturz bringen kann, was nach mehreren Abstürzen zu einem anhaltenden DoS führt.
* **CVE-2022-39028 GNU inetutils telnetd**: Eine Zwei-Byte-Sequenz (`0xff 0xf7` / `0xff 0xf8`) löst eine NULL-Zeiger-Dereferenzierung aus, die `telnetd` zum Absturz bringen kann, was nach mehreren Abstürzen zu einem persistierenden DoS führt.
Behalten Sie diese CVEs während der Schwachstellenbewertung im Hinterkopf wenn das Ziel eine nicht gepatchte Firmware oder einen veralteten inetutils Telnet-Daemon ausführt, haben Sie möglicherweise einen direkten Weg zur Codeausführung oder zu einem störenden DoS.
@ -104,9 +104,9 @@ Die meisten IoT-Botnets (Mirai-Varianten) scannen weiterhin Port 23 mit kleinen
Metasploit hat mehrere nützliche Module:
* `auxiliary/scanner/telnet/telnet_version` Banner- und Optionsenumeration.
* `auxiliary/scanner/telnet/telnet_version` Banner- & Optionsenumeration.
* `auxiliary/scanner/telnet/brute_telnet` Multithreaded Bruteforce.
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` RCE gegen anfälliges Solaris 9/10 Telnet (Option ENCRYPT-Verarbeitung).
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` RCE gegen anfällige Solaris 9/10 Telnet (Option ENCRYPT-Verarbeitung).
* `exploit/linux/mips/netgear_telnetenable` aktiviert den Telnet-Dienst mit einem gestalteten Paket auf vielen NETGEAR-Routern.
Nachdem eine Shell erhalten wurde, denken Sie daran, dass **TTYs normalerweise dumm sind**; aktualisieren Sie mit `python -c 'import pty;pty.spawn("/bin/bash")'` oder verwenden Sie die [HackTricks TTY-Tricks](/generic-hacking/reverse-shells/full-ttys.md).

View File

@ -50,7 +50,7 @@ sed -n 's/.*@@END@@\(.*\)/\1/p'
## Detection
* Suchen Sie nach dynamisch generierten `.less` oder `.css` Antworten, die unsanitized Query-Parameter enthalten.
* Durchsuchen Sie während der Code-Überprüfung nach Konstruktionen wie `"@media all { .preview { ... ${userInput} ... } }"` die an LESS-Renderfunktionen übergeben werden.
* Durchsuchen Sie bei der Code-Überprüfung Konstruktionen wie `"@media all { .preview { ... ${userInput} ... } }"` die an LESS-Renderfunktionen übergeben werden.
* Exploit-Versuche enthalten oft `@import`, `(inline)`, `file://`, `http://169.254.169.254` usw.
## Mitigations

View File

@ -61,16 +61,16 @@ Ein einfacher Listener wie:
```bash
sudo nc -k -v -l -p 389 # capture LDAP bind
```
oder ein rogue SMB-Server (`impacket-smbserver`) reicht aus, um die Anmeldeinformationen zu ernten.
oder ein bösartiger SMB-Server (`impacket-smbserver`) reicht aus, um die Anmeldeinformationen zu ernten.
### Canon imageRUNNER / imageCLASS Advisory 20. Mai 2025
Canon bestätigte eine **SMTP/LDAP Pass-Back** Schwachstelle in Dutzenden von Laser- und MFP-Produktlinien. Ein Angreifer mit Admin-Zugriff kann die Serverkonfiguration ändern und die gespeicherten Anmeldeinformationen für LDAP **oder** SMTP abrufen (viele Organisationen verwenden ein privilegiertes Konto, um das Scannen per E-Mail zu ermöglichen).
Canon bestätigte eine **SMTP/LDAP Pass-Back** Schwachstelle in Dutzenden von Laser- und MFP-Produktlinien. Ein Angreifer mit Administratorzugriff kann die Serverkonfiguration ändern und die gespeicherten Anmeldeinformationen für LDAP **oder** SMTP abrufen (viele Organisationen verwenden ein privilegiertes Konto, um das Scannen per E-Mail zu ermöglichen).
Die Empfehlungen des Anbieters lauten ausdrücklich:
1. Aktualisieren Sie die Firmware so schnell wie möglich auf die gepatchte Version.
2. Verwenden Sie starke, einzigartige Admin-Passwörter.
2. Verwenden Sie starke, einzigartige Administratorpasswörter.
3. Vermeiden Sie privilegierte AD-Konten für die Druckerintegration.
---
@ -81,14 +81,14 @@ Die Empfehlungen des Anbieters lauten ausdrücklich:
| **PRET** (Printer Exploitation Toolkit) | Missbrauch von PostScript/PJL/PCL, Dateisystemzugriff, Überprüfung der Standardanmeldeinformationen, *SNMP-Entdeckung* | `python pret.py 192.168.1.50 pjl` |
| **Praeda** | Ernte der Konfiguration (einschließlich Adressbücher & LDAP-Anmeldeinformationen) über HTTP/HTTPS | `perl praeda.pl -t 192.168.1.50` |
| **Responder / ntlmrelayx** | Erfassen & Weiterleiten von NetNTLM-Hashes aus SMB/FTP-Pass-Back | `responder -I eth0 -wrf` |
| **impacket-ldapd.py** | Leichter rogue LDAP-Dienst zum Empfangen von Klartext-Bindungen | `python ldapd.py -debug` |
| **impacket-ldapd.py** | Leichter bösartiger LDAP-Dienst zum Empfangen von Klartext-Bindungen | `python ldapd.py -debug` |
---
## Härtung & Erkennung
1. **Patch / Firmware-Update** MFPs umgehend (prüfen Sie die PSIRT-Bulletins des Anbieters).
2. **Least-Privilege Service Accounts** niemals Domain Admin für LDAP/SMB/SMTP verwenden; auf *read-only* OU-Bereiche beschränken.
3. **Zugriff auf die Verwaltung einschränken** Drucker-Web-/IPP/SNMP-Schnittstellen in ein Management-VLAN oder hinter einer ACL/VPN platzieren.
2. **Least-Privilege Service Accounts** niemals Domain Admin für LDAP/SMB/SMTP verwenden; auf *nur lesen* OU-Bereiche beschränken.
3. **Zugriff auf die Verwaltung einschränken** Drucker-Web-/IPP/SNMP-Schnittstellen in ein Verwaltungs-VLAN oder hinter einer ACL/VPN platzieren.
4. **Deaktivieren Sie ungenutzte Protokolle** FTP, Telnet, raw-9100, ältere SSL-Verschlüsselungen.
5. **Aktivieren Sie die Protokollierung** einige Geräte können LDAP/SMTP-Fehler sysloggen; unerwartete Bindungen korrelieren.
6. **Überwachen Sie auf Klartext-LDAP-Bindungen** von ungewöhnlichen Quellen (Drucker sollten normalerweise nur mit DCs kommunizieren).