admin管理员组

文章数量:1529460

Chrome浏览器取证分析

做个笔记,记录下最近学习的有关Web浏览器取证的知识,其中包括研究如何解密Chrome浏览器保存在本地的加密登录信息,以及当前进程上下文为SYSTEM或者管理员的情况下如何切换Windows权限,还有遇到多用户在线的情况下如何解密多个用户的密码。

Chrome浏览器登录信息存放在哪里?

Google Chrome的配置文件存放在%LocalAppData%目录下。例如,具有两个Google Chrome账号配置文件的windows用户admin将有一个目录,其中包含每个配置文件的登录数据,每个数据都包含自己的一组存储凭据:

C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default (第一个配置文件的名称)
C:\Users\admin\AppData\Local\Google\Chrome\User Data\Profile 2 (后续的配置文件以迭代数字方式命名)

其中Login Data是SQLite 3数据库文件,里面存放了用户名,网址,加密密码等信息。

登录信息是如何加密保存的?

Login Data 文件主要用于存储用户希望在某些网站上可以自动填充的用户名和密码,研究登录信息只需要查看logins表,其中origin_url是登录网址,username_value列是用户名,password_value列是被加密的用户密码,使用Navicat查看Login Data数据库如下所示:

 

password_value加密的内容。此值使用Microsoft的数据保护API(DPAPI)进行加密,加密方法在80版本后发生部分变化。

从Windows 2000开始,Microsoft随操作系统一起提供了一种特殊的数据保护接口,称为Data Protection Application Programming Interface(DPAPI)。其分别提供了加密函数CryptProtectData 与解密函数 CryptUnprotectData 以用作敏感信息的加密解密。

其用作范围包括且不限于:

  • IE、Chrome的登录表单自动完成

  • Powershell加密函数

  • Outlook, Windows Mail, Windows Mail, 等邮箱客户端的用户密码。

  • FTP管理账户密码

  • 共享资源文件夹的访问密码

  • 无线网络帐户密钥和密码

  • 远程桌面身份凭证

  • EFS

  • EAP/TLS 和 802.1x的身份凭证

  • Credential Manager中的数据

  • 以及各种调用了CryptProtectData函数加密数据的第三方应用,如Skype, Windows Rights Management Services, Windows Media, MSN messenger, Google Talk等。

  • etc

由于功能需求,Dpapi采用的加密类型为对称加密,所以只要找到了密钥,就能解开物理存储的加密信息了。

 

关于DPAPI的详细原理和介绍看这篇文章里的链接:

https://www.4hou/posts/AQzP

chrome version 80(80.0.3987.163) 版本前

chrome80以前的版本是直接可以通过DPAPI中的解密函数 CryptUnprotectData来进行解密的。

chrome version 80 (80.0.3987.163)版本后

利用主密钥使用AES-GCM加密算法加密密码存放Login Data数据库,然后用DPAPI的加密函数CryptProtectData加密主密钥存放在Local State文件。其中Local State文件存放在如下地址(假设windows用户为admin),本质是个json文件,其中一个值os_crypt下的encrypted_key是解密需要用的被加密后的密钥。

C:\Users\admin\AppData\Local\Google\Chrome\User Data\Local State

如何解密登录密码?

主要说明下 80 &

本文标签: 浏览器chrome