password-exporter icon indicating copy to clipboard operation
password-exporter copied to clipboard

incompatible with Firefox 57

Open netllama opened this issue 8 years ago • 29 comments
trafficstars

This addon is not compatible with Firefox 57 (which requires WebExtension support). Are there plans to port it over to WebExtensions, or will it die when Firefox57 is released in November?

netllama avatar Aug 13 '17 17:08 netllama

There isn't a WebExtensions API to access stored passwords yet. There's a proposal that is currently undergoing security review, but I don't know when that will happen. I'm sure it won't make 57, but hopefully it will be picked up again shortly after 57.

jvillalobos avatar Aug 13 '17 17:08 jvillalobos

Firefox in the beta channel just disabled all legacy add-ons. For those in the Beta channel, it's already happening...

lightdot avatar Sep 27 '17 00:09 lightdot

i hope this gets working again. i have my passwords stored in case if my PC dies an i forget my passwords.

Q13E5 avatar Nov 17 '17 05:11 Q13E5

No this wont work, i have 4 ad ons i rely on heavily and they all have been uninstalled with out authorization. . Y don't they WARN us they are about to disrupt our personal lives. Where is the previous version of firefox, it is still compatible the plugs. I seriously need to reinstall that one now. Anybody know where the link is for v56? The one that worked!

Studcrusher avatar Nov 17 '17 11:11 Studcrusher

lol calm down, it's been known since 2 years that XUL add-ons are deprecated. Firefox 56 even showed "LEGACY" for old add-ons. Meanwhile, you can save passwords with this: http://www.nirsoft.net/utils/passwordfox.html (if you have 64 bit make sure you choose the right Firefox folder).

If you really need legacy add-ons DO NOT install Firefox 56 - it's a security risk! Instead, install Firefox 52 ESR, which is still supported until April or May 2018: https://www.mozilla.org/en-US/firefox/organizations/all/ Note that downgrading Firefox can lead to unwanted side effects so backup your profile!

Brawl345 avatar Nov 17 '17 11:11 Brawl345

If you need to export all your passwords, you can use

git clone https://github.com/lclevy/firepwd
cd firepwd

Then copy both logins.json and key3.db to the current firepwd directory To find the 2 mentioned files easily, type in the url bar about:support, then look at Profile Directory and click on Open Containing Folder.

After the copy, do the following:

python2.7 firepwd.py -d ./ -p yourpassword | sed 's/\\x0[0-9]//g'

Notes:

  • I have more than one version of python on my OS, so I use python2.7 as the script is working for Python 2.7. You may use python instead.
  • I had to use a pipe with sed at the end to avoid getting output for each line similar to:
https://www.myfirstservice.com: '[email protected]\x08\x08\x08\x08\x08\x08\x08\x08' , 'MYFIRSTPASSWORD\x07\x07\x07\x07\x07\x07\x07'
  • A pdf within the cloned repository explained well all the process to decrypt password in Firefox context

I didn't investigate how to do the opposite operation, e.g insert/copy into logins.json.

ThomasG77 avatar Nov 21 '17 01:11 ThomasG77

After python2.7 firepwd.py -d ./ -p yourpassword | sed 's/\x0[0-9]//g' comes the error: password check error, Master Password is certainly used, please provide it with -p option I use Linux Mint 18.2 mate. With python2.7 firepwd.py -d ./ | sed 's/\x0[0-9]//g' > file.txt it works and it write the output to file.txt. How i can export the output to a csv file respectively a format which i can import to Firefox?

ltspicer avatar Nov 21 '17 17:11 ltspicer

If you use a master password (one password to rule them all) like in my case, you need to use -p yourcomplexpassword. Otherwise, it seems it failed. In this case, your approach without -p is right.

The output is nearly already a CSV, you just need to replace in some cases, leading space(s) at the beginning of each line, the : with a , and ' should be removed (last advice valid only if your passwords don't use single quotes).

After, it's just about using tools like sed, hawk, csvkit (for command line) or using search & replace of your favorite text editor.

ThomasG77 avatar Nov 21 '17 17:11 ThomasG77

Cool thx. Why you dont create a addon for Firefox? ^^

ltspicer avatar Nov 21 '17 18:11 ltspicer

Doesn't seem to work for me:

$ python2.7 firepwd.py -d ./ | sed 's/\\x0[0-9]//g'
Traceback (most recent call last):
  File "firepwd.py", line 243, in <module>
 SEQUENCE {
   SEQUENCE {
     OBJECTIDENTIFIER 1.2.840.113549.1.12.5.1.3
     SEQUENCE {
       OCTETSTRING 73bec4d3db19594059e1865f0d51767c
       INTEGER 01
     }
   }
   OCTETSTRING bde7a6bcb7b3fc92e54045a5e8b6b892bc7a4447a883c4c0746190ca135d391aa9f50ef15e2af74bd4860fc27690fd47fe6b755be025de0cef2ed0fe1a75da7461eb436b0089146c7289982fb0449274f1e93c374cbc66ac397f6e235f52e602
 }
decrypting privKeyData
 SEQUENCE {
   INTEGER 00
   SEQUENCE {
     OBJECTIDENTIFIER 1.2.840.113549.1.1.1
     NULL 0
   }
   OCTETSTRING 3042020100021100f800000000000000000000000000000102010002181c265ef2ae23df4cc7fde5dc9e3bbad0024c1a8c1613e3e5020100020100020100020100020115
 }
decoding 3042020100021100f800000000000000000000000000000102010002181c265ef2ae23df4cc7fde5dc9e3bbad0024c1a8c1613e3e5020100020100020100020100020115
 SEQUENCE {
   INTEGER 00
   INTEGER 00f8000000000000000000000000000001
   INTEGER 00
   INTEGER 1c265ef2ae23df4cc7fde5dc9e3bbad0024c1a8c1613e3e5
   INTEGER 00
   INTEGER 00
   INTEGER 00
   INTEGER 00
   INTEGER 15
 }
    logins = getLoginData()
  File "firepwd.py", line 171, in getLoginData
    logins.append( (decodeLoginData(encUsername), decodeLoginData(encPassword), row['hostname']) )
  File "firepwd.py", line 153, in decodeLoginData
    asn1data = decoder.decode(b64decode(data)) #first base64 decoding, then ASN1DERdecode
  File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/decoder.py", line 784, in __call__
    '%d-octet short' % (length - len(substrate))
pyasn1.error.SubstrateUnderrunError: 94-octet short

netllama avatar Nov 23 '17 01:11 netllama

Here's what I used to produce a CSV similar to Chrome's password exports:

python2.7 firepwd.py -d ./ -p yourpassword | sed 's/\\x0[0-9]//g' | sed -r -e "s|^ *https://([^:]+): '([^']+)' , '([^']+)'\$|\1,https://\1,\2,\3|"

P.S. It won't work if a username or password contains an apostrophe (') or a comma (,).

Changaco avatar Dec 11 '17 17:12 Changaco

your example works ony if protocol is https on standard port. this sed works with all protocol and ports

"s|^ *([^:]+)://(.*?): '([^']*)' , '([^']*)'\$|\2,\1://\2,\3,\4|"

Since many users now asking for how to convert there passwords to an CSV I provide a shellscript I wrote as Pullrequest .. https://github.com/lclevy/firepwd/pull/2

gnadelwartz avatar Jan 01 '18 17:01 gnadelwartz

The sooner this extension is updated the better! It's been awesome for years and hopefully continues to be, then I'll be very api... Lol c what I did there ;-)

Cheers!

TRITORIN avatar Jan 12 '18 15:01 TRITORIN

@ThomasG77 I have the following error Traceback (most recent call last): File "firepwd.py", line 15, in from pyasn1.codec.der import decoder ImportError: No module named pyasn1.codec.der

How I can get and install the missing module ?

Cezanna avatar Jan 22 '18 09:01 Cezanna

@Cezanna Just look at the code https://github.com/lclevy/firepwd/blob/master/firepwd.py#L14 to see that required module is pyasn1. So do, pip install pyasn1. If you have more issue with package installation, go to http://docs.python-guide.org/en/latest/dev/virtualenvs/ to learn more

ThomasG77 avatar Jan 22 '18 11:01 ThomasG77

  1. The version of python on macos X seems to be to old to install pip as indicatd on https://pip.pypa.io/en/stable/installing/ and it discourages to install on python depending on OS
  2. Once installed pyasn1 from github and running python setup.pi install I have always the same error

Cezanna avatar Jan 22 '18 16:01 Cezanna

Hello,

I moved from Firefox 56 to Quantum and I wrote a python script to convert that XML:

The script can be customized to whatever CSV format it is needed.

Note: For those interested in keepassxc and its extension: they talk to each other through the new native messaging protocol. Passwords are not stored anymore in the browser but retrieved at runtime from keepassxc. However I had to compile keepassxc from the develop branch for this feature to work; the current stable release does not yet have it, I assume the new release to happen soon.

just my .2 cents, hth

EDIT: cleared up ambiguity

apiraino avatar Jan 23 '18 21:01 apiraino

@apiraino are you saying that you did these steps before upgrading to FF57 ? I'm assuming so, as password-exporter no longer works on FF57+.

netllama avatar Jan 23 '18 21:01 netllama

@netllama correct

apiraino avatar Jan 23 '18 21:01 apiraino

@apiraino Thanks for your answer, but password-exporter is incompatible with my version of firefox (57) I succeed in 2 steps on my macbook :

  1. I subscribe and synchronised firefox, so my other devices can sync
  2. I import in safari from firefox , idem for opera and chrome My other devices (ipad, imac, iphone) are synchronized via icloud for safari.

So sync of password on every devices, for every browser is OK (chrome and opera are not so important for me) But I can’t get a paper list of my password.

Cezanna avatar Jan 24 '18 09:01 Cezanna

@Cezanna Don't own a Mac. You may try https://github.com/AlessandroZ/LaZagne . It borrows code from password-exporter. There are maybe some fixes in this other software that will make FireFox password export works on your Mac ?!

ThomasG77 avatar Jan 24 '18 12:01 ThomasG77

@Cezanna as you correctly point out, the extension password-exporter is not compatible with Firefox >= 57.

However, if you need to dump your passwords, you can try one of the suggestions stated above which involve using Firefox 52 ESR or that other python script (which I tried but it doesn't work for me).

apiraino avatar Jan 24 '18 13:01 apiraino

I have the following error Traceback (most recent call last): File "firepwd.py", line 15, in from pyasn1.codec.der import decoder ImportError: No module named pyasn1.codec.der

How I can get and install the missing module ?

You could try the code below,

git clone https://github.com/lclevy/firepwd sudo apt install python-pip python setup.pi install pip install pyasn1 pip install --upgrade pip cd $firepwd cp "$mozilla/key3.db" "$firepwd/key3.db" cp "$mozilla/logins.json" "$firepwd/logins.json" python2.7 firepwd.py -d ./ | sed 's:\x0[0-9]::g'

It worked for me.

Regards, rammy61

Using XUbuntu

Rammy61 avatar Jan 26 '18 14:01 Rammy61

Thanks all for your answer but as I mentionned above :

  1. I have a mac, and anyway apt is only for certain distro of linux
  2. I solved mainly my problem and don't look for anymore. Have nice days ..

Cezanna avatar Jan 26 '18 16:01 Cezanna

As current ESR is now using webextensions only, this might get some more traction, reading the bugzilla-issue, which was linked above, and it seems to get some more attention at mozilla. Lets hope this will get finished soon, as this plugin helps ALOT, in my case when re-installing my computer from scratch and maintaining my logins.

FibreFoX avatar May 10 '18 15:05 FibreFoX

For everyone following this thread, I have created a simple desktop application called FF Password Exporter for exporting your passwords from Firefox 58+ to a portable CSV or JSON format. It works on Windows, macOS, and Linux. You can download it from GitHub here: https://github.com/kspearrin/ff-password-exporter

ff

Hope it helps.

kspearrin avatar May 11 '18 11:05 kspearrin

@grosho2 @kspearrin Yeah, nice work, but... it requires Node to be installed and a separate Windows binary... Very sad to say, but that is a no go.

E3V3A avatar Aug 25 '18 15:08 E3V3A

You don’t have to install node unless you are trying to run dev builds of the app...

kspearrin avatar Aug 25 '18 16:08 kspearrin