2009-04-04 3 views
33

Je suis à la recherche d'un moyen de vider (exporter) le contenu d'un trousseau OS X dans un fichier que je peux facilement traiter ailleurs, tel qu'un texte en clair délimité par des tabulations ou quelque chose de ce genre. L'application Keychain Access n'offre aucune fonctionnalité de ce type et l'obtention des données d'une clé implique l'ouverture de chacune d'entre elles, et la saisie du mot de passe du keychain pour voir le mot de passe stocké avec la clé, à chaque fois.Existe-t-il un moyen rapide et facile de vider le contenu d'un trousseau de clés MacOS X?

Après un peu de creuser, je trouve la solution de quelqu'un en utilisant AppleScript et l'application de script Trousseau d'accès porte-clés (ne peut pas créer un lien vers poste individuel, faites défiler les deux tiers environ à la fin de la page):

En utilisant le script Keychain, vous pouvez accéder à tous les champs de données de toutes les clés - y compris le mot de passe en clair!

http://discussions.apple.com/thread.jspa?threadID=1398759

- et il est assez facile de vider ces données dans un fichier texte, etc. Je l'ai testé et ça fonctionne bien. Cependant, cette solution implique toujours de devoir confirmer l'accès à chaque clé en cliquant sur OK dans une boîte de dialogue. C'est beaucoup mieux que d'avoir à taper le mot de passe du keychain à chaque fois, mais c'est toujours énervant. De plus, vous devez confirmer l'accès deux fois pour chaque clé; une fois pour Script Editor (ou le script lui-même s'il est exécuté en tant qu'application) et une fois pour le Keychain Scripting. Donc, si vous traitez un trousseau avec 100 clés, vous devez manuellement cliquer sur OK dans les boîtes de dialogue 200.

Je suis maintenant à la recherche d'une solution pour contourner ce problème. Je me rends compte que c'est le but des keychains de protéger les données sensibles et d'empêcher précisément le genre de chose que j'essaie de faire, une telle solution impliquerait probablement une sorte de piratage.

Je serais très intéressé par vos idées!

Répondre

30

D'accord, je suis stupide. Il y a un outil de ligne de commande appelé security qui fait cela (et beaucoup d'autres actions sur les keychains).

Un exemple d'utilisation:

security dump-keychain -d login.keychain 

Cela videra toutes les données dans le login.keychain (le porte-clés par défaut pour un utilisateur), y compris en texte clair les mots de passe. Vous encore devez confirmer l'accès, mais seulement une fois pour chaque clé, et c'est beaucoup plus rapide que (et ne jette pas d'erreurs bizarres en essayant d'accéder à certains champs) en utilisant AppleScript. Et ce n'est pas un hack.

Sans l'option -d, il va vider tous les champs à l'exception du mot de passe.

keychain: "/Users/<username>/Library/Keychains/login.keychain" 
class: "inet" 
attributes: 
    0x00000007 <blob>="tech.slashdot.org (<username for this web login>)" 
    0x00000008 <blob>=<NULL> 
    "acct"<blob>="<username for this web login>" 
    "atyp"<blob>="form" 
    "cdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000" 
    "crtr"<uint32>=<NULL> 
    "cusi"<sint32>=<NULL> 
    "desc"<blob>="Kennwort des Web-Formulars" 
    "icmt"<blob>="default" 
    "invi"<sint32>=<NULL> 
    "mdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000" 
    "nega"<sint32>=<NULL> 
    "path"<blob>=<NULL> 
    "port"<uint32>=0x00000000 
    "prot"<blob>=<NULL> 
    "ptcl"<uint32>="http" 
    "scrp"<sint32>=<NULL> 
    "sdmn"<blob>=<NULL> 
    "srvr"<blob>="tech.slashdot.org" 
    "type"<uint32>=<NULL> 
data: 
"<the plaintext password for this key>" 
+13

est-il un moyen magique pour éviter de cliquer « Toujours autoriser » une fois pour chaque entrée? – Cliff

+0

@Cliff Vous pouvez trouver l'AppleScript qui va appuyer sur les boutons pour vous ici: http://apple.stackexchange.com/a/137336. –

+0

Pour le trousseau de clés iCloud, que l'outil (security) 10.9.5 ne voit pas, vous pouvez copier tout ce qui se trouve dans le trousseau de clés iCloud vers un nouveau trousseau et utiliser cette technique. (Http://selfsuperinit.com/2014/01/20/exporting-icloud-keychain-passwords-as-a-plain-text-file/) –

15

S'il vous plaît lire ceci::https://gist.github.com/rmondello/b933231b1fcc83a7db0b

, (ont d'autres domaines, mais le format est le même clés du programme et des certificats pour une clé Internet)

sous-évaluées données pour un aspect clé comme celui-ci

Ignorer: -----

J'ai trouvé une solution à la boîte de dialogue "Toujours autoriser" dans chaque touche! Il suffit d'exécuter la commande précédente avec sudo.

sudo security dump-keychain -d login.keychain 

De cette façon, vous n'aurez qu'à entrer votre mot de passe deux fois. Un sur le Terminal à sudo et un autre pour déverrouiller le porte-clés! ;)

Avoir une belle journée!

+2

ne semble pas fonctionner, il me demande encore de « permettre/refuser " chaque objet. Peut-être que vous aviez "toujours autorisé" tout la première fois que vous avez exécuté la commande? La deuxième fois, il semble avoir fonctionné comme par magie (indépendamment du sudo). –

+3

Je viens de presser autoriser 250 fois. – cedivad

+1

Je suppose que cette astuce ne fonctionne plus dans les versions récentes de Mac OS X ... – TCB13

-2

J'ai trouvé la solution pour ne pas cliquer sur « Autoriser » plusieurs fois

sudo su 
security dump-keychain -d /Users/YourUsername/Library/Keychains/login.keychain 
+0

ne fonctionne pas pour moi. – ma11hew28

0

mise à jour, il est maintenant un outil qui le fait bien:

Keychaindump est un outil de preuve de concept pour lire les mots de passe du trousseau de clés OS X en tant que root. Il recherche les clés principales de trousseau déverrouillées situées dans l'espace mémoire du processus securityd et les utilise pour décrypter les fichiers de trousseaux.

Source: https://github.com/juuso/keychaindump

+0

Ce projet git est abandon-ware, dernier commit il y a 6 ans. À utiliser à vos risques et périls. – Penumbra

Questions connexes