
Chrome DevTools Protocol 实战cookie_crimes 如何用 Network.getAllCookies 窃取 Cookies【免费下载链接】cookie_crimesRead local Chrome cookies without root or decrypting项目地址: https://gitcode.com/gh_mirrors/co/cookie_crimescookie_crimes 是一个开源的 Chrome Cookies 提取工具它的核心思路非常刁钻不需要 root 权限、不需要用户密码只要能在目标机器上执行代码就能借助 Chrome DevTools ProtocolCDP中的Network.getAllCookies方法把浏览器里保存的全部 Cookies 以明文 JSON 形式导出。这篇文章将从零开始带你看懂 CDP 远程调试协议的工作原理、cookie_crimes 的完整攻击链、关键源码以及普通用户该如何防御这类 Cookies 窃取攻击。cookie_crimes 是什么一个反直觉的 Cookies 提取工具传统上读取 Chrome 的 Cookies 需要破解 Chrome 的加密机制Windows 上的 DPAPI、macOS 上的 Keychain、Linux 上的 kwallet 等这既复杂又容易失败。cookie_crimes 却换了个思路不破解加密而是让 Chrome 自己把 Cookies 交出来。它的核心功能如下功能说明 无权限提取无需 root / 管理员权限也无需用户密码 跨平台支持 Windows、Linux、macOS 三大系统 兼容 Edge基于 Chromium 的 Microsoft Edge 同样适用 多 Profile 支持可指定导出任意 Chrome 用户配置目录 单文件编译通过make可打包成独立二进制随处运行整套逻辑集中在 cookie_crimes.py 这一个文件里加上 cookie_crimes_macos.sh 负责 macOS 特攻方案配合 Makefile 一键打包工程量相当精简。Chrome DevTools Protocol 入门浏览器自带的调试后门Chrome DevTools Protocol简称 CDP是 Chrome 与开发者工具通信的底层协议。你在浏览器里按 F12 打开开发者工具时背后就是 CDP 在工作。它允许外部程序通过WebSocket连接 Chrome然后调用数百个方法包括Network.getAllCookies导出全部 CookiesPage.navigate模拟用户跳转页面Runtime.evaluate在页面上下文执行任意 JavaScript换句话说谁能连上 CDP谁就拥有了完整的浏览器控制权。cookie_crimes 正是利用了这一点——它启动一个带远程调试功能的 Chrome 实例然后像开发者工具一样向它发号施令。完整攻击链cookie_crimes 三步窃取 Cookies第一步用 --user-data-dir 让无头 Chrome 伪装成受害者Chrome 支持--headless无头模式不渲染窗口并且允许通过--user-data-dir指定用户数据目录。这个目录里存放着 Cookies、历史记录、偏好设置等一切数据。cookie_crimes 的骚操作是启动一个无头 Chrome并把--user-data-dir指向受害者的 Chrome 数据目录。这样一来这个无头 Chrome 就伪装成了受害者本人——它读到的 Cookies 和用户平时浏览器里的一模一样。chrome_args [ https://gmail.com, --headless, --user-data-dir..., # 指向受害者的 Chrome 数据目录 --remote-debugging-port9222, # 开启 CDP 远程调试端口 ]第二步开启 9222 远程调试端口获取 WebSocket 地址带--remote-debugging-port9222启动后Chrome 会在本机 9222 端口开启 CDP 服务。此时访问http://localhost:9222/json就能拿到一个webSocketDebuggerUrl它就是后续通信的 WebSocket 入口。response requests.get(http://localhost:9222/json) websocket_url response.json()[0].get(webSocketDebuggerUrl)这一步在 cookie_crimes.py 中被形象地命名为hit_that_secret_json_path_like_its_1997懂的都懂。第三步发送 Network.getAllCookies 请求导出全部 Cookies拿到 WebSocket 地址后剩下的就是一次标准的 CDP 调用。cookie_crimes 用websocket-client建立连接发送一个 JSON 格式的请求GET_ALL_COOKIES_REQUEST json.dumps({id: 1, method: Network.getAllCookies}) ws websocket.create_connection(ws_url) ws.send(GET_ALL_COOKIES_REQUEST) result ws.recv() cookies json.loads(result)[result][cookies]Chrome 会返回result.cookies数组包含每个 Cookie 的 name、value、domain、path、expires 等全部字段。cookie_crimes 把它格式化成漂亮的 JSON 输出到终端整个过程不需要密码、不需要 root也没有破解任何加密——因为解密工作由 Chrome 自己完成了。不止 ChromeEdge、多 Profile 与 macOS 特攻方案cookie_crimes 的适配性相当广值得展开说说Microsoft EdgeEdge 同样基于 ChromiumNetwork.getAllCookies这套 CDP 接口完全通用改一下浏览器路径即可复用。多 Profile 支持修改 cookie_crimes.py 里的PROFILE_NAME变量如Profile 1脚本会把目标 Profile 目录复制到临时目录再让 Chrome 加载它从而绕过Chrome 默认只加载 Default Profile的限制。macOS 特攻方案由于 macOS 上 headless 模式时灵时不灵cookie_crimes_macos.sh 干脆先pkill掉 Chrome再用--restore-last-session重启并开启 9222 调试端口配合 websocat 发 WebSocket 请求。副作用是 Chrome 窗口会像崩溃一样闪一下再恢复。安装与使用3 分钟跑通全流程这个工具的使用门槛极低先克隆仓库git clone https://gitcode.com/gh_mirrors/co/cookie_crimes然后安装依赖并运行pip3 install -r requirements.txt python cookie_crimes.py执行后终端会直接打印当前默认 Profile 的全部 CookiesJSON 格式。如果想把 Cookies 导入回浏览器可以用 format_for_editthiscookie.sh 去掉域名前导点号配合 EditThisCookie 扩展一键导入cat cookies.json | ./format_for_editthiscookie.sh需要分发给目标机器时在项目目录执行makePyInstaller 会把它打包成单文件二进制无需目标机器安装 Python。安全启示如何防御这类 Cookies 窃取攻击了解了攻击原理防御思路就清晰了。cookie_crimes 的可怕之处在于它绕过了所有加密层所以传统加密 Cookies的思路对它无效重点应放在防止代码执行上防御措施原理 不运行来历不明的程序/脚本攻击的前提是能在你的机器上执行代码️ 使用沙箱或虚拟机隔离即使代码被执行也拿不到真实用户数据 监控 9222 等调试端口异常开启远程调试是明显的攻击信号 关注 Chrome 异常重启macOS 攻击会伴随浏览器崩溃闪退 使用独立 Profile 管理敏感账号减少单个 Profile 泄露的波及面对于安全研究人员和红队而言cookie_crimes 是一个研究 CDP 攻击面、理解浏览器信任模型的绝佳教材但对于普通用户请牢记项目 README 里的那句忠告——dont do crimes with this不要把它用在未经授权的设备上。【免费下载链接】cookie_crimesRead local Chrome cookies without root or decrypting项目地址: https://gitcode.com/gh_mirrors/co/cookie_crimes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考