浏览器攻击框架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.yamlwebsocket: enable: true
WebRTC 最快 较新浏览器 修改webrtc/config.yamlenable: false

3. 持久存续技术

3.1 IFrame内嵌框架技术

实施步骤

  1. 获得初始化控制
  2. 使用模块:Persistence --> Create foreground iFrame
  3. 无需参数,直接执行

特点

  • 优点:完全控制内嵌框架的DOM内容
  • 缺点:
    • URL不会变化
    • 可能导致页面混乱和点击无效
    • X-Frame-Options首部限制

3.2 浏览器中间人攻击(MitB)

实施步骤

  1. 获得初始化控制
  2. 使用模块:Persistence --> Man-In-The-Browser
  3. 无需参数,直接执行

特点

  • 优点:
    • 用户难以察觉异常
    • 保持勾连活动
  • 缺点:
    • 无法加载图片
    • 某些JS导航菜单可能导致控制丢失

3.3 窗口事件处理函数

实施步骤

  1. 使用模块:Persistence --> Confirm Close Tab
  2. 在用户尝试关闭页面/浏览器时触发确认对话框

浏览器兼容性

  • Firefox/Chrome:仅在关闭浏览器时弹窗
  • 360浏览器:关闭页面/浏览器时都弹窗
  • QQ浏览器:打开新标签页加载BeEF demo
  • 搜狗浏览器:无弹窗
  • 旧版IE:可重复弹窗

3.4 动态底层弹出窗口

实施步骤

  1. 使用模块:Persistence --> Create Pop Under
  2. 通过点击劫持触发弹出窗口

浏览器表现

  • IE8/Firefox/360/Chrome:右下角小窗口
  • QQ/搜狗浏览器:新标签页

缺点

  1. 容易被用户察觉
  2. 新窗口加载BeEF demo页面,与原页面不同源

4. 其他模块

  • Hijack Opener Window:类似iFrame,劫持打开的窗口
  • JSONP Service Worker:利用JSONP端点未过滤回调参数

5. 技术组合建议

  1. 首选组合:MitB + 窗口事件处理函数
  2. 次选组合:iFrame + 窗口事件处理函数
  3. 保底方案:动态底层弹出窗口

6. 注意事项

  1. MitB和iFrame技术不能同时使用
  2. 现代浏览器对重复弹窗有限制
  3. 不同浏览器对技术的支持程度不同
  4. 持久化效果受网速影响
BeEF浏览器攻击框架Part 3:持续控制技术详解 1. 持续化控制概述 BeEF在获得对浏览器的初始化控制后,需要实现持续化控制以维持攻击效果。持续化控制分为两个主要方面: 持久通信 :BeEF服务器与僵尸浏览器之间的通信技术选择 持久存续 :确保用户尽可能停留在被钩住的页面 2. 持久通信技术 2.1 CORS跨域资源共享 BeEF服务器在每个HTTP响应中包含以下首部: 允许浏览器读取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技术不能同时使用 现代浏览器对重复弹窗有限制 不同浏览器对技术的支持程度不同 持久化效果受网速影响