破解Firefox加密和救援保存的密码!
#编程 #教程 #python #安全

FirefoxDecrypt

谁没有利用惊人的浏览器功能来节省时间并避免记住我们重新注册的各个网站的密码的压力?如今,有许多不同的配置文件可以管理,这种便利已成为一个真正的救生员!

但是,自然要对此过程的安全有一些疑问,因为我们将敏感信息委托给浏览器的手。但是,不用担心,我们会一起解开Firefox如何处理这一关键方面。

在本文中,我们将更深入地了解Firefox的工作原理以及如何存储密码。这种做法真的安全吗?我们将更好地了解如何处理数据,然后使用此浏览器便利感到更加轻松。

查找存储位置

在本节中,我们将发现存储Firefox数据的文件夹位于默认配置文件中。此位置可能会因您的平台而异。查看下面的路径:

Windows:

C:/Users/<username>/AppData/Roaming/Mozilla/Firefox

Mac OS:

~/Library/Application Support/Firefox

linux:

~/.mozilla/firefox

在计算机上运行时,请记住用机器用户名替换。此信息对于密码恢复过程将很有用,我们稍后将详细探讨。

现在,一旦在特定文件夹中,我们将列出内容以识别我们的操作的重要文件:

└─$ cd cwprco4r.default-esr && ls -lah 
...
-rw-r--r--  1 higor higor 2,5K jul 22 09:30 logins.json
...

上面,我们有重要的文件。此文件夹中的其余文件与本文的目的无关。

通过执行像cat logins.json这样的读取命令,我们将获得以下输出:

{
  "nextId": 3,
  "logins": [
    {
      "id": 1,
      "hostname": "chrome://FirefoxAccounts",
      "httpRealm": "Firefox Accounts credentials",
      "formSubmitURL": null,
      "usernameField": "",
      "passwordField": "",
      "encryptedUsername": "MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYJITKoZIhvcNabAwcE7x8cECOMFrk7xgPbEBBjqYBBzCDYxqHeHziM1jV/M7lzxfYpY3os=",
      "encryptedPassword": "MIIDdAQQ+AAAAAAAAAAAAAAAAAAAATAUBggqhkiG9w0gc2aae45DBwQISyY0ItSG+VQEgat1gNIkM7/xitAyu7BaD8YvkZ3GUfbfsUxGkTJyZwKFyQVjnwVlBgUmrC84lSycKkzdoeDsX2VFQoka90izrJ7gwxSlCbXX8DotPYjNGZEjIOKuODsxbXHEen7m/UIh0UqkKKtkQeU9OxG3vViGrPJgZs2kLpJtpX3YEVGbgHig6orJtZtjfkSfB2CTpaSsGDHJBsKwFt1wUYOp8NdQPndrRcTZ3kF9if93rDhfxlgkpePGYYl3NkgQIu6jJ76hOLYeEh0Mm7mCIHa/jiKwUHtU6xVxc3OMX0BY/E0jCeN6NMuxC44HgPhjkKqMGaKBNxp/SdMO7a2L3dPw0pndkKhx5XweylFU4KBcrRJSWzAPbHsRQ5gOg4umn6R+idKJpp3UbBovlte4fWOJyk+2hSLabKdHvOX82D5Hbg03ThOI62uXyVsAqmAxgLUsIAh9kRxA2MyfwnD5OVF4lBCQzEmPVTGfs8mi196WxYXJekC2Bn4ARH1rZlJo7c6bsGBcw5dRx5QqGmOrYYhSUr1+B9onLV+Ja1n+G8dNXGq3803+nSAcLZOBzq3YxB0+dJ/o4S9M+jNZChnDiJ3LF2JXIqKY5MnIw7sFrI0y1YTvEUWeVrGAGh3vDqBVOtlznx7G4VdX92nGjwuHDfH07QDXplVYbjthIvRN6Ykm+MLGoTY84kWuGkqpczeXtUQp3P5/JziUVCePdoaJhwU4JATpNXy25PNcgprW2SFQ4L/jCJ3L9JL9P+XRSZ3nVzDqm+xVLqWQVmda1fDWAAkmRmzPaDF+M5hXTM4NVJy8DbLrQislKsBWcw1GUCZNe0ja4019vXkUqV0LhAa7EnoidgoxBPVCUw0/37/2lAGURMdo5Q6dujWtku6fMhlsr7SVtVTaxnK9jZnkhqb2H8qhW4aoajHeym9EpKYKsqlraragGT8Cn7NmQs7BTicEQwvOYP+oUEFAcXYIX1yE/3zmQSH29QfkeobX1PcwaIRuct6hf8IG13TjOQe/K5k6UJep9XTEpUpfW7dWcipRLnXKXK+pSBwpj1WYHpYG7+qdSmf/85YiexedTWk5px/9DyH1RlqH7UT4Uern4ynEOBJcys9InNFGRiBhvQtvXclBanP",
      "guid": "{a2eb5150-685d-4615-a254-1c5dd58bee56}",
      "encType": 1,
      "timeCreated": 1689961688625,
      "timeLastUsed": 1689961688625,
      "timePasswordChanged": 1689961698732,
      "timesUsed": 1
    },
    {
      "id": 2,
      "hostname": "https://example.website.net",
      "httpRealm": null,
      "formSubmitURL": "https://example.website.net",
      "usernameField": "EmailAddress",
      "passwordField": "Password",
      "encryptedUsername": "MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcE7x8cECOMFrk7xgPbEBBjqYBBzCDYxqHeHziM1jV/M7lzxfYpY3os=",
      "encryptedPassword": "MFIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcvcrBCiECFZc/kfDKvcrBCinGLow37uiKmg7K83IUGntneBODTMeV1jMrg95p3sCQzSknnBdG2ef",
      "guid": "{f0459b50-b0fe-4512-a085-e94e72319579}",
      "encType": 1,
      "timeCreated": 1687392175539,
      "timeLastUsed": 1689971142811,
      "timePasswordChanged": 1687392175539,
      "timesUsed": 2
    }
  ],
  "potentiallyVulnerablePasswords": [],
  "dismissedBreachAlertsByLoginGUID": {},
  "version": 3,
  "sync": {
    "lastSync": 1689961704.49,
    "syncID": "MDoEEPgAAoZIhvcNAwAAAAAAAAAAA03210x,mmmAAAAAoZIhvcNAwEwFAYIKoZIhvcNAwcECD42iieWPdOhBBAjVsIqtcbz7b/ttYPhb2D0ZI63"
  }
}

此文件包含恢复保存在浏览器中的密码所需的信息。

加密和安全库的标识

为了确保安全性,使用称为PKCS#11的加密标准(公共键加密标准#11)对用户名和密码进行加密。该标准定义了用于访问加密设备的标准接口,例如智能卡和USB令牌,使密码操作安全并保护敏感信息。

Firefox通过NSS库采用此标准,该库的名称不同,具体取决于操作系统:

Windows:

nss3.dll

Mac OS X船长:

libnss3.dylib

linux:

libnss3.so

这些库对于密码解密过程至关重要。

解密密码

现在,让我们继续进行解密步骤!为此,我们需要遵循以下步骤:

  • 克隆的存储库包含解密所需的代码:
git clone git@github.com:unode/firefox_decrypt.git
  • 运行代码,为包含Firefox文件的文件夹提供路径:
python firefoxy_decrypt.py /home/higor/.mozilla/firefox/cwprco4r.default-esr
  • 预期的结果将是显示保存密码信息的显示:
Website:   https://example.website.net
Username: 'higor@gmail.com'
Password: 'teste#123'

结论

在浏览器中保存密码可能非常方便,可以在访问我们的帐户时节省时间和精力。但是,要保持谨慎并遵循良好的安全实践至关重要。避免使用公共计算机访问重要帐户,并且永远不会与他人共享密码。

我希望本文有用且有益!

继续关注我们,以获取更多有关技术,网络安全和其他有趣主题的内容。

直到下次!

参考

https://medium.com/geekculture/how-to-hack-firefox-passwords-with-python-a394abf18016