Chrome之Login Data

Chrome最基本的私密数据

  1. 登录记住用户名密码
  2. 登录后保存的Cookie信息

chrome浏览器的数据应该都是在:C:\Users\XXXX\AppData\Local\Google\Chrome\User Data\Default下的,里面有很多数据,最基本的就是Login Data和Cookies文件,保存了一些敏感信息(sqllite),用db工具打开就能查看,cookie文件没有加密,login data中的密码加密了,不过也可以解析

Login Data密码解析

Chromium是开源的,其中有段密码加密的代码,可以发现是CryptProtectData,而这是Windows的api函数,应该也是有解密的函数的

Bool Encrypt::EncryptString(const std::string& plaintext,std::string* ciphertext) {  
    DATA_BLOB input;  
    Input.pbData = static_cast<DWORD>(plaintext.length());  
      
    DATA_BLOB output;  
    BOOL result = CryptProtectData(&input, L””,NULL, NULL, NULL, 0,&output);  
    If (!result)  
        Return false;  
//复制操作  
Ciphertext->assign(reinterpret_cast<std::string::value_type*>(output.pbData);  
 
LocalFree(output.pbData);  
Return true;  
}

解密Password

把文件复制出来,win32crypt安装会报错,所以换成
pywin32

import os
import sys
import sqlite3
# import win32crypt
from win32 import win32crypt

db_file_path = 'F:\\test\\LoginData'


conn = sqlite3.connect(db_file_path)
cursor = conn.cursor()
cursor.execute(
    'select username_value, password_value, signon_realm from logins')

# 接收全部返回结果
for data in cursor.fetchall():
    passwd = win32crypt.CryptUnprotectData(data[1], None, None, None, 0)
    print(passwd)
    if passwd:
        print('-------------------------')
        print('[+]用户名: ' + data[0])
        print('[+]密码: ' + str(passwd[1]))
        print('[+]网站URL: ' + str(data[2]))

结果如下:
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
引用\[1\]:作者想继续修改input密码的属性,看看能不能显示密码。如下图所示:再次幸运,Chrome应该已经解决了该漏洞,显示空白。接着,作者尝试获取本地Chrome浏览器登录的账户信息。找到密码存储的位置,文件或者是注册表,这个时候需要开启监控工具,打开注册表和文件操作信息。然后到chrome密码管理界面,随便删除一条记录,然后看看chrome本身对哪些文件或者注册表进行了修改,推荐 TK13 大神文章。也可以直接寻找文件,通常用户名文件的存储路径为: C:\Users…\AppData\Local\Google\Chrome\User Data\Default找到下图所示的文件,Login Data。\[1\] 引用\[2\]:浏览器本机保留密码功能是非常不安全的,不推荐大家使用,不过如果你想找回密码用这种方式倒是不错。首先,在需要登录的页面上选择浏览器自动保留用户名和密码,并提交登录。接着,退出重新登录,Chrome浏览器审查元素,定位密码位置。最后,将输入框input元素的type属性,从“password”修改为“text”,显示结果如下所示。\[2\] 引用\[3\]:第一步,新建连接。第二步,输入连接名如“test0803”,并导入本地的“Login Data”数据。第三步,打开之后在“main”数据库中包含了三张表,其中logins为登录表。第四步,打开如下所示,比如163邮箱的用户名为我的电话,密码是加密的。第五步,破解思想。想要破解一个加密算法是很难的。这学习TK13大神的文章,了解到Chrome开源的加密函数CryptProtectData和CryptUnprotectData。这对加解密函数非常特别,调用的时候会去验证本地登录身份,这也就是为什么别人的那个密码文档不能直接拷贝到我们自己chrome相关文件夹下去看的原因了。接下来是代码实现,找到开源的Sqllite3库,把数据库解析出来,然后得到密码的加密数据,用CryptUnprotectData解密。注意,如果chrome开启的时候直接对这个数据库文件操作会失败,建议每次操作先把文件拷贝出来再处理。\[3\] 问题:chrome 定位加密密码的位置和破解方法是什么? 回答: 要定位Chrome浏览器中加密密码的位置,可以通过找到存储密码的文件来实现。通常,用户名文件的存储路径为:C:\Users…\AppData\Local\Google\Chrome\User Data\Default,其中包含一个名为Login Data的文件。\[1\]另外,可以通过在需要登录的页面上选择浏览器自动保留用户名和密码,并提交登录,然后在Chrome浏览器审查元素中定位密码位置。将输入框input元素的type属性从"password"修改为"text",即可显示密码。\[2\] 至于破解加密密码的方法,可以参考TK13大神的文章。首先,需要新建连接并导入本地的"Login Data"数据。然后,在数据库中找到登录表(logins),其中存储了加密的密码信息。破解思想是使用Chrome开源的加密函数CryptProtectData和CryptUnprotectData,这些函数在调用时会验证本地登录身份。通过解析数据库并使用Sqllite3库,可以获取到密码的加密数据,然后使用CryptUnprotectData函数进行解密。需要注意的是,如果直接对Chrome的数据库文件进行操作可能会失败,建议在每次操作之前先将文件拷贝出来再进行处理。\[3\] #### 引用[.reference_title] - *1* *2* *3* [[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记](https://blog.csdn.net/weixin_42529890/article/details/107085623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值