手把手教你解密MacOS平台下的Chrome密码

虽然现在网上有很多开源的软件可以帮助你解密那些存储在GoogleChrome浏览器中的密码,但是这些软件几乎只支持在Windows操作系统下使用。

那么对于我们这些Mac用户来说,当我们需要快速导出Chrome中存储的全部密码时,我们该怎么做呢?

直接进入正题

其中最常见的一种做法就是打开Chrome浏览器,选择“浏览器设置”,点击“管理密码”,然后你将会看到如下图所示的界面。接下来,你就可以在这里管理你的密码了。

点击了“显示密码”之后,系统此时便会要求你输入本地用户的密码。但是,像这种极其不方便的方法,谁还想去使用它呢?

为了解决这个问题,为了避免被要求输入用户密码,我们可以直接查询GoogleChrome浏览器的SQL数据库。在macOS平台下,这个数据库的存储路径为“~/Library/ApplicationSupport/Google/Chrome/Profile */Login Data”。

对于每一个存储在GoogleChrome浏览器中的密码来说,每一条密码数据都是以类似下图所示的这种数据格式存储在“LoginData”数据库中的:

我们可以从上图中看到,对于这个用户而言,其密码就是那段以“v10”开头的乱码,这段密码明显已经被加密了。

你可能想问了,它采用的到底是哪一种加密算法呢?为了解答这个问题,我们可以参考GoogleChromium的源代码。在其源代码中,我们发现了下面这段话:

加密机制:AES-128-CBC(使用固定盐值和固定迭代次数)。解密密钥是一个PBKDF2密钥,该密钥通过下列数据生成:

1. 盐值:盐值固定不变(saltysalt);

2. 迭代次数:在对称密钥的生成过程中进行1003次迭代计算;

3. IV: 16位;

4. 哈希函数:sha1;

5. 密码:密码是整个环节中最重要的一个部分了。我们所要获取的,就是存储在“ChromeSafe Storage”中的凭证数据,而这部分数据又保存在用户的keychain之中。

实际上,我们在访问这个安全存储密钥的时候并不需要获取到用户的keychain密码。

因为我们可以在终端中使用命令“securityfind-generic-password -ga Chrome”来直接调用macOS的安全处理进程,此时系统将会显示如下图所示的对话框:

如上图所示,我们在没有输入用户密码的情况下获取到了Chrome的安全存储密钥。没错,就是这么简单!

加密与解密

之前我们也已经讨论过了,其中的AES解密密钥是通过PBKDF2密钥(‘sha1’,safeStorageKey, ‘saltysalt’, 1003)来生成的。

既然我们已经获取到了这些数据,那么接下来我们怎么利用这些数据来自动化地从数据库中提取信息并解密所有的数据条目呢?

没错,我们要使用的就是Python,毫无疑问,Python永远是最赞的!

而且更棒的地方就在于,macOS已经帮我们安装好了Python的运行环境了,所以我们无需再去配置各种各样乱七八糟的东西了,我们可以直接在任何一台macOS设备上运行Python脚本。只需五秒钟,一切都可以搞定!

如果你想要使用Python来进行AES解密的话,我们通常都会使用这个功能强大的第三方加密库来完成,但悲剧的地方就在于,它并不是一个原生代码库。

所以我打算使用OpenSSL命令行工具来发送一个采用base64编码的加密密码副本和PBKDF2解密密钥的十六进制副本。

在这个过程中我还使用到了一些其他的工具,这些工具可以在我的Github代码库中获取到。输出信息如下图所示:

我们可以从上图中看到,Google并没有对这些keychain数据进行加密保护。实际上,当用户在除了Chrome浏览器以外的地方访问这些密码的时候,Google完全可以要求用户提供Keychain密码,但是很明显他们并没有这样做!

如果Google想要修复这个问题的话,那么他们在最初创建安全存储密钥的时候就得要求用户输入密码以验证登录信息。

除此之外,苹果公司在向开发者提供这类功能的时候,也应该谨慎考虑安全性的问题。

总结

各位同学可以直接使用这个程序来解密macOS平台下的Chrome密码【工具下载】。

这是目前唯一一个针对macOS/OS X平台的Chrome密码解密软件,用户无需配置任何的依赖环境即可直接使用这款软件。

如果你动手能力很强的话,你也可以添加一些额外的功能代码,让这款工具帮助你自动提取密码,然后将其上传至远程FTP服务器中,并清除你在目标主机中的所有操作痕迹。这样一来,它就变成了一款黑客工具了,这就是开源的魅力。

* 参考来源:bufferovernoah,本文由FB小编Alpha_h4ck编译,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jerry的SAP技术分享

Red Hat Enterprise Linux(RHEL)中yum的repo文件详解

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于...

25720
来自专栏张戈的专栏

CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

张戈博客很久以前分享过一个CC 攻击的防御脚本,写得不怎么样,不过被 51CTO 意外转载了。博客从此走上了经常被人拿来练手的不归之路。 当然,还是有不少朋友在...

67460
来自专栏FreeBuf

ct-exposer:通过搜索CT日志发现子域

证书透明度(Certificate Transparency)是谷歌力推的一项拟在确保证书系统安全的透明审查技术。其目标是提供一个开放的审计和监控系统,可以让任...

13620
来自专栏编程一生

一个请求过来都经过了什么

18840
来自专栏阮一峰的网络日志

SSH原理与运用(一):远程登录

SSH是每一台Linux电脑的标准配置。 随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也...

37040
来自专栏大内老A

[WCF安全系列]从两种安全模式谈起

WCF的安全体系主要包括三个方面:传输安全(Transfer Security)、授权或者访问控制(Authorization OR Access Contro...

19670
来自专栏技术博文

Linux ssh登录命令

一、什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种...

653100
来自专栏博客园

什么是JWT(JSON WEB TOKEN)

转自于:http://www.jianshu.com/p/576dbf44b2ae

30120
来自专栏Android 开发者

Android P 安全性更新

Android P 引入了若干可提升应用和运行应用的设备安全性的功能。 本页面介绍对第三方应用开发者最重要的变化,需要他们牢记在心。

17420
来自专栏python爬虫实战之路

知乎模拟登陆

经常在简书上写作,写完后再发布到其他网站,非常麻烦,所以准备搞一下自动发布文章的工具。那么第一步先要模拟登陆几个网站。今天先从知乎开始。

17130

扫码关注云+社区

领取腾讯云代金券