Listing All Passwords Stored in Gnome Keyring

  2008-10-31


I was toying with writing my first desktop application in years and got distracted by how cool Gnome Keyring is. Of course storing and retrieving passwords is pretty mundane, so here’s a fun example that dumps all of the current user’s passwords:

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk # sets app name
import gnomekeyring

def hack():
    for keyring in gnomekeyring.list_keyring_names_sync():
        for id in gnomekeyring.list_item_ids_sync(keyring):
            item = gnomekeyring.item_get_info_sync(keyring, id)
            print '[%s] %s = %s' % (
                    keyring, item.get_display_name(), item.get_secret())
        else:
            if len(gnomekeyring.list_item_ids_sync(keyring)) == 0:
                print '[%s] --empty--' % keyring

if __name__ == '__main__':
    hack()

Sample output with the interesting bits removed:

[default] Local password for user root = *******
[login] michael.schurter@Work = *******
[login] Google Account = *******
[login] Passphrase for wireless network 2WIRE939 = *******
[login] Unlock password for default keyring = *******
[login] schmichael@twitter.com = *******
[session] --empty--

Its not meant to be any sort of real hacking tool. After all you can view all of this information via [Seahorse][2] anyway.

But what fun is a GUI tool? 😉

[2]: http://live.gnome.org/Seahorse