<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** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
* **/Applications**: Les applications installées devraient être ici. Tous les utilisateurs pourront y accéder.
* **/bin**: Binaires de ligne de commande
* **/cores**: S'il existe, il est utilisé pour stocker les vidages de cœur
* **/dev**: Tout est traité comme un fichier, vous pouvez donc voir des périphériques matériels stockés ici.
* **/etc**: Fichiers de configuration
* **/Library**: De nombreux sous-répertoires et fichiers liés aux préférences, caches et journaux peuvent être trouvés ici. Un dossier Library existe à la racine et dans le répertoire de chaque utilisateur.
* **/private**: Non documenté mais beaucoup des dossiers mentionnés sont des liens symboliques vers le répertoire privé.
* **/sbin**: Binaires système essentiels (liés à l'administration)
* **/System**: Fichier pour faire fonctionner OS X. Vous devriez trouver principalement des fichiers spécifiques à Apple ici (pas de tiers).
* **/tmp**: Les fichiers sont supprimés après 3 jours (c'est un lien symbolique vers /private/tmp)
* **/Users**: Répertoire personnel des utilisateurs.
* **/usr**: Binaires de configuration et système
* **/var**: Fichiers journaux
* **/Volumes**: Les lecteurs montés apparaîtront ici.
* **/.vol**: En exécutant `stat a.txt`, vous obtenez quelque chose comme `16777223 7545753 -rw-r--r-- 1 nom_utilisateur wheel ...` où le premier nombre est l'identifiant du volume où se trouve le fichier et le deuxième est le numéro d'inode. Vous pouvez accéder au contenu de ce fichier via /.vol/ avec ces informations en exécutant `cat /.vol/16777223/7545753`
### Dossiers des Applications
* Les **applications système** sont situées sous `/System/Applications`
* Les applications **installées** sont généralement installées dans `/Applications` ou dans `~/Applications`
* Les **données de l'application** peuvent être trouvées dans `/Library/Application Support` pour les applications s'exécutant en tant que root et `~/Library/Application Support` pour les applications s'exécutant en tant qu'utilisateur.
* Les applications **sandboxed** sont mappées dans le dossier `~/Library/Containers`. Chaque application a un dossier nommé selon l'ID de bundle de l'application (`com.apple.Safari`).
Sur macOS (et iOS), toutes les bibliothèques système partagées, comme les frameworks et les dylibs, sont **combinées dans un seul fichier**, appelé le **cache partagé dyld**. Cela améliore les performances, car le code peut être chargé plus rapidement.
Pour extraire les bibliothèques du fichier unique du cache partagé dylib, il était possible d'utiliser le binaire [dyld\_shared\_cache\_util](https://www.mbsplugins.de/files/dyld\_shared\_cache\_util-dyld-733.8.zip) qui pourrait ne pas fonctionner de nos jours, mais vous pouvez également utiliser [**dyldextractor**](https://github.com/arandomdev/dyldextractor):
Notez que même si l'outil `dyld_shared_cache_util` ne fonctionne pas, vous pouvez passer le **binaire dyld partagé à Hopper** et Hopper pourra identifier toutes les bibliothèques et vous permettre de **sélectionner celle que vous souhaitez** investiguer :
Dans un **dossier**, **lire** permet de **lister son contenu**, **écrire** permet de **supprimer** et **écrire** des fichiers dessus, et **exécuter** permet de **traverser** le répertoire. Ainsi, par exemple, un utilisateur avec **l'autorisation de lecture sur un fichier** à l'intérieur d'un répertoire où il **n'a pas l'autorisation d'exécution****ne pourra pas lire** le fichier.
Il existe des drapeaux qui peuvent être définis dans les fichiers et qui feront que le fichier se comportera différemment. Vous pouvez **vérifier les drapeaux** des fichiers à l'intérieur d'un répertoire avec `ls -lO /chemin/répertoire`
* **`uchg`** : Connu sous le nom de drapeau **uchange** empêchera toute action de **modification ou de suppression** du **fichier**. Pour le définir : `chflags uchg fichier.txt`
* L'utilisateur root pourrait **supprimer le drapeau** et modifier le fichier
* **`restricted`** : Ce drapeau fait en sorte que le fichier soit **protégé par SIP** (vous ne pouvez pas ajouter ce drapeau à un fichier).
* **`Bit collant`** : Si un répertoire a un bit collant, **seul** le **propriétaire du répertoire ou root peut renommer ou supprimer** des fichiers. Typiquement, cela est défini sur le répertoire /tmp pour empêcher les utilisateurs ordinaires de supprimer ou déplacer les fichiers d'autres utilisateurs.
Les **ACL** des fichiers contiennent des **ACE** (entrées de contrôle d'accès) où des **autorisations plus granulaires** peuvent être attribuées à différents utilisateurs.
Il est possible d'accorder à un **dossier** ces autorisations : `liste`, `recherche`, `ajout_fichier`, `ajout_sous-dossier`, `supprimer_enfant`, `supprimer_enfant`.\
Et à un **fichier** : `lire`, `écrire`, `ajouter`, `exécuter`.
C'est une façon d'obtenir des **flux de données alternatifs sur les machines macOS**. Vous pouvez enregistrer du contenu à l'intérieur d'un attribut étendu appelé **com.apple.ResourceFork** à l'intérieur d'un fichier en l'enregistrant dans **file/..namedfork/rsrc**.
Les binaires Mac OS sont généralement compilés en tant que **binaires universels**. Un **binaire universel** peut **prendre en charge plusieurs architectures dans le même fichier**.
Le répertoire `/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/System` est l'endroit où sont stockées les informations sur le **risque associé aux différentes extensions de fichiers**. Ce répertoire catégorise les fichiers en différents niveaux de risque, influençant la manière dont Safari gère ces fichiers lors du téléchargement. Les catégories sont les suivantes :
- **LSRiskCategorySafe** : Les fichiers de cette catégorie sont considérés comme **complètement sûrs**. Safari ouvrira automatiquement ces fichiers après leur téléchargement.
- **LSRiskCategoryNeutral** : Ces fichiers ne comportent aucun avertissement et ne sont **pas ouverts automatiquement** par Safari.
- **LSRiskCategoryUnsafeExecutable** : Les fichiers de cette catégorie **déclenchent un avertissement** indiquant que le fichier est une application. Il s'agit d'une mesure de sécurité pour alerter l'utilisateur.
- **LSRiskCategoryMayContainUnsafeExecutable** : Cette catégorie est destinée aux fichiers, tels que les archives, qui pourraient contenir un exécutable. Safari **déclenchera un avertissement** à moins qu'il puisse vérifier que tous les contenus sont sûrs ou neutres.
* **`$HOME/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2`** : Contient des informations sur les fichiers téléchargés, comme l'URL à partir de laquelle ils ont été téléchargés.
* **`/var/log/system.log`** : Journal principal des systèmes OSX. com.apple.syslogd.plist est responsable de l'exécution de la journalisation système (vous pouvez vérifier s'il est désactivé en recherchant "com.apple.syslogd" dans `launchctl list`).
* **`/private/var/log/asl/*.asl`** : Ce sont les journaux système Apple qui peuvent contenir des informations intéressantes.
* **`$HOME/Library/Preferences/com.apple.recentitems.plist`** : Stocke les fichiers et applications récemment consultés via "Finder".
* **`$HOME/Library/Preferences/com.apple.loginitems.plsit`** : Stocke les éléments à lancer au démarrage du système.
* **`$HOME/Library/Logs/DiskUtility.log`** : Fichier journal de l'application DiskUtility (informations sur les lecteurs, y compris les clés USB).
* **`/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist`** : Données sur les points d'accès sans fil.
* **`/private/var/db/launchd.db/com.apple.launchd/overrides.plist`** : Liste des démons désactivés.
<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) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.