Ricetta sperimentata con Firefox 68.5 su Debian GNU/Linux.
Pacchetti Debian necessari:
apt-get install libnss3-tools jq
Come tutti sanno, con Firefox è possibile salvare le password utilizzate nelle varie pagine web per non doverle digitare nuovamente quando si visita la stessa pagina.
Dal menu Preferences ⇒ Privacy & Security ⇒ Saved Logins… è possibile vedere in chiaro tali password, semplicemnte cercando la password e cliccando su Show Passwords.
È possibile anche recuperare tutte le password leggendo il file in cui vengono salvate. Il file interessato è $HOME/.mozilla/firefox/xxxxxxxx.default/logins.json dove xxxxxxxx è una stringa casuale diversa per ogni installazione di Firefox. Il file è in effetti in formato JSON, per estrarre comodamente il contenuto si usa il comando jq:
jq -r -S '.logins[] | .hostname, .encryptedUsername, .encryptedPassword' logins.json
Per ogni password salvata vengono stampate tre righe del tipo:
http://www.site.org MDIEEPgAAAAAAAAAAAAAAAAAAAOWI3ZmRlNDE1OGRjYjAgzNDRiOTEyZDFiZjNjZ+bumyw== MDoEEPgAAAAAAAAAAAAAAAAAAAOWI3ZmRlNDE1OGRjYjA3NzMzNzcyYTliY2RmYTZlYWJkOD+i4t/DlC
Per decifrare il contenuto si usa il comando pwdecrypt. Il programma ottiene le chiavi per decifrare leggendo i file cert9.db e key4.db, pertanto è necessario indicare in quale directory si trovano tali file con il parametro -d:
jq -r -S '.logins[] | .hostname, .encryptedUsername, .encryptedPassword' logins.json \ | pwdecrypt -d .
Se il database delle password è protetto da una master password, la si deve specificare con il parametro -p:
pwdecrypt -d . -p MasterPassword