[extension] pass-audit , a pass extension for auditing your password repository.

Allan Odgaard lists+pass at simplit.com
Sun Feb 25 01:33:51 CET 2018


I wrote the below ruby script myself to test all my passwords against 
the same service.

It’s tested on macOS, two of my passwords had been breached, both for 
last.fm.

I haven’t used the service in ages, but wanted to update my passwords 
nonetheless.

The last.fm breach was in March of 2012, so I expected both passwords to 
have been disabled.

I login to last.fm, no problem, and no info box that asks me to update 
password.

I then go ahead to update my password. I use apg to generate a random 
password.

Lo and behold, last.fm tells me my new password is too weak and I should 
pick another, LMFAO!

```ruby
#!/usr/bin/env ruby
require 'digest'
require 'shellwords'

PASSWORD_STORE_DIR = ENV['PASSWORD_STORE_DIR'] || 
File.expand_path('~/.password-store')

Dir.chdir(PASSWORD_STORE_DIR) do
   Dir.glob('**/*.gpg') do |file|
     path = "#{PASSWORD_STORE_DIR}/#{file}"
     pass = %x{ gpg -d #{path.shellescape} 2>/dev/null | head -n1 
}.chomp
     hash = Digest::SHA1.hexdigest(pass).upcase

     prefix, suffix = hash[0..4], hash[5..39]
     url = "https://api.pwnedpasswords.com/range/#{prefix}"
     response = %x{ curl -sL #{url.shellescape}|grep 
#{suffix.shellescape} }

     if $?.exitstatus == 0
       count = response.chomp.split(':')[1]

       dir, name = File.dirname(file), File.basename(file, '.gpg')
       subpath = dir == '.' ? name : "#{dir}/#{name}"
       puts "#{count} leaks of your password (‘#{pass}’) for 
#{subpath}"
     end
   end
end
```
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20180225/1fc351b8/attachment.html>


More information about the Password-Store mailing list