<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
- Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
- **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
- **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
FreeIPA est une **alternative** open-source à Microsoft Windows **Active Directory**, principalement pour les environnements **Unix**. Il combine un **annuaire LDAP** complet avec un centre de distribution de clés MIT **Kerberos** pour la gestion similaire à Active Directory. En utilisant le système de certificats Dogtag pour la gestion des certificats CA & RA, il prend en charge l'authentification **multi-facteurs**, y compris les cartes à puce. SSSD est intégré pour les processus d'authentification Unix.
- Le fichier `/etc/krb5.conf` est l'endroit où les informations du client Kerberos, nécessaires pour l'inscription dans le domaine, sont stockées. Cela inclut les emplacements des KDC et des serveurs d'administration, les paramètres par défaut et les mappings.
- Les paramètres par défaut du système pour les clients et serveurs IPA sont définis dans le fichier situé à `/etc/ipa/default.conf`.
- Les hôtes dans le domaine doivent avoir un fichier `krb5.keytab` à l'emplacement `/etc/krb5.keytab` pour les processus d'authentification.
- Diverses variables d'environnement (`KRB5CCNAME`, `KRB5_KTNAME`, `KRB5_CONFIG`, `KRB5_KDC_PROFILE`, `KRB5RCACHETYPE`, `KRB5RCACHEDIR`, `KRB5_TRACE`, `KRB5_CLIENT_KTNAME`, `KPROP_PORT`) sont utilisées pour pointer vers des fichiers spécifiques et des paramètres pertinents à l'authentification Kerberos.
Des outils tels que `ipa`, `kdestroy`, `kinit`, `klist`, `kpasswd`, `ksu`, `kswitch` et `kvno` sont essentiels pour la gestion des domaines FreeIPA, la gestion des tickets Kerberos, le changement de mots de passe et l'acquisition de tickets de service, entre autres fonctionnalités.
L'authentification dans FreeIPA, en utilisant **Kerberos**, est similaire à celle d'**Active Directory**. L'accès aux ressources du domaine nécessite un ticket Kerberos valide, qui peut être stocké à divers emplacements en fonction de la configuration du domaine FreeIPA.
Les fichiers CCACHE, stockés généralement dans **`/tmp`** avec des permissions **600**, sont des formats binaires pour stocker les informations d'identification Kerberos, importantes pour l'authentification sans le mot de passe en clair de l'utilisateur en raison de leur portabilité. L'analyse d'un ticket CCACHE peut être effectuée en utilisant la commande `klist`, et la réutilisation d'un ticket CCACHE valide implique d'exporter `KRB5CCNAME` vers le chemin du fichier de ticket.
Alternativement, les tickets CCACHE peuvent être stockés dans le trousseau Linux, offrant plus de contrôle sur la gestion des tickets. La portée du stockage des tickets varie (`KEYRING:name`, `KEYRING:process:name`, `KEYRING:thread:name`, `KEYRING:session:name`, `KEYRING:persistent:uidnumber`), avec `klist` capable d'analyser ces informations pour l'utilisateur. Cependant, la réutilisation d'un ticket CCACHE à partir du trousseau Unix peut poser des défis, avec des outils comme **Tickey** disponibles pour extraire les tickets Kerberos.
Les fichiers Keytab, contenant des principaux Kerberos et des clés chiffrées, sont essentiels pour obtenir des tickets de distribution de tickets (TGT) valides sans avoir besoin du mot de passe du principal. L'analyse et la réutilisation des informations d'identification à partir des fichiers Keytab peuvent être facilement effectuées avec des utilitaires comme `klist` et des scripts tels que **KeytabParser**.
Vous pourriez effectuer l'**énumération** via **ldap** et d'autres **outils binaires**, ou **vous connecter à la page web sur le port 443 du serveur FreeIPA**.
Il est possible de créer des **hôtes**, des **utilisateurs** et des **groupes**. Les hôtes et les utilisateurs sont classés dans des conteneurs appelés "**Groupes d'hôtes**" et "**Groupes d'utilisateurs**" respectivement. Ceux-ci sont similaires aux **Unités organisationnelles** (OU).
Par défaut dans FreeIPA, le serveur LDAP permet les **liaisons anonymes**, et une grande quantité de données est énumérable **non authentifiée**. Cela peut énumérer toutes les données disponibles non authentifiées:
Pour obtenir **plus d'informations**, vous devez utiliser une session **authentifiée** (consultez la section Authentification pour apprendre comment préparer une session authentifiée).
* Le hash du mot de passe d'un utilisateur est stocké en **base64** dans l'attribut "**userPassword**". Ce hash peut être **SSHA512** (anciennes versions de FreeIPA) ou **PBKDF2\_SHA256**.
• Si FreeIPA est intégré à AD, **ipaNTHash** est facile à casser : Vous devez décoder en **base64** -> le réencoder en hexadécimal **ASCII** -> John The Ripper ou **hashcat** peuvent vous aider à le casser rapidement
• Si une ancienne version de FreeIPA est utilisée, donc **SSHA512** est utilisé : Vous devez décoder en **base64** -> trouver le hash SSHA512 -> John The Ripper ou **hashcat** peuvent vous aider à le casser
• Si une nouvelle version de FreeIPA est utilisée, donc **PBKDF2\_SHA256** est utilisé : Vous devez décoder en **base64** -> trouver PBKDF2\_SHA256 -> sa longueur est de 256 octets. John peut travailler avec 256 bits (32 octets) -> SHA-265 est utilisé comme fonction pseudo-aléatoire, la taille du bloc est de 32 octets -> vous pouvez utiliser uniquement les premiers 256 bits de notre hash PBKDF2\_SHA256 -> John The Ripper ou hashcat peuvent vous aider à le casser
Ce sont les règles qui accordent des autorisations spécifiques aux utilisateurs ou aux hôtes sur les ressources (hôtes, services, groupes de services...).
FreeIPA permet un contrôle centralisé des **permissions sudo** via les règles sudo. Ces règles permettent ou limitent l'exécution de commandes avec sudo sur les hôtes du domaine. Un attaquant pourrait potentiellement identifier les hôtes applicables, les utilisateurs et les commandes autorisées en examinant ces ensembles de règles.
Un **rôle** est composé de diverses **privilèges**, chacun englobant une collection de **permissions**. Ces rôles peuvent être attribués à des Utilisateurs, des **Groupes** d'utilisateurs, des **Hôtes**, des Groupes d'hôtes et des Services. Par exemple, considérez le rôle par défaut "Administrateur d'utilisateurs" dans FreeIPA pour illustrer cette structure.
Dans [https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e](https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e), vous pouvez trouver un exemple simple de comment abuser de certaines autorisations pour compromettre le domaine.
Si vous pouvez **créer un nouvel utilisateur avec le nom `root`**, vous pouvez vous faire passer pour lui et vous pourrez **vous connecter en SSH sur n'importe quelle machine en tant que root.**
Vous pouvez consulter une explication détaillée dans [https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b](https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b)
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.