抓取Chrome所有版本密码

谷歌浏览器存储密码的方式

在使用谷歌浏览器时,如果我们输入某个网站的账号密码,他会自动问我们是否要保存密码,以便下次登录的时候自动填写账号和密码

 在设置中可以找到登录账户和密码

 也可以直接看密码,不过需要凭证

这其实是windows的DPAPI机制

DPAPI

Data Protection Application Programming Interface(数据保护API)

DPAPI是Windows系统级对数据进行加解密的一种接口无需自实现加解密代码微软已经提供了经过验证的高质量加解密算法提供了用户态的接口对密钥的推导存储数据加解密实现透明并提供较高的安全保证

DPAPI提供了两个用户态接口`CryptProtectData`加密数据`CryptUnprotectData`解密数据加密后的数据由应用程序负责安全存储应用无需解析加密后的数据格式。但是加密后的数据存储需要一定的机制因为该数据可以被其他任何进程用来解密当然`CryptProtectData`也提供了用户输入额外`数据`来参与对用户数据进行加密的参数但依然无法放于暴力破解。

微软提供了两个接口用来加密和解密,`CryptProtectMemory`和`CryptUnprotectMemory`

实际上,在老版本(80之前)的谷歌浏览器,仅仅是使用了CryptProtectMemory来对密码进行加密

80版本之前的Chrome

实验环境

win7

Chrome版本 79.0.3945.117

实验过程

chrome的密码经过加密后存储在

%LocalAppData%\Google\Chrome\User Data\Default\Login Data

如果用二进制文本编辑器查看的话会发现他其实是一个sqlite数据库文件

可以使用工具SQLiteStudio打开他

双击logins

 选择data

可以看到有用户名和网址,却没有密码

但是密码的二进制实际是有值的

编写脚本解密

python的解密是最简洁的,这里送上一个三好学生的代码

但我还是想用c++写一个

编写之前,需要配置sqlite3环境,并且下载<sqlite3.h>和<sqlite3.c>文件

如果当前用户正在使用谷歌,是无法打开数据库的,于是我们可以复制一份出来操作

 再通过sql语句查找logins表

 在回调函数中解密

看下效果,完美解出密码

与谷歌浏览器上面看到的也是一样的,无需再验证用户密码

80版本之后的Chrome

那么80.x之后的Chrome如何解密呢

实验环境

win10

Chrome版本 91.0.4472.101(最新版)

实验分析

 先看一下跟以前版本的Chrome存储方式上有什么区别

 判断是否是新版本的Chrome加密其实就是看它加密后值的前面有没有v10或者v11

 看官方文档,分析新版加密算法

key的初始化

https://source.chromium.org/chromium/chromium/src/+/master:components/os_crypt/os_crypt_win.cc;l=192;drc=f59fc2f1cf0efae49ea96f9070bead4991f53fea

 注释:尝试从local state提取密钥。

并且可以看到kDPAPIKeyPrefix实际上就是一个字符串"DPAPI"

然后就是进行DPAPI的解密,最后就是如果key不在local state中或者DPAPI解密失败,就重新生成一个key

从这里我们我可以大致分析出key初始化时的动作:

  1. 从local state文件中提取key

  2. base64解密key

  3. 去除key开头的“DPAPI”

  4. DPAPI解密,得到最终的key

跟进GetString函数的参数kOsCryptEncryptedKeyPrefName

 知道key存放在local state文件os_crypt.encrypted_key字段中,即

而local state文件就在本地默认目录:

Local State是一个JSON格式的文件

明文加密方式

看源码注释

 密钥加密后数据前缀是“v10”

 密钥和NONCE/IV的长度分别为:32字节和12字节

这里解释一下NONCE/IV是什么:

如果我们不希望相同的明文通过密钥加密出来的密文是相同的(这样很容易让攻击者知道这两条密文的明文是相同的) 解决办法是使用IV(初始向量)或nonce(只使用一次的数值)。因为对于每条加密消息,我们都可以使用不同的byte字符串。它们是非确定理论的起源,而这种理论要求制造出令人难以分辨的副本。这些消息通常不是什么秘密,但为了解密需要,我们会在分发时对它们进行加密。IV与nonce之间的区别是有争议的,但也不是没有关联的。不同的加密方案所保护的侧重点也不同:有些方案需要的只是密文不重复,这种情况我们通常叫作nonce;还有一些方案需要密文是随机的,甚至完全不可预测的,这种情况我们通常叫作IV。这里其实就是希望即便明文相同,经过加密后的密文也不相同。

再往下翻,其实可以看到解密函数

encrypted_value的前缀v10后为12字节的NONCE(IV),然后再是真正的密文。Chrome使用的是AES-256-GCM的AEAD对称加密

那么思路就清晰了,这里我自己画了一个图来总结算法

实现自动化抓密码

解密使用一个非常强大的库,cryptopp

先获取原始的key

如果当前chrome版本并不是80+,可以通过一个简单的判断:就是看加密密码前有没有”v10“或者”v11“

然后就是解密密文

获取iv和密文

再用cyptopp强大的库函数进行解密

这里逻辑的话参照上面分析步骤,这里就不再赘述

最后看看自己谷歌版本和解密效果

后记

实战中如果拿到一台主机,并且安装有chrome,我们就可以抓取密码以便快速精确地横向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/245329.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFTScan | 11.27~12.03 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.11.20~ 2023.11.26 NFT Hot News 01/ Web3 教育平台 Open Campus 获 Binance Labs 315 万美元投资 11 月 27 日&#xff0c;Binance Labs 已向社区主导的 Web3 教育平台 Open Campu…

FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(三十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

Python快速配置爬虫代码示例

在当今数字化时代&#xff0c;信息爆炸已成为常态。数据是现代商业的核心&#xff0c;而爬虫程序是获取数据的重要工具。Python作为一门通用编程语言&#xff0c;提供了许多方便快捷的库来配置爬虫代码。下面是一个简单的Python爬虫代码示例&#xff0c;帮助你快速上手。 首先…

C++ : 友元

不能从外部访问类的私有数据成员和方法&#xff0c;但这条规则不适用于友元类和友元函数。要声明友元 类或友元函数&#xff0c;可使用关键字 friend&#xff0c;通过让函数成为类的友元&#xff0c;可以赋予该函数与类的成员函数 同的访问权限。 生活中你的家有客厅 (Public)…

蓝桥杯每日一题2023.12.4

题目描述 竞赛中心 - 蓝桥云课 (lanqiao.cn) 题目分析 本题使用树型DP&#xff0c;蓝桥杯官网出现了一个点的错误&#xff0c;但实际答案是正确的 状态表示&#xff1a;f[u]&#xff1a;在以u为根的子树中包含u的所有联通块的权值的最大值 假设s1&#xff0c;s2,…sk 是u的…

如何打印社保参保凭证

西安市&#xff1a; 陕西政务服务网&#xff1a; 个人服务 珠海市&#xff1a; 广东政务服务网&#xff1a; 用户登录 | 珠海市人力资源和社会保障网上服务平台 武汉市&#xff1a; 湖北政务服务网&#xff1a; 湖北政务服务网

涵盖多种功能,龙讯旷腾Module第三期:光、磁、力学和极化性质

Module是什么 在PWmat的基础功能上&#xff0c;我们针对用户的使用需求开发了一些顶层模块&#xff08;Module&#xff09;。这些Module中的一部分是与已有的优秀工具的接口&#xff0c;一部分是以PWmat的计算结果为基础得到实际需要的物理量&#xff0c;一部分则是为特定的计…

2024品牌营销为何需要提供“情绪价值”和“感官滋养”?徐礼昭

什么是情绪价值&#xff1f; 品牌营销在当今市场中&#xff0c;已经超越了单纯的产品推广和销售&#xff0c;更多地涉及到提供“情绪价值”和“感官滋养”。 情绪价值是指产品或服务能够引发的消费者情感反应和共鸣&#xff0c;从而满足消费者情感需求的一种价值。它与产品的…

计算机间的通信艺术解析

1*NwzOU-ne2vvobtubtEmBhw.png 网络基础知识 首先&#xff0c;让我们谈谈网络基础知识&#xff0c;即计算机如何彼此通信。 在这种通信的核心是IP地址&#xff0c;它是网络上每个设备的唯一标识符。IPv4地址是32位的&#xff0c;允许大约40亿个唯一地址。然而&#xff0c;随着设…

【ArcGIS Pro微课1000例】0046:深度学习--汽车检测

本实验讲述ArcGIS Pro中人工智能深度学习应用之–汽车检测。 文章目录 一、学习效果二、工具介绍三、案例实现四、注意事项一、学习效果 采用深度学习工具,可以很快速精准的识别汽车。 案例一: 案例二: 下面讲解GIS软件实现流程。 二、工具介绍 该案例演示的是ArcGIS Pro中…

50 代码审计-PHP无框架项目SQL注入挖掘技巧

目录 演示案例:简易SQL注入代码段分析挖掘思路QQ业务图标点亮系统挖掘-数据库监控追踪74CMS人才招聘系统挖掘-2次注入应用功能&#xff08;自带转义)苹果CMS影视建站系统挖掘-数据库监控追踪&#xff08;自带过滤&#xff09; 技巧分析:总结: demo段指的是代码段&#xff0c;先…

练习11-简单卷积器的设计

简单卷积器的设计 1&#xff0c;任务目的&#xff1a;2&#xff0c;明确设计任务2.1,目前这部分代码两个文件没找到&#xff0c;见第5、6节&#xff0c;待解决中。 &#xff0c;卷积器的设计&#xff0c;RTL&#xff1a;con1.v4&#xff0c;前仿真和后仿真&#xff0c;测试信号…