hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-red-teaming.md
2023-06-03 13:10:46 +00:00

8.6 KiB

Red Teaming sur macOS

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Méthodes de gestion courantes

  • JAMF Pro : jamf checkJSSConnection
  • Kandji

Si vous parvenez à compromettre les identifiants d'administrateur pour accéder à la plateforme de gestion, vous pouvez potentiellement compromettre tous les ordinateurs en distribuant votre logiciel malveillant sur les machines.

Pour le red teaming dans les environnements macOS, il est fortement recommandé de comprendre le fonctionnement des MDM :

{% content-ref url="macos-mdm/" %} macos-mdm {% endcontent-ref %}

Et aussi sur les protocoles réseau spéciaux de MacOS :

{% content-ref url="macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}

Active Directory

Dans certains cas, vous constaterez que l'ordinateur macOS est connecté à un AD. Dans ce scénario, vous devriez essayer de d'énumérer 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 {% endcontent-ref %}

{% content-ref url="../../windows-hardening/active-directory-methodology/" %} active-directory-methodology {% endcontent-ref %}

{% content-ref url="../../network-services-pentesting/pentesting-kerberos-88/" %} pentesting-kerberos-88 {% endcontent-ref %}

Un outil local MacOS qui peut également vous aider est dscl :

dscl "/Active Directory/[Domain]/All Domains" ls /

Il existe également des outils préparés pour MacOS pour énumérer automatiquement l'AD et jouer avec Kerberos :

  • Machound : MacHound est une extension de l'outil d'audit Bloodhound permettant de collecter et d'ingérer des relations Active Directory sur des hôtes MacOS.
  • Bifrost : Bifrost est un projet Objective-C conçu pour interagir avec les API Heimdal krb5 sur macOS. Le but du projet est de permettre de meilleurs tests de sécurité autour de Kerberos sur les appareils macOS en utilisant des API natives sans nécessiter d'autres frameworks ou packages sur la cible.
  • Orchard : Outil JavaScript pour l'automatisation (JXA) pour effectuer une énumération Active Directory.

Informations de domaine

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Utilisateurs

Les trois types d'utilisateurs MacOS sont :

  • Utilisateurs locaux - Gérés par le service local OpenDirectory, ils ne sont connectés d'aucune manière à Active Directory.
  • Utilisateurs réseau - Utilisateurs volatils d'Active Directory qui nécessitent une connexion au serveur DC pour s'authentifier.
  • Utilisateurs mobiles - Utilisateurs d'Active Directory avec une sauvegarde locale de leurs informations d'identification et de leurs fichiers.

Les informations locales sur les utilisateurs et les groupes sont stockées dans le dossier /var/db/dslocal/nodes/Default.
Par exemple, les informations sur l'utilisateur appelé mark sont stockées dans /var/db/dslocal/nodes/Default/users/mark.plist et les informations sur le groupe admin sont dans /var/db/dslocal/nodes/Default/groups/admin.plist.

En plus d'utiliser les bords HasSession et AdminTo, MacHound ajoute trois nouveaux bords à la base de données Bloodhound :

  • CanSSH - entité autorisée à se connecter en SSH à l'hôte
  • CanVNC - entité autorisée à se connecter en VNC à l'hôte
  • CanAE - entité autorisée à exécuter des scripts AppleEvent sur l'hôte
#User enumeration
dscl . ls /Users
dscl . read /Users/[username]
dscl "/Active Directory/TEST/All Domains" ls /Users
dscl "/Active Directory/TEST/All Domains" read /Users/[username]
dscacheutil -q user

#Computer enumeration
dscl "/Active Directory/TEST/All Domains" ls /Computers
dscl "/Active Directory/TEST/All Domains" read "/Computers/[compname]$"

#Group enumeration
dscl . ls /Groups
dscl . read "/Groups/[groupname]"
dscl "/Active Directory/TEST/All Domains" ls /Groups
dscl "/Active Directory/TEST/All Domains" read "/Groups/[groupname]"

#Domain Information
dsconfigad -show

Plus d'informations sur https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Services externes

Le Red Teaming de MacOS est différent d'un Red Teaming Windows régulier car généralement MacOS est intégré à plusieurs plateformes externes directement. Une configuration courante de MacOS consiste à accéder à l'ordinateur en utilisant des identifiants synchronisés OneLogin, et à accéder à plusieurs services externes (comme github, aws...) via OneLogin :

Références

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥