浏览器攻击框架BeEF Part 3:持续控制
字数 1384 2025-08-18 11:37:23
BeEF浏览器攻击框架Part 3:持续控制技术详解
1. 持续化控制概述
BeEF在获得对浏览器的初始化控制后,需要实现持续化控制以维持攻击效果。持续化控制分为两个主要方面:
- 持久通信:BeEF服务器与僵尸浏览器之间的通信技术选择
- 持久存续:确保用户尽可能停留在被钩住的页面
2. 持久通信技术
2.1 CORS跨域资源共享
- BeEF服务器在每个HTTP响应中包含以下首部:
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST, GET - 允许浏览器读取BeEF服务器的HTTP响应
- 重要特性:浏览器可以跨域发送请求但不一定能读取响应
2.2 通信技术比较
| 技术 | 速度 | 兼容性 | 配置方法 |
|---|---|---|---|
| XMLHttpRequest | 最慢 | 几乎所有浏览器 | 默认启用 |
| WebSocket | 快 | IE10+、Firefox16+、Chrome23+ | 修改config.yaml中websocket: enable: true |
| WebRTC | 最快 | 较新浏览器 | 修改webrtc/config.yaml中enable: false |
3. 持久存续技术
3.1 IFrame内嵌框架技术
实施步骤:
- 获得初始化控制
- 使用模块:
Persistence --> Create foreground iFrame - 无需参数,直接执行
特点:
- 优点:完全控制内嵌框架的DOM内容
- 缺点:
- URL不会变化
- 可能导致页面混乱和点击无效
- 受
X-Frame-Options首部限制
3.2 浏览器中间人攻击(MitB)
实施步骤:
- 获得初始化控制
- 使用模块:
Persistence --> Man-In-The-Browser - 无需参数,直接执行
特点:
- 优点:
- 用户难以察觉异常
- 保持勾连活动
- 缺点:
- 无法加载图片
- 某些JS导航菜单可能导致控制丢失
3.3 窗口事件处理函数
实施步骤:
- 使用模块:
Persistence --> Confirm Close Tab - 在用户尝试关闭页面/浏览器时触发确认对话框
浏览器兼容性:
- Firefox/Chrome:仅在关闭浏览器时弹窗
- 360浏览器:关闭页面/浏览器时都弹窗
- QQ浏览器:打开新标签页加载BeEF demo
- 搜狗浏览器:无弹窗
- 旧版IE:可重复弹窗
3.4 动态底层弹出窗口
实施步骤:
- 使用模块:
Persistence --> Create Pop Under - 通过点击劫持触发弹出窗口
浏览器表现:
- IE8/Firefox/360/Chrome:右下角小窗口
- QQ/搜狗浏览器:新标签页
缺点:
- 容易被用户察觉
- 新窗口加载BeEF demo页面,与原页面不同源
4. 其他模块
- Hijack Opener Window:类似iFrame,劫持打开的窗口
- JSONP Service Worker:利用JSONP端点未过滤回调参数
5. 技术组合建议
- 首选组合:MitB + 窗口事件处理函数
- 次选组合:iFrame + 窗口事件处理函数
- 保底方案:动态底层弹出窗口
6. 注意事项
- MitB和iFrame技术不能同时使用
- 现代浏览器对重复弹窗有限制
- 不同浏览器对技术的支持程度不同
- 持久化效果受网速影响