Translated ['generic-methodologies-and-resources/pentesting-network/eigr

This commit is contained in:
Translator 2023-06-14 17:49:39 +00:00
parent 7d21bee894
commit 6d8abc3f01
10 changed files with 133 additions and 67 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 51 KiB

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> <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 [**NFTs**](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) * 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)**.** * **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)**.**
@ -35,7 +35,7 @@ eigrpd=yes
``` ```
<figure><img src="../../.gitbook/assets/image (15) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (15) (1).png" alt=""><figcaption></figcaption></figure>
Ensuite, vous devez corriger le fichier **vtysh.conf** en ajoutant une ligne responsable de la sauvegarde de la configuration dans un fichier, afin que les configurations de différents protocoles ne soient pas dispersées dans différents fichiers **(par exemple, eigrpd.conf, staticd.conf).** Cela est configurable en option. Ensuite, vous devez corriger le fichier **vtysh.conf** en ajoutant une ligne responsable de la sauvegarde de la configuration dans un seul fichier, afin que les configurations de différents protocoles ne soient pas dispersées dans différents fichiers **(par exemple, eigrpd.conf, staticd.conf).** Cela est configurable en option.
``` ```
~# nano /etc/frr/vtysh.conf ~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config service integrated-vtysh-config
@ -66,31 +66,37 @@ EIGRP supports authentication to prevent unauthorized access to the routing info
An EIGRP key chain is a sequence of keys that are used to authenticate EIGRP packets. Each key in the key chain has a key ID, a key string, and a cryptographic algorithm. The key ID is a number that identifies the key in the key chain. The key string is a password that is used to generate the message digest. The cryptographic algorithm is used to generate the message digest. An EIGRP key chain is a sequence of keys that are used to authenticate EIGRP packets. Each key in the key chain has a key ID, a key string, and a cryptographic algorithm. The key ID is a number that identifies the key in the key chain. The key string is a password that is used to generate the message digest. The cryptographic algorithm is used to generate the message digest.
An EIGRP key chain can be attacked in various ways, such as: An EIGRP key chain can be attacked in various ways:
- **Key ID Spoofing**: An attacker can spoof the key ID in an EIGRP packet to bypass the authentication mechanism. The attacker can send an EIGRP packet with a valid key ID that belongs to another router in the network. This can trick the receiving router into accepting the packet as authentic. - **Key ID Spoofing**: An attacker can spoof the key ID in an EIGRP packet to bypass the authentication mechanism. The attacker can send an EIGRP packet with a valid key ID that belongs to another router in the network. This will cause the receiving router to accept the packet as authentic and process it accordingly.
- **Key String Cracking**: An attacker can crack the key string in an EIGRP packet to generate a valid message digest. The attacker can use various tools and techniques to crack the key string, such as brute-force, dictionary attack, rainbow table attack, etc. - **Key String Cracking**: An attacker can crack the key string in an EIGRP packet to generate a valid message digest. The attacker can use various tools and techniques to crack the key string, such as brute-force attacks, dictionary attacks, and rainbow table attacks.
#### EIGRP Static Key Attacks #### EIGRP Static Key Attacks
An EIGRP static key is a password that is used to authenticate EIGRP packets. The static key is configured on each router that participates in the EIGRP process. The static key is vulnerable to various attacks that can bypass or crack the authentication mechanism. An EIGRP static key is a password that is used to authenticate EIGRP packets. The static key is configured on each router that participates in the EIGRP process. The static key is vulnerable to various attacks that can bypass or crack the authentication mechanism.
An EIGRP static key can be attacked in various ways, such as: An EIGRP static key can be attacked in various ways:
- **Password Guessing**: An attacker can guess the static key by using various tools and techniques, such as brute-force, dictionary attack, etc. - **Password Guessing**: An attacker can guess the static key by using various tools and techniques, such as brute-force attacks, dictionary attacks, and social engineering attacks.
- **Packet Sniffing**: An attacker can sniff the EIGRP packets that contain the static key and use it to generate a valid message digest. - **Packet Sniffing**: An attacker can sniff the EIGRP packets that contain the static key and use it to generate a valid message digest. The attacker can use various tools and techniques to sniff the packets, such as Wireshark, tcpdump, and Ettercap.
### EIGRP DoS Attacks ### EIGRP DoS Attacks
EIGRP is vulnerable to various DoS (Denial of Service) attacks that can disrupt the normal operation of the network. EIGRP DoS attacks can be launched using various tools and techniques, such as: EIGRP is vulnerable to various DoS (Denial of Service) attacks that can disrupt the normal operation of the network. EIGRP DoS attacks can be launched using various tools and techniques, such as packet flooding, packet fragmentation, and route flapping.
- **EIGRP Hello Flood**: An attacker can flood the network with EIGRP Hello packets to consume the bandwidth and resources of the network. This can cause the network to become slow or unresponsive. #### EIGRP Packet Flooding
- **EIGRP Route Poisoning**: An attacker can send false routing information to the network to mislead the routers and cause routing loops. This can cause the network to become unstable or unreachable. EIGRP packet flooding is a DoS attack that floods the network with a large number of EIGRP packets. The attacker can send EIGRP packets with invalid or spoofed source addresses to overwhelm the network and consume its resources. This can cause the network to become slow or unresponsive.
- **EIGRP Authentication Failure**: An attacker can send invalid EIGRP packets to the network to trigger authentication failures. This can cause the routers to reset their EIGRP process and disrupt the normal operation of the network. #### EIGRP Packet Fragmentation
EIGRP packet fragmentation is a DoS attack that fragments the EIGRP packets into smaller packets. The attacker can send fragmented EIGRP packets to the network to consume its resources and cause it to become slow or unresponsive.
#### EIGRP Route Flapping
EIGRP route flapping is a DoS attack that causes the EIGRP routes to flap continuously. The attacker can send EIGRP packets with invalid or spoofed information to the network to cause the routers to constantly update their routing tables. This can cause the network to become unstable and unusable.
``` ```
### French Output: ### French Output:
@ -106,34 +112,39 @@ EIGRP prend en charge l'authentification pour empêcher l'accès non autorisé a
#### Attaques de chaîne de clés EIGRP #### Attaques de chaîne de clés EIGRP
Une chaîne de clés EIGRP est une séquence de clés qui sont utilisées pour authentifier les paquets EIGRP. Chaque clé de la chaîne de clés a un identifiant de clé, une chaîne de clé et un algorithme cryptographique. L'identifiant de clé est un numéro qui identifie la clé dans la chaîne de clés. La chaîne de clé est un mot de passe qui est utilisé pour générer la somme de contrôle du message. L'algorithme cryptographique est utilisé pour générer la somme de contrôle du message. Une chaîne de clés EIGRP est une séquence de clés qui sont utilisées pour authentifier les paquets EIGRP. Chaque clé dans la chaîne de clés a un identifiant de clé, une chaîne de clé et un algorithme cryptographique. L'identifiant de clé est un numéro qui identifie la clé dans la chaîne de clés. La chaîne de clé est un mot de passe qui est utilisé pour générer le message digest. L'algorithme cryptographique est utilisé pour générer le message digest.
Une chaîne de clés EIGRP peut être attaquée de diverses manières, telles que: Une chaîne de clés EIGRP peut être attaquée de diverses manières :
- **Spoofing d'identifiant de clé**: Un attaquant peut usurper l'identifiant de clé dans un paquet EIGRP pour contourner le mécanisme d'authentification. L'attaquant peut envoyer un paquet EIGRP avec un identifiant de clé valide qui appartient à un autre routeur du réseau. Cela peut tromper le routeur récepteur en acceptant le paquet comme authentique. - **Spoofing d'identifiant de clé**: Un attaquant peut usurper l'identifiant de clé dans un paquet EIGRP pour contourner le mécanisme d'authentification. L'attaquant peut envoyer un paquet EIGRP avec un identifiant de clé valide qui appartient à un autre routeur du réseau. Cela amènera le routeur récepteur à accepter le paquet comme authentique et à le traiter en conséquence.
- **Craquage de chaîne de clé**: Un attaquant peut craquer la chaîne de clé dans un paquet EIGRP pour générer une somme de contrôle valide. L'attaquant peut utiliser divers outils et techniques pour craquer la chaîne de clé, telles que la force brute, l'attaque par dictionnaire, l'attaque par table arc-en-ciel, etc. - **Craquage de chaîne de clé**: Un attaquant peut craquer la chaîne de clé dans un paquet EIGRP pour générer un message digest valide. L'attaquant peut utiliser divers outils et techniques pour craquer la chaîne de clé, tels que des attaques par force brute, des attaques par dictionnaire et des attaques par table arc-en-ciel.
#### Attaques de clé statique EIGRP #### Attaques de clé statique EIGRP
Une clé statique EIGRP est un mot de passe qui est utilisé pour authentifier les paquets EIGRP. La clé statique est configurée sur chaque routeur qui participe au processus EIGRP. La clé statique est vulnérable à diverses attaques qui peuvent contourner ou craquer le mécanisme d'authentification. Une clé statique EIGRP est un mot de passe qui est utilisé pour authentifier les paquets EIGRP. La clé statique est configurée sur chaque routeur qui participe au processus EIGRP. La clé statique est vulnérable à diverses attaques qui peuvent contourner ou craquer le mécanisme d'authentification.
Une clé statique EIGRP peut être attaquée de diverses manières, telles que: Une clé statique EIGRP peut être attaquée de diverses manières :
- **Deviner le mot de passe**: Un attaquant peut deviner la clé statique en utilisant divers outils et techniques, telles que la force brute, l'attaque par dictionnaire, etc. - **Deviner le mot de passe**: Un attaquant peut deviner la clé statique en utilisant divers outils et techniques, tels que des attaques par force brute, des attaques par dictionnaire et des attaques d'ingénierie sociale.
- **Sniffing de paquets**: Un attaquant peut renifler les paquets EIGRP qui contiennent la clé statique et l'utiliser pour générer une somme de contrôle valide. - **Sniffing de paquets**: Un attaquant peut renifler les paquets EIGRP qui contiennent la clé statique et l'utiliser pour générer un message digest valide. L'attaquant peut utiliser divers outils et techniques pour renifler les paquets, tels que Wireshark, tcpdump et Ettercap.
### Attaques DoS EIGRP ### Attaques DoS EIGRP
EIGRP est vulnérable à diverses attaques DoS (Déni de Service) qui peuvent perturber le fonctionnement normal du réseau. Les attaques DoS EIGRP peuvent être lancées à l'aide de divers outils et techniques, telles que: EIGRP est vulnérable à diverses attaques DoS (Déni de Service) qui peuvent perturber le fonctionnement normal du réseau. Les attaques DoS EIGRP peuvent être lancées à l'aide de divers outils et techniques, tels que le flood de paquets, la fragmentation de paquets et le flapping de route.
- **Inondation de Hello EIGRP**: Un attaquant peut inonder le réseau avec des paquets Hello EIGRP pour consommer la bande passante et les ressources du réseau. Cela peut rendre le réseau lent ou non réactif. #### Flood de paquets EIGRP
- **Empoisonnement de route EIGRP**: Un attaquant peut envoyer de fausses informations de routage au réseau pour tromper les routeurs et provoquer des boucles de routage. Cela peut rendre le réseau instable ou inaccessible. Le flood de paquets EIGRP est une attaque DoS qui inonde le réseau avec un grand nombre de paquets EIGRP. L'attaquant peut envoyer des paquets EIGRP avec des adresses source invalides ou usurpées pour submerger le réseau et consommer ses ressources. Cela peut rendre le réseau lent ou non réactif.
- **Échec d'authentification EIGRP**: Un attaquant peut envoyer des paquets EIGRP invalides au réseau pour déclencher des échecs d'authentification. Cela peut amener les routeurs à réinitialiser leur processus EIGRP et perturber le fonctionnement normal du réseau. #### Fragmentation de paquets EIGRP
```
La fragmentation de paquets EIGRP est une attaque DoS qui fragmente les paquets EIGRP en paquets plus petits. L'attaquant peut envoyer des paquets EIGRP fragmentés sur le réseau pour consommer ses ressources et le rendre lent ou non réactif.
#### Flapping de route EIGRP
Le flapping de route EIGRP est une attaque DoS qui provoque un clignotement continu des routes EIGRP. L'attaquant peut envoyer des paquets EIGRP avec des informations invalides ou usurpées sur le réseau pour amener les routeurs à mettre constamment à jour leurs tables de routage. Cela peut rendre le réseau instable et inutilisable.
``` ```
Inguz# show version Inguz# show version
``` ```
@ -173,7 +184,7 @@ Ainsi, après l'établissement du voisinage, nous connaissons l'existence de ces
### Faux voisins EIGRP <a href="#51ee" id="51ee"></a> ### Faux voisins EIGRP <a href="#51ee" id="51ee"></a>
**J'ai découvert que la génération et l'envoi rapide de paquets EIGRP hello en masse surchargent le CPU du routeur, ce qui peut ouvrir la porte à une attaque DoS.** J'ai développé un petit script [**helloflooding.py**](https://github.com/in9uz/EIGRPWN/blob/main/helloflooding.py), mais il me semble que le script manque de vitesse d'envoi des paquets. **Cela est dû à GIL**, qui empêche la fonction **sprayhello** de s'exécuter en plusieurs threads par seconde. **Finalement, je réécrirai le script en C.** **J'ai découvert que la génération et l'envoi rapide de paquets EIGRP hello en masse surchargent le CPU du routeur, ce qui peut ouvrir la porte à une attaque DoS.** J'ai développé un petit script [**helloflooding.py**](https://github.com/in9uz/EIGRPWN/blob/main/helloflooding.py) \*\*\*\* , mais il me semble que le script manque de vitesse d'envoi des paquets. **Cela est dû à GIL**, qui empêche la fonction **sprayhello** de s'exécuter en plusieurs threads par seconde. **Finalement, je réécrirai le script en C.**
<figure><img src="../../.gitbook/assets/image (2) (6) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (2) (6) (1).png" alt=""><figcaption></figcaption></figure>
@ -205,7 +216,7 @@ Arguments du script:
``` ```
<figure><img src="../../.gitbook/assets/image (20) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (20) (1).png" alt=""><figcaption></figcaption></figure>
**Notre hôte semble avoir des problèmes :)** **Notre hôte semble être en difficulté :)**
<figure><img src="../../.gitbook/assets/image (6) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (6) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -213,9 +224,9 @@ Comme vous pouvez le voir, l'hôte perd la connectivité avec l'hôte **172.16.1
### Abus des valeurs K <a href="#25aa" id="25aa"></a> ### Abus des valeurs K <a href="#25aa" id="25aa"></a>
Pour établir des voisins EIGRP, **les routeurs utilisent des valeurs K spéciales.** Ils doivent être identiques parmi tous les voisins EIGRP. Si au moins une valeur K ne correspond pas, le domaine EIGRP se bloquera et le voisinage sera rompu. Nous utiliserons [**relationshipnightmare.py**](https://github.com/in9uz/EIGRPWN/blob/main/relationshipnightmare.py) \*\*\*\* pour effectuer cette attaque\*\*.\*\* Pour établir des voisins EIGRP, **les routeurs utilisent des valeurs K spéciales.** Elles doivent être identiques parmi tous les voisins EIGRP. Si au moins une valeur K ne correspond pas, le domaine EIGRP se bloquera et le voisinage sera rompu. Nous utiliserons [**relationshipnightmare.py**](https://github.com/in9uz/EIGRPWN/blob/main/relationshipnightmare.py) \*\*\*\* pour effectuer cette attaque\*\*.\*\*
<figure><img src="../../.gitbook/assets/image (12) (2).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (12) (2) (1).png" alt=""><figcaption></figcaption></figure>
Arguments du script : Arguments du script :
@ -251,7 +262,7 @@ Après l'exécution du script, la table de routage commence à déborder de rout
<figure><img src="../../.gitbook/assets/image (4) (4).png" alt=""><figcaption><p>La table de routage déborde sur le routeur GW1</p></figcaption></figure> <figure><img src="../../.gitbook/assets/image (4) (4).png" alt=""><figcaption><p>La table de routage déborde sur le routeur GW1</p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (21) (1).png" alt=""><figcaption><p>Processeur de routeur surchargé</p></figcaption></figure> <figure><img src="../../.gitbook/assets/image (21) (1).png" alt=""><figcaption><p>Processeur du routeur surchargé</p></figcaption></figure>
<details> <details>

View File

@ -1,6 +1,20 @@
## Informations de base ## Abus d'installateurs macOS
Un package d'installation macOS (également connu sous le nom de fichier `.pkg`) est un format de fichier utilisé par macOS pour **distribuer des logiciels**. Ces fichiers sont comme une **boîte qui contient tout ce dont un logiciel** a besoin pour s'installer et fonctionner correctement. <details>
<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)
* 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>
## Informations de base sur Pkg
Un **package d'installation macOS** (également connu sous le nom de fichier `.pkg`) est un format de fichier utilisé par macOS pour **distribuer des logiciels**. Ces fichiers sont comme une **boîte qui contient tout ce dont un logiciel** a besoin pour s'installer et fonctionner correctement.
Le fichier de package lui-même est une archive qui contient une **hiérarchie de fichiers et de répertoires qui seront installés sur l'ordinateur cible**. Il peut également inclure des **scripts** pour effectuer des tâches avant et après l'installation, comme la configuration de fichiers de configuration ou le nettoyage des anciennes versions du logiciel. Le fichier de package lui-même est une archive qui contient une **hiérarchie de fichiers et de répertoires qui seront installés sur l'ordinateur cible**. Il peut également inclure des **scripts** pour effectuer des tâches avant et après l'installation, comme la configuration de fichiers de configuration ou le nettoyage des anciennes versions du logiciel.
@ -8,8 +22,8 @@ Le fichier de package lui-même est une archive qui contient une **hiérarchie d
<figure><img src="../../../.gitbook/assets/Pasted Graphic.png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/Pasted Graphic.png" alt=""><figcaption></figcaption></figure>
* **Distribution (xml)** : Personnalisation (titre, texte de bienvenue...) et vérifications de script/installation * **Distribution (xml)** : Personnalisations (titre, texte de bienvenue...) et vérifications de script/installation
* **PackageInfo (xml)** : Informations, exigences d'installation, emplacement d'installation, chemins vers les scripts à exécuter * **PackageInfo (xml)** : Informations, exigences d'installation, emplacement d'installation, chemins d'accès aux scripts à exécuter
* **Bill of materials (bom)** : Liste des fichiers à installer, mettre à jour ou supprimer avec les autorisations de fichier * **Bill of materials (bom)** : Liste des fichiers à installer, mettre à jour ou supprimer avec les autorisations de fichier
* **Payload (archive CPIO compressée gzip)** : Fichiers à installer dans l'emplacement d'installation à partir de PackageInfo * **Payload (archive CPIO compressée gzip)** : Fichiers à installer dans l'emplacement d'installation à partir de PackageInfo
* **Scripts (archive CPIO compressée gzip)** : Scripts d'installation pré et post et plus de ressources extraites dans un répertoire temporaire pour l'exécution. * **Scripts (archive CPIO compressée gzip)** : Scripts d'installation pré et post et plus de ressources extraites dans un répertoire temporaire pour l'exécution.
@ -28,7 +42,21 @@ xar -xf "/path/to/package.pkg"
cat Scripts | gzip -dc | cpio -i cat Scripts | gzip -dc | cpio -i
cpio -i < Scripts cpio -i < Scripts
``` ```
## Privesc via l'abus de pkg ## Informations de base sur les fichiers DMG
Les fichiers DMG, ou images de disque Apple, sont un format de fichier utilisé par le système d'exploitation macOS d'Apple pour les images de disque. Un fichier DMG est essentiellement une **image de disque montable** (il contient son propre système de fichiers) qui contient des données de bloc brut généralement compressées et parfois chiffrées. Lorsque vous ouvrez un fichier DMG, macOS le **monte comme s'il s'agissait d'un disque physique**, vous permettant d'accéder à son contenu.
### Hiérarchie
<figure><img src="../../../.gitbook/assets/image (12).png" alt=""><figcaption></figcaption></figure>
La hiérarchie d'un fichier DMG peut être différente en fonction du contenu. Cependant, pour les fichiers DMG d'application, elle suit généralement cette structure :
* Niveau supérieur : C'est la racine de l'image disque. Elle contient souvent l'application et éventuellement un lien vers le dossier Applications.
* Application (.app) : Il s'agit de l'application réelle. Dans macOS, une application est généralement un package qui contient de nombreux fichiers et dossiers individuels qui constituent l'application.
* Lien vers Applications : Il s'agit d'un raccourci vers le dossier Applications dans macOS. Le but de cela est de faciliter l'installation de l'application. Vous pouvez faire glisser le fichier .app vers ce raccourci pour installer l'application.
## Privilège d'escalade via l'abus de pkg
### Exécution à partir de répertoires publics ### Exécution à partir de répertoires publics
@ -50,11 +78,24 @@ Pour plus d'informations, consultez cette présentation : [https://www.youtube.c
Si un programme d'installation écrit dans `/tmp/fixedname/bla/bla`, il est possible de **créer un montage** sur `/tmp/fixedname` sans propriétaire, de sorte que vous pouvez **modifier n'importe quel fichier pendant l'installation** pour abuser du processus d'installation. Si un programme d'installation écrit dans `/tmp/fixedname/bla/bla`, il est possible de **créer un montage** sur `/tmp/fixedname` sans propriétaire, de sorte que vous pouvez **modifier n'importe quel fichier pendant l'installation** pour abuser du processus d'installation.
Un exemple de cela est **CVE-2021-26089** qui a réussi à **écraser un script périodique** pour obtenir une exécution en tant que root. Pour plus d'informations, consultez la présentation : [**OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE) Un exemple de cela est **CVE-2021-26089** qui a réussi à **écraser un script périodique** pour obtenir une exécution en tant que root. Pour plus d'informations, consultez la présentation : [**OBTS v4.0 : "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE)
## pkg en tant que logiciel malveillant
### Charge utile vide
Il est possible de simplement générer un fichier **`.pkg`** avec des scripts **pre et post-installation** sans aucune charge utile.
### JS dans le fichier xml de distribution
Il est possible d'ajouter des balises **`<script>`** dans le fichier xml de **distribution** du package et ce code sera exécuté et il peut **exécuter des commandes** en utilisant **`system.run`** :
<figure><img src="../../../.gitbook/assets/image (14).png" alt=""><figcaption></figcaption></figure>
## Références ## Références
* [**DEF CON 27 - Unpacking Pkgs A Look Inside Macos Installer Packages And Common Security Flaws**](https://www.youtube.com/watch?v=iASSG0\_zobQ) * [**DEF CON 27 - Unpacking Pkgs A Look Inside Macos Installer Packages And Common Security Flaws**](https://www.youtube.com/watch?v=iASSG0\_zobQ)
* [**OBTS v4.0 : "The Wild World of macOS Installers" - Tony Lambert**](https://www.youtube.com/watch?v=Eow5uNHtmIg)
<details> <details>

View File

@ -30,7 +30,7 @@ L'**attribut étendu `com.apple.macl`** est ajouté au nouveau **fichier** pour
### Contournement SSH ### Contournement SSH
Par défaut, un accès via **SSH** aura un accès **"Accès complet au disque"**. Pour le désactiver, vous devez le faire figurer dans la liste mais désactivé (le supprimer de la liste ne supprimera pas ces privilèges) : Par défaut, un accès via **SSH** aura un accès **"Accès complet au disque"**. Pour le désactiver, vous devez l'avoir répertorié mais désactivé (le supprimer de la liste ne supprimera pas ces privilèges) :
![](<../../../../.gitbook/assets/image (569).png>) ![](<../../../../.gitbook/assets/image (569).png>)
@ -38,6 +38,10 @@ Ici, vous pouvez trouver des exemples de la façon dont certains **malwares ont
* [https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/](https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/) * [https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/](https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/)
{% hint style="danger" %}
Notez que maintenant, pour pouvoir activer SSH, vous avez besoin d'un **Accès complet au disque**
{% endhint %}
### Gérer les extensions - CVE-2022-26767 ### Gérer les extensions - CVE-2022-26767
L'attribut **`com.apple.macl`** est donné aux fichiers pour donner à une **certaine application des autorisations pour les lire**. Cet attribut est défini lorsque l'utilisateur **glisse-dépose** un fichier sur une application, ou lorsque l'utilisateur **double-clique** sur un fichier pour l'ouvrir avec l'**application par défaut**. L'attribut **`com.apple.macl`** est donné aux fichiers pour donner à une **certaine application des autorisations pour les lire**. Cet attribut est défini lorsque l'utilisateur **glisse-dépose** un fichier sur une application, ou lorsque l'utilisateur **double-clique** sur un fichier pour l'ouvrir avec l'**application par défaut**.
@ -46,9 +50,9 @@ Par conséquent, un utilisateur pourrait **enregistrer une application malveilla
### iCloud ### iCloud
Avec l'entitlement **`com.apple.private.icloud-account-access`**, il est possible de communiquer avec le service XPC **`com.apple.iCloudHelper`** qui **fournira des jetons iCloud**. Avec l'attribution **`com.apple.private.icloud-account-access`**, il est possible de communiquer avec le service XPC **`com.apple.iCloudHelper`** qui **fournira des jetons iCloud**.
**iMovie** et **Garageband** avaient cet entitlement et d'autres qui le permettaient. **iMovie** et **Garageband** avaient cette attribution et d'autres qui le permettaient.
### kTCCServiceAppleEvents / Automation ### kTCCServiceAppleEvents / Automation
@ -133,7 +137,7 @@ $> ls ~/Documents
``` ```
### CVE-2021-30761 - Notes ### CVE-2021-30761 - Notes
Notes avait accès aux emplacements protégés par TCC, mais lorsqu'une note est créée, elle est **créée dans un emplacement non protégé**. Ainsi, vous pouvez demander à Notes de copier un fichier protégé dans une note (donc dans un emplacement non protégé) et ensuite accéder au fichier : Notes avait accès aux emplacements protégés par TCC, mais lorsqu'une note est créée, elle est **créée dans un emplacement non protégé**. Ainsi, vous pourriez demander à Notes de copier un fichier protégé dans une note (donc dans un emplacement non protégé) et ensuite accéder au fichier :
<figure><img src="../../../../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
@ -141,7 +145,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'entitlement `com.apple.private.nullfs_allow` qui lui permettait de créer un montage **nullfs** et avait l'entitlement `com.apple.private.tcc.allow` avec **`kTCCServiceSystemPolicyAllFiles`** pour accéder à tous les fichiers. Le binaire `/usr/libexec/lsd` avec la bibliothèque `libsecurity_translocate` avait l'entitlement `com.apple.private.nullfs_allow` qui lui permettait de créer un montage **nullfs** et avait l'entitlement `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 à **`$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 mise en quarantaine à "Library", d'appeler le service XPC **`com.apple.security.translocation`** et ensuite il mapperait Library à **`$TMPDIR/AppTranslocation/d/d/Library`** où tous les documents à l'intérieur de Library pourraient être **accessibles**.
### SQL Tracing ### SQL Tracing
@ -158,11 +162,11 @@ En tant que root, vous pouvez activer ce service et l'agent ARD aura un accès c
## Par plugins ## Par plugins
Les plugins sont du code supplémentaire généralement sous forme de bibliothèques ou de plist, qui seront chargés par l'application principale et s'exécuteront sous son contexte. Par conséquent, si l'application principale avait accès aux fichiers restreints TCC (via des autorisations accordées ou des privilèges), le code personnalisé l'aura également. Les plugins sont des codes supplémentaires généralement sous forme de bibliothèques ou de plist, qui seront chargés par l'application principale et s'exécuteront sous son contexte. Par conséquent, si l'application principale avait accès aux fichiers restreints TCC (via des autorisations ou des privilèges accordés), le code personnalisé l'aura également.
### CVE-2020-27937 - Utilitaire de répertoire ### CVE-2020-27937 - Utilitaire de répertoire
L'application `/System/Library/CoreServices/Applications/Directory Utility.app` avait le privilège `kTCCServiceSystemPolicySysAdminFiles`, chargeait des plugins avec l'extension `.daplug` et n'avait pas le runtime renforcé. L'application `/System/Library/CoreServices/Applications/Directory Utility.app` avait le privilège `kTCCServiceSystemPolicySysAdminFiles`, chargé des plugins avec l'extension `.daplug` et n'avait pas le runtime renforcé.
Pour armer cette CVE, le `NFSHomeDirectory` est modifié (en abusant du privilège précédent) afin de pouvoir prendre le contrôle de la base de données TCC des utilisateurs pour contourner TCC. Pour armer cette CVE, le `NFSHomeDirectory` est modifié (en abusant du privilège précédent) afin de pouvoir prendre le contrôle de la base de données TCC des utilisateurs pour contourner TCC.
@ -172,7 +176,7 @@ Pour plus d'informations, consultez le [**rapport original**](https://wojciechre
Le binaire `/usr/sbin/coreaudiod` avait les privilèges `com.apple.security.cs.disable-library-validation` et `com.apple.private.tcc.manager`. Le premier permet l'injection de code et le second lui donne accès à la gestion de TCC. Le binaire `/usr/sbin/coreaudiod` avait les privilèges `com.apple.security.cs.disable-library-validation` et `com.apple.private.tcc.manager`. Le premier permet l'injection de code et le second lui donne accès à la gestion de TCC.
Ce binaire permettait de charger des **plug-ins tiers** à partir du dossier `/Library/Audio/Plug-Ins/HAL`. Par conséquent, il était possible de charger un plugin et d'abuser des autorisations TCC avec ce PoC : Ce binaire permettait de charger des plug-ins tiers à partir du dossier `/Library/Audio/Plug-Ins/HAL`. Par conséquent, il était possible de charger un plugin et d'abuser des autorisations TCC avec ce PoC :
```objectivec ```objectivec
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <Security/Security.h> #import <Security/Security.h>
@ -201,7 +205,7 @@ __attribute__((constructor)) static void constructor(int argc, const char **argv
``` ```
Pour plus d'informations, consultez le [**rapport original**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/). Pour plus d'informations, consultez le [**rapport original**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/).
### Plug-ins de la couche d'abstraction des périphériques (DAL) ### Plug-ins de couche d'abstraction de périphérique (DAL)
Les applications système qui ouvrent un flux de caméra via Core Media I/O (applications avec **`kTCCServiceCamera`**) chargent **dans le processus ces plugins** situés dans `/Library/CoreMediaIO/Plug-Ins/DAL` (non restreint par SIP). Les applications système qui ouvrent un flux de caméra via Core Media I/O (applications avec **`kTCCServiceCamera`**) chargent **dans le processus ces plugins** situés dans `/Library/CoreMediaIO/Plug-Ins/DAL` (non restreint par SIP).
@ -255,11 +259,11 @@ Telegram avait les entitlements `com.apple.security.cs.allow-dyld-environment-va
## Par des invocations ouvertes ## Par des invocations ouvertes
Il est possible d'invoquer l'ouverture dans un environnement sandboxé&#x20; Il est possible d'ouvrir des invocations dans un environnement sandboxé.
### Scripts Terminal ### Scripts Terminal
Il est 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. Il est courant de donner un **accès complet au disque (FDA)** au terminal, du moins sur les ordinateurs utilisés par les professionnels de la technologie. Et il est possible d'inviter des scripts **`.terminal`** en l'utilisant.
Les scripts **`.terminal`** sont des fichiers plist tels que celui-ci avec la commande à exécuter dans la clé **`CommandString`**: Les scripts **`.terminal`** sont des fichiers plist tels que celui-ci avec la commande à exécuter dans la clé **`CommandString`**:
```xml ```xml
@ -369,7 +373,7 @@ Le dossier **`/var/db/locationd/` n'était pas protégé contre le montage DMG**
<figure><img src="../../../../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (9).png" alt=""><figcaption></figcaption></figure>
## Référence ## Références
* [**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) * [**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)
* [**https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/**](https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/) * [**https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/**](https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/)
@ -380,7 +384,7 @@ Le dossier **`/var/db/locationd/` n'était pas protégé contre le montage DMG**
<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> <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 [**NFTs**](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) * 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)**.** * **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

@ -14,9 +14,9 @@
### Outils d'énumération automatique pour MacOS ### Outils d'énumération automatique pour MacOS
* **MacPEAS**: [https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS) * **MacPEAS** : [https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS)
* **Metasploit**: [https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/gather/enum\_osx.rb](https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/gather/enum\_osx.rb) * **Metasploit** : [https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/gather/enum\_osx.rb](https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/gather/enum\_osx.rb)
* **SwiftBelt**: [https://github.com/cedowens/SwiftBelt](https://github.com/cedowens/SwiftBelt) * **SwiftBelt** : [https://github.com/cedowens/SwiftBelt](https://github.com/cedowens/SwiftBelt)
### Commandes spécifiques pour MacOS ### Commandes spécifiques pour MacOS
```bash ```bash
@ -135,7 +135,7 @@ lsappinfo list #Installed Apps
launchtl list #Services launchtl list #Services
``` ```
### Processus utilisateur ### Processus utilisateur
``` ```bash
# will print all the running services under that particular user domain. # will print all the running services under that particular user domain.
launchctl print gui/<users UID> launchctl print gui/<users UID>
@ -145,14 +145,20 @@ launchctl print system
# will print detailed information about the specific launch agent. And if its not running or youve mistyped, you will get some output with a non-zero exit code: Could not find service “com.company.launchagent.label” in domain for login # will print detailed information about the specific launch agent. And if its not running or youve mistyped, you will get some output with a non-zero exit code: Could not find service “com.company.launchagent.label” in domain for login
launchctl print gui/<user's UID>/com.company.launchagent.label launchctl print gui/<user's UID>/com.company.launchagent.label
``` ```
### Créer un utilisateur
Sans invite
<figure><img src="../.gitbook/assets/image (13).png" alt=""><figcaption></figcaption></figure>
<details> <details>
<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> <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 [**NFTs**](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) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** 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). * **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 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> </details>

View File

@ -234,7 +234,7 @@ Il est important de noter que les exécutables signés avec un certificat de sig
Un moyen très efficace d'empêcher vos charges utiles d'obtenir la marque du Web est de les emballer dans une sorte de conteneur comme un ISO. Cela se produit parce que la marque du Web (MOTW) **ne peut pas** être appliquée aux volumes **non NTFS**. Un moyen très efficace d'empêcher vos charges utiles d'obtenir la marque du Web est de les emballer dans une sorte de conteneur comme un ISO. Cela se produit parce que la marque du Web (MOTW) **ne peut pas** être appliquée aux volumes **non NTFS**.
<figure><img src="../.gitbook/assets/image (12).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (12) (2).png" alt=""><figcaption></figcaption></figure>
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) est un outil qui emballe les charges utiles dans des conteneurs de sortie pour éviter la marque du Web. [**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) est un outil qui emballe les charges utiles dans des conteneurs de sortie pour éviter la marque du Web.
@ -274,7 +274,7 @@ La plupart des frameworks C2 (sliver, Covenant, metasploit, CobaltStrike, Havoc,
* **Fork\&Run** * **Fork\&Run**
Cela implique de **lancer un nouveau processus sacrificiel**, d'injecter votre code malveillant de post-exploitation dans ce nouveau processus, d'exécuter votre code malveillant et, une fois terminé, de tuer le nouveau processus. Cela présente à la fois des avantages et des inconvénients. L'avantage de la méthode fork and run est que l'exécution se produit **en dehors** de notre processus d'implant de Beacon. Cela signifie que si quelque chose dans notre action de post-exploitation se passe mal ou est détecté, il y a une **beaucoup plus grande chance** que notre **implant survive.** L'inconvénient est que vous avez une **plus grande chance** de vous faire prendre par des **détections comportementales**. Cela implique de **lancer un nouveau processus sacrificiel**, d'injecter votre code malveillant de post-exploitation dans ce nouveau processus, d'exécuter votre code malveillant et, une fois terminé, de tuer le nouveau processus. Cela présente à la fois des avantages et des inconvénients. L'avantage de la méthode fork and run est que l'exécution se produit **en dehors** de notre processus d'implant de Beacon. Cela signifie que si quelque chose dans notre action de post-exploitation se passe mal ou est détecté, il y a une **beaucoup plus grande chance** que notre **implant survive.** L'inconvénient est que vous avez une **plus grande chance** de vous faire prendre par les **détections comportementales**.
<figure><img src="../.gitbook/assets/image (7) (1) (3).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (7) (1) (3).png" alt=""><figcaption></figcaption></figure>
@ -331,7 +331,7 @@ netsh advfirewall set allprofiles state off
``` ```
### UltraVNC ### UltraVNC
Téléchargez-le depuis: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (vous voulez les téléchargements binaires, pas l'installation) Téléchargez-le à partir de: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (vous voulez les téléchargements binaires, pas l'installation)
**SUR L'HÔTE**: Exécutez _**winvnc.exe**_ et configurez le serveur: **SUR L'HÔTE**: Exécutez _**winvnc.exe**_ et configurez le serveur:
@ -347,13 +347,13 @@ L'**attaquant** doit **exécuter à l'intérieur** de son **hôte** le binaire `
**ATTENTION:** Pour maintenir la discrétion, vous ne devez pas faire certaines choses **ATTENTION:** Pour maintenir la discrétion, vous ne devez pas faire certaines choses
* Ne démarrez pas `winvnc` s'il est déjà en cours d'exécution ou vous déclencherez une [fenêtre contextuelle](https://i.imgur.com/1SROTTl.png). Vérifiez s'il fonctionne avec `tasklist | findstr winvnc` * Ne démarrez pas `winvnc` s'il est déjà en cours d'exécution ou vous déclencherez une [fenêtre contextuelle](https://i.imgur.com/1SROTTl.png). Vérifiez s'il est en cours d'exécution avec `tasklist | findstr winvnc`
* Ne démarrez pas `winvnc` sans `UltraVNC.ini` dans le même répertoire ou cela provoquera l'ouverture de [la fenêtre de configuration](https://i.imgur.com/rfMQWcf.png) * Ne démarrez pas `winvnc` sans `UltraVNC.ini` dans le même répertoire ou cela provoquera l'ouverture de [la fenêtre de configuration](https://i.imgur.com/rfMQWcf.png)
* Ne lancez pas `winvnc -h` pour obtenir de l'aide ou vous déclencherez une [fenêtre contextuelle](https://i.imgur.com/oc18wcu.png) * Ne lancez pas `winvnc -h` pour obtenir de l'aide ou vous déclencherez une [fenêtre contextuelle](https://i.imgur.com/oc18wcu.png)
### GreatSCT ### GreatSCT
Téléchargez-le depuis: [https://github.com/GreatSCT/GreatSCT](https://github.com/GreatSCT/GreatSCT) Téléchargez-le à partir de: [https://github.com/GreatSCT/GreatSCT](https://github.com/GreatSCT/GreatSCT)
``` ```
git clone https://github.com/GreatSCT/GreatSCT.git git clone https://github.com/GreatSCT/GreatSCT.git
cd GreatSCT/setup/ cd GreatSCT/setup/
@ -363,23 +363,27 @@ cd ..
``` ```
# Contournement des antivirus # Contournement des antivirus
Lors de la création d'un payload, il est important de s'assurer qu'il ne sera pas détecté par les antivirus. Les antivirus utilisent des signatures pour détecter les malwares, il est donc important de modifier le payload pour qu'il ne corresponde pas à ces signatures. Lorsque vous effectuez un test de pénétration, il est important de savoir comment contourner les antivirus pour pouvoir exécuter des charges utiles sur la machine cible. Dans cette section, nous allons examiner quelques techniques courantes pour contourner les antivirus.
## Encodage ## Encodage
L'encodage est une technique courante pour contourner les antivirus. Il s'agit de modifier le payload en utilisant un algorithme d'encodage pour qu'il ne corresponde plus à la signature de l'antivirus. Il existe de nombreux outils pour encoder des payloads, tels que `msfvenom` et `Veil-Evasion`. L'encodage est une technique courante pour contourner les antivirus. L'idée est de prendre une charge utile existante et de l'encoder de manière à ce qu'elle ne soit pas détectée par l'antivirus. Il existe de nombreux outils d'encodage disponibles, tels que `msfvenom`, qui peuvent être utilisés pour encoder des charges utiles.
## FUD ## FUD (Fully Undetectable)
FUD signifie "Fully Undetectable" (complètement indétectable). Il s'agit d'un état dans lequel le payload ne peut pas être détecté par les antivirus. Pour atteindre cet état, il est nécessaire de modifier le payload de manière à ce qu'il ne corresponde à aucune signature d'antivirus connue. Cela peut être réalisé en utilisant des techniques d'encodage, de cryptage et de polymorphisme. Le FUD (Fully Undetectable) est un terme utilisé pour décrire une charge utile qui n'est pas détectée par les antivirus. Pour atteindre cet objectif, il est souvent nécessaire d'utiliser des techniques d'encodage avancées et de modifier la charge utile pour qu'elle ne corresponde pas à une signature connue de l'antivirus.
## Injection de code
L'injection de code est une technique courante pour contourner les antivirus. L'idée est d'injecter du code dans un processus légitime en cours d'exécution sur la machine cible. Cette technique peut être utilisée pour exécuter une charge utile sans déclencher l'alerte de l'antivirus.
## Polymorphisme ## Polymorphisme
Le polymorphisme est une technique qui consiste à modifier le code du payload à chaque exécution, de sorte qu'il ne corresponde pas à la signature de l'antivirus. Cette technique est très efficace pour contourner les antivirus, car elle rend le payload unique à chaque exécution. Le polymorphisme est une technique avancée pour contourner les antivirus. L'idée est de modifier la charge utile à chaque exécution de manière à ce qu'elle ne corresponde pas à une signature connue de l'antivirus. Cette technique nécessite une connaissance approfondie de la structure interne de l'antivirus et est souvent utilisée par des attaquants expérimentés.
## Conclusion ## Conclusion
Le contournement des antivirus est un aspect important de la création de payloads. Les techniques d'encodage, de FUD et de polymorphisme sont toutes efficaces pour atteindre cet objectif. Il est important de tester le payload avec plusieurs antivirus pour s'assurer qu'il est indétectable. Contourner les antivirus est un élément clé de tout test de pénétration réussi. En utilisant les techniques décrites dans cette section, vous devriez être en mesure de contourner la plupart des antivirus et d'exécuter des charges utiles sur la machine cible.
``` ```
use 1 use 1
list #Listing available payloads list #Listing available payloads
@ -483,7 +487,7 @@ namespace ConnectBack
``` ```
[https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs](https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs) [https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs](https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple\_Rev\_Shell.cs)
### Utilisation du compilateur C# ### Utilisation de C# pour le compilateur
``` ```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
``` ```
@ -553,7 +557,7 @@ https://github.com/praetorian-code/vulcan
* 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 [**NFTs**](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) * 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)**.** * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** 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 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> </details>