macOS Sensitive Locations
Mots de passe
Mots de passe Shadow
Le mot de passe Shadow est stocké avec la configuration de l'utilisateur dans des plists situés dans /var/db/dslocal/nodes/Default/users/
.
Le oneliner suivant peut être utilisé pour extraire toutes les informations sur les utilisateurs (y compris les informations de hachage) :
Des scripts comme celui-ci ou celui-ci peuvent être utilisés pour transformer le hash au format hashcat.
Une alternative en une seule ligne qui va extraire les informations d'identification de tous les comptes non-service au format hashcat -m 7100
(macOS PBKDF2-SHA512):
Extraction du trousseau
Notez que lors de l'utilisation de la commande security pour extraire les mots de passe décryptés, plusieurs invites demanderont à l'utilisateur d'autoriser cette opération.
Selon ce commentaire juuso/keychaindump#10 (comment), il semble que ces outils ne fonctionnent plus dans Big Sur.
Aperçu de Keychaindump
Un outil nommé keychaindump a été développé pour extraire des mots de passe des trousseaux macOS, mais il présente des limitations sur les versions plus récentes de macOS comme Big Sur, comme indiqué dans une discussion. L'utilisation de keychaindump nécessite que l'attaquant obtienne l'accès et élève les privilèges à root. L'outil exploite le fait que le trousseau est déverrouillé par défaut lors de la connexion de l'utilisateur pour des raisons de commodité, permettant aux applications d'y accéder sans nécessiter le mot de passe de l'utilisateur de manière répétée. Cependant, si un utilisateur choisit de verrouiller son trousseau après chaque utilisation, keychaindump devient inefficace.
Keychaindump fonctionne en ciblant un processus spécifique appelé securityd, décrit par Apple comme un démon pour les opérations d'autorisation et cryptographiques, essentiel pour accéder au trousseau. Le processus d'extraction implique l'identification d'une Clé Maîtresse dérivée du mot de passe de connexion de l'utilisateur. Cette clé est essentielle pour lire le fichier du trousseau. Pour localiser la Clé Maîtresse, keychaindump analyse le tas de mémoire de securityd en utilisant la commande vmmap
, recherchant des clés potentielles dans des zones signalées comme MALLOC_TINY
. La commande suivante est utilisée pour inspecter ces emplacements mémoire :
Après avoir identifié les clés maîtresses potentielles, keychaindump recherche à travers les tas une motif spécifique (0x0000000000000018
) qui indique un candidat pour la clé maîtresse. D'autres étapes, y compris la désobfuscation, sont nécessaires pour utiliser cette clé, comme indiqué dans le code source de keychaindump. Les analystes se concentrant sur ce domaine doivent noter que les données cruciales pour décrypter le trousseau de clés sont stockées dans la mémoire du processus securityd. Une commande d'exemple pour exécuter keychaindump est :
chainbreaker
Chainbreaker peut être utilisé pour extraire les types d'informations suivants d'un trousseau d'OSX de manière forensiquement fiable :
Mot de passe du trousseau haché, adapté pour le craquage avec hashcat ou John the Ripper
Mots de passe Internet
Mots de passe génériques
Clés privées
Clés publiques
Certificats X509
Notes sécurisées
Mots de passe Appleshare
Avec le mot de passe de déverrouillage du trousseau, une clé maîtresse obtenue en utilisant volafox ou volatility, ou un fichier de déverrouillage tel que SystemKey, Chainbreaker fournira également les mots de passe en texte clair.
Sans l'une de ces méthodes pour déverrouiller le trousseau, Chainbreaker affichera toutes les autres informations disponibles.
Dump keychain keys
Extraire les clés du trousseau (avec les mots de passe) avec SystemKey
Extraire les clés du trousseau (avec les mots de passe) en craquant le hash
Extraire les clés du trousseau (avec les mots de passe) avec une copie de la mémoire
Suivez ces étapes pour effectuer une copie de la mémoire
Extraire les clés du trousseau (avec les mots de passe) en utilisant le mot de passe de l'utilisateur
Si vous connaissez le mot de passe de l'utilisateur, vous pouvez l'utiliser pour extraire et décrypter les trousseaux qui appartiennent à l'utilisateur.
kcpassword
Le fichier kcpassword est un fichier qui contient le mot de passe de connexion de l'utilisateur, mais uniquement si le propriétaire du système a activé la connexion automatique. Par conséquent, l'utilisateur sera automatiquement connecté sans être invité à saisir un mot de passe (ce qui n'est pas très sécurisé).
Le mot de passe est stocké dans le fichier /etc/kcpassword
xoré avec la clé 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F
. Si le mot de passe de l'utilisateur est plus long que la clé, la clé sera réutilisée.
Cela rend le mot de passe assez facile à récupérer, par exemple en utilisant des scripts comme celui-ci.
Informations intéressantes dans les bases de données
Messages
Notifications
Vous pouvez trouver les données des Notifications dans $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
La plupart des informations intéressantes se trouvent dans le blob. Vous devrez donc extraire ce contenu et le transformer en un format lisible par l'homme ou utiliser strings
. Pour y accéder, vous pouvez faire :
Notes
Les notes des utilisateurs peuvent être trouvées dans ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite
Last updated