MacOS - Keychain
Vérification du SHA du ZIP

Vérification du SHA de l'img initiale
SHA donné par root me :
SHA du fichier :
Vérificaiton de la correspondance :

Analyse
Le zip qui nous ai donné contient un fichier img.
En ouvrant l'img avec Active Disk Editor, nous pouvons repérer le format du disque : HSF+.

Ce type de format correspond à un système de fichier Apple. Un outils nommé HFSExplorer, permet d'explorer ce type de disque.
HFSExplorer
Une fois HFSExplorer lancé, ouvrir l'img en tant que fichier :

Une fois l'img chargé, nous pouvons accéder au fichiers :

Il ne reste plus qu'a exporter les données, cela créera un dossier "Untitiled".

Recherche
Première preuve
Mainantenant analysons les sous dossier. En fouillant dans les dossier, on peut trouver un dossier SharePoint avec un Prénom et un Nom : Luis Pereira. Le fichier est accessible sous : 
untitled\private\var\db\dslocal\nodes\Default\sharepoints

Deuxième preuve
Un fichier contient un SHA1 sous :
untitled\private\var\db\dslocal\nodes\Default\config
SHA 1 : D64C8A6D6F7B975BA40DB5A8EFA3E96590DF32B4
Troisième preuve
Un fichier contient un SHA512 :
untitled\private\var\db\dslocal\nodes\Default\users
t3rr0r1st3@LKDC:SHA1.5D825F681FDC0C4F195F964DB0A82FA25118EBA9
Quatrième preuve
Un fichier Keychain est présent sous :
untitled\Users\t3rr0r1st3\Library\Keychains
Les fichiers KEYCHAIN sont utilisés pour stocker des données d'authentification sous MAC OS X.
Nous pouvons trouvons bon nombre d'outils sur interent permetant de lire ces fichier Keychain. Pour ma part j'ai choisi d'utiliser l'outils : Chainbreaker disponible sur Github en python2.
Une fois l'arcihe téléchargé et python2 installé, nous pouvons lancer le script, avec comme paramètre le hash ainsi que dump-all qui permet d'extraire tout les mot de passe. Cependant le keychain est bloqué (locked) et n'affiche pas tous les mots de passes. Pour avoir accès à l'ensemble des mots de passes il faut ajouter le mot de passe du keychain en paramètre.
C:\Python27\python.exe .\chainbreaker.py "W:\CTF\RootMe\macOS - Keychain\Search\20221006-01-02\untitled\Users\t3rr0r1st3\Library\Keychains\login.keychain-db" --dump-all
J'obtient comme résultat :
2022-10-06 11:40:15,605 - INFO - Runtime Command: .\chainbreaker.py W:\CTF\RootMe\macOS - Keychain\Search\20221006-01-02\untitled\Users\t3rr0r1st3\Library\Keychains\login.keychain-db --dump-all
2022-10-06 11:40:15,605 - INFO - Keychain: W:\CTF\RootMe\macOS - Keychain\Search\20221006-01-02\untitled\Users\t3rr0r1st3\Library\Keychains\login.keychain-db
2022-10-06 11:40:15,605 - INFO - Keychain MD5: 08dba60137c895cd772f5da75249638a
2022-10-06 11:40:15,605 - INFO - Keychain 256: 0aecc0f94333705b830a71edfb81858ee48dfd77a2a0c69bdd2bf435a5960eda
2022-10-06 11:40:15,605 - INFO - Dump Start: 2022-10-06 11:40:15.274000
2022-10-06 11:40:15,605 - INFO - Dump Summary:
2022-10-06 11:40:15,605 - INFO -        1 Keychain Password Hash
2022-10-06 11:40:15,605 - INFO -        18 Generic Passwords
2022-10-06 11:40:15,605 - INFO -        0 Internet Passwords
2022-10-06 11:40:15,605 - INFO -        0 Appleshare Passwords
2022-10-06 11:40:15,605 - INFO -        0 Private Keys
2022-10-06 11:40:15,605 - INFO -        0 Public Keys
2022-10-06 11:40:15,605 - INFO -        0 x509 Certificates
2022-10-06 11:40:15,605 - INFO - Dump End: 2022-10-06 11:40:15.605000
On retrouve donc un MD5 et un SHA256 :
- Keychain MD5: 08dba60137c895cd772f5da75249638a
- Keychain 256: 0aecc0f94333705b830a71edfb81858ee48dfd77a2a0c69bdd2bf435a5960eda
Mais également le Hash du password Keychain :
$keychain$*928f46ae7c27a88c411328d1127823905f6075f3*74b2be601cd10435*404fcfb79978167c3a7354ae45ea43d14f8282f5026e6168cfa8fe9fc1dd3d4ede1093b9d7a88347c98c38c7dbe11e92

Je vais lancer une tentative de cassage de hash avec Hashcat. Le paramètre -m 23100 permet de casser des hash de Apple Keychain.
Voici la commande :
Le fichier hash.txt contient le hash du keychain.
Hashcat ne semble rien donné :

Cinquième preuve (le mot de passe user)
La présence d'un fichier KCpassword qui est présent lorsqu'un utilisateur active l'autologin.
/etc/kcpassword
Des outils permetent de retrouver le mot de passe utilisateur en passant par le fichierkcpassword.
decode-kcpassword.py
Commande finale :
PS C:\Users\sam\Downloads\decode-kcpassword-master> python .\decode-kcpassword.py .\20221006-01-03-kcpassword
f0r3ns1ccl4v13

kcpass.py
Kcpass.py nécessite l'utilisation d'une suite binaire. Pour cela il faut lancer la commande xxd.

 
On récupère la suite de caractère :
1bb92010bccfec89c0d52b0bb86123b57ab499f2465591a0
Enfin on envoie la commande kcpass avec la suite alphanumérique :
Mot de passe utilisateur : f0r3ns1ccl4v13

Et de la on retrouve le mot de passe utilisateur :
        Kcpasswd: 0x1bb92010bccfec89c0d52b0bb86123b57ab499f2465591a0.
        Magic Xor: 0x7d895223d2bcddeaa3b91f.
        Used Magic Xor: 0x7d895223d2bcddeaa3b91f7d895223d2bcddeaa3b91f7d895223d2bcddeaa3b91f.
        The password is: "f0r3ns1ccl4v13".
Mot de passe utilisateur : f0r3ns1ccl4v13
Enfin le mot de passe gmail
Il ne reste plus qu'a utiliser le script python pour déchiffrer le keychain avec le mot de passe :
C:\Python27\python.exe .\chainbreaker.py "W:\CTF\RootMe\macOS - Keychain\Search\20221006-01-02\untitled\Users\t3rr0r1st3\Library\Keychains\login.keychain-db" --password f0r3ns1ccl4v13 --dump-all

Mot de passe gmail : ihateapple89
Flag
Concaténation des deux mots de passes :
Conversion en SHA256 :
Accès au "disque"
Reconstituer la table de partition
Commencer par ouvrir l'image disk avec Active Disk Editor(version 7.3.01), et activer l'édition.
- Il faut commencer par mettre la signature du MBR : 55 AA.
- Au niveau la partition 1, il faut préciser le System ID HFS+, en l'occurance : AF
- Puis, préciser le secteur de début de la partition : 2.
- Enfin mettre le total de secteur. Pour cela se rendre tout en bas et répérer le nombre total de secteur : 298878(il faut retirer 1, car il y a une copie du premier secteur).

Enfin, lancer fdisk sur linux.
Tapez p afin d'afficher les partitions :

Enfin tapez v afin de vérifier d'éventuelles erreurs :

Conservation de la preuve
