虽然现在网上有很多开源的软件可以帮助你解密那些存储在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. 哈希函数:sha1;
  4. 密码:密码是整个环节中最重要的一个部分了。我们所要获取的,就是存储在“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服务器中,并清除你在目标主机中的所有操作痕迹。这样一来,它就变成了一款黑客工具了,这就是开源的魅力。

本文作者:佚名
来源:51CTO

手把手教你解密MacOS平台下的Chrome密码相关推荐

  1. MacOs平台下 Vs2022 for Mac、Xamarin、IOS Android 双平台证书申请、开发环境配置、实机测试、内部分发B(贝塔)测试、 App store发布 超详细(多图)全程笔记

    本文超长,含盖从前期准备到发布的全程细节,多图杀猫-- 这些天,研究使用Visual studio for macos做ios和android双平台开发.遇到最大的坑就是apple开发各种证书.真机测 ...

  2. 【谨慎学习】手把手教你破解网站管理后台帐号密码

    [导读] 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复. ...

  3. 手把手教你用Python破解邻家小妹wifi密码

    今天给大家分享一个 使用Python 破解wifi密码的代码 这个代码也是非常简单 用Python中的pywifi库 所以需要在DOS命令下安装这个库 同样使用pip install pywifi 很 ...

  4. 震惊!手把手教你用Python破解邻家小妹wifi密码

    今天给大家分享一个,使用Python破解wifi密码的代码 这个代码也是非常简单,用Python中的pywifi库 所以需要在DOS命令下安装这个库 同样使用pip install pywifi 需要 ...

  5. 手把手教你一步一步暴力破解密码,学不会来找我

    目录 一.什么是暴力破解? 二.暴力破解弱口令实验 三.如何防御暴力破解攻击? 一.什么是暴力破解? 暴力破解也可称为穷举法.枚举法,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为 ...

  6. c多语言开发,“手把手”教你开发一个多语言翻译chrome插件

    多语言互译chrome插件 最近逛掘金看了下,前端必备技能项竟然有"chrome插件开发",想想了自己的英语功力(开机自启动"有道翻译"-哈哈哈),于是,话不多 ...

  7. Python手记-1:Windows10、macOS、CentOS7平台下Python3环境搭建简介

    目录 1.Windows 10 2.macOS 3.Linux(CentOS7) 首先去Python大本营-https://www.python.org/溜达一圈:你想要的源代码.官方文档资源一应俱全 ...

  8. 零基础学习嵌入式入门以及项目实战开发【手把手教+国内独家+原创】

    零基础学习嵌入式入门以及项目实战开发[手把手教+国内独家+原创] 独家拥有,绝对经典                            创 科 之 龙 嵌入式开发经典系列教程 [第一期] 主讲人: ...

  9. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)

    手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...

最新文章

  1. 使用TensorFlow进行机器学习即服务
  2. AI近10年21个子领域高引学者(AI-10 Most Influential Scholars )
  3. OneAPM挂牌新三板,资本市场一片看好!
  4. Spring的依赖注入和管理Bean
  5. 11.分页(10-10-12)
  6. 使用SAP C4C的OData服务的deep insert操作创建Lead
  7. linux 后台程序 cout输入到文件,istringstream在读文件时候的应用
  8. Flowable 数据库表结构 ACT_GE_PROPERTY
  9. 三维坐标系带偏航角俯仰角_浅谈三维旋转的三种方法及差异
  10. 昆计计算机管理专修学院,昆明昆计高中的师资怎么样,学校是民办还是公办的...
  11. Python爬虫辅助库BeautifulSoup4用法精要
  12. 剑指offer——替换字符串
  13. 个人名义申请的支付接口。支付聚合网站汇总
  14. docker版本包 乌班图_在Ubuntu 18.04系统中安装指定docker版本的简单方法
  15. linux下无线网卡的ioctl 接口
  16. 嵌入式软件怎样测试,如何对嵌入式软件进行可靠性测试
  17. img居中以及等比缩放
  18. protobuf 中 repeated fields 细节
  19. Pocket PC 2003 html 的问题
  20. OpenCV里的常用Rect用法

热门文章

  1. volatile关键字使用总结
  2. Docker的主要作用
  3. 非常实用的Android Studio快捷键
  4. kettle转换JavaScript获取命令行参数
  5. linux实用的日志分析脚本
  6. C++中sizeof详解
  7. need to focus
  8. 【iOS】iOS开发编码规范小结
  9. VC文档与视图结构学习总结
  10. 2分钟-实现开机nginx开机自启动脚本(shell篇)