浏览器攻击框架BeEF Part 5:Web应用及网络攻击测试
字数 1760 2025-08-18 11:37:28

BeEF浏览器攻击框架Part 5:Web应用及网络攻击测试教学文档

1. 前言

本教学文档基于BeEF框架第五部分内容,重点讲解如何利用被勾连的浏览器进行网络攻击和Web应用攻击。这些技术在不违反同源策略(SOP)的前提下实现,部分攻击技术使用了Tunneling Proxy技术。

2. 网络攻击技术

2.1 攻击内网的基本步骤

  1. 识别目标
  2. Ping Sweep
  3. 扫描端口

2.2 识别目标

2.2.1 识别内部IP

BeEF提供两个模块:

  • Get Internal IP (Java):使用Java技术(已过时)
  • Get Internal IP WebRTC:使用WebRTC技术(推荐)

2.2.2 识别子网

模块:identity LAN Subnets

原理:向常见子网段主机发送XMLHttpRequest请求,通过响应时间判断活动主机

自定义配置:可在beef/modules/network/identify_lan_subnets/command.js中添加更多子网段

2.3 Ping Sweep

模块:Ping Sweep

原理:与identify_lan_subnets相同,通过响应时间判断活动主机

2.4 端口扫描

模块:Port Scanner

原理:使用IMG标签和自定义的onload/onerror事件处理程序及计时器

限制:现代浏览器有端口封禁机制,无法扫描21、22、25、110、145等端口

3. Web应用攻击技术

3.1 攻击场景分类

  1. 攻击不同源Web应用
  2. 攻击同源Web应用

3.2 攻击不同源Web应用

3.2.1 攻击原理

利用被勾连浏览器向任何域发送HTTP请求,虽然SOP阻止读取响应,但可实施CSRF等攻击

3.2.2 侦查阶段

  1. 使用网络攻击技术识别内网Web服务器
  2. 进行指纹采集

指纹采集方法:通过已知静态资源(如JS、CSS、图片)推断服务器类型

3.2.3 指纹采集模块

  1. Get HTTP Servers(Favicon):仅判断加载的图片
  2. Fingerprint Local Network:计算图片长宽并与数据库对比,判断服务器类型

3.2.4 漏洞利用

发现漏洞后可直接利用,如Jboss 6.0.0M1 JMX Deploy Exploit模块可反弹meterpreter

3.3 攻击同源Web应用

3.3.1 典型场景

  • 存储型XSS漏洞(仅后台可见)
  • 所有Cookie设置HttpOnly
  • 后台存在SQL注入漏洞

3.3.2 技术实现

使用Tunneling Proxy技术(详见Part 4)

3.3.3 测试环境示例

名称 角色 IP
Ubuntu BeEF服务器 外网
Kali 攻击者/sqlmap 外网
Windows7 受害者浏览器 内网10.0.2.4
Metasploitable2 有漏洞主机 内网10.0.2.5

3.3.4 实施步骤

  1. 修改BeEF配置(config.yaml设置强密码)
  2. 修复BeEF Bug(修改beef/extensions/proxy/proxy.rb文件中的path)
  3. 受害者访问含XSS漏洞页面(注入BeEF钩子)
  4. 设置Tunneling Proxy
  5. 使用sqlmap通过BeEF隧道进行注入

3.3.5 使用sqlmap的注意事项

  • 避免使用--technique=T(隧道延迟会影响结果准确性)
  • 其他工具如Burp Suite也可通过BeEF隧道使用

4. 关键配置与Bug修复

4.1 BeEF配置修改

修改config.yaml中的登录密码为强密码,否则启动时会分配随机密码

4.2 Proxy功能Bug修复

修改beef/extensions/proxy/proxy.rb文件:

修改前:
path = "/proxy/#{@session_id}/#{@request_id}"
修改为:
path = "/#{@session_id}/#{@request_id}"

5. 总结

本教学文档详细介绍了如何利用BeEF框架进行网络和Web应用攻击,包括内网扫描、指纹识别、CSRF攻击以及通过Tunneling Proxy实现的SQL注入等技术。这些技术在渗透测试中具有重要价值,但应仅用于合法授权的安全测试。

BeEF浏览器攻击框架Part 5:Web应用及网络攻击测试教学文档 1. 前言 本教学文档基于BeEF框架第五部分内容,重点讲解如何利用被勾连的浏览器进行网络攻击和Web应用攻击。这些技术在不违反同源策略(SOP)的前提下实现,部分攻击技术使用了Tunneling Proxy技术。 2. 网络攻击技术 2.1 攻击内网的基本步骤 识别目标 Ping Sweep 扫描端口 2.2 识别目标 2.2.1 识别内部IP BeEF提供两个模块: Get Internal IP (Java) :使用Java技术(已过时) Get Internal IP WebRTC :使用WebRTC技术(推荐) 2.2.2 识别子网 模块: identity LAN Subnets 原理:向常见子网段主机发送XMLHttpRequest请求,通过响应时间判断活动主机 自定义配置:可在 beef/modules/network/identify_lan_subnets/command.js 中添加更多子网段 2.3 Ping Sweep 模块: Ping Sweep 原理:与identify_ lan_ subnets相同,通过响应时间判断活动主机 2.4 端口扫描 模块: Port Scanner 原理:使用IMG标签和自定义的onload/onerror事件处理程序及计时器 限制:现代浏览器有端口封禁机制,无法扫描21、22、25、110、145等端口 3. Web应用攻击技术 3.1 攻击场景分类 攻击不同源Web应用 攻击同源Web应用 3.2 攻击不同源Web应用 3.2.1 攻击原理 利用被勾连浏览器向任何域发送HTTP请求,虽然SOP阻止读取响应,但可实施CSRF等攻击 3.2.2 侦查阶段 使用网络攻击技术识别内网Web服务器 进行指纹采集 指纹采集方法:通过已知静态资源(如JS、CSS、图片)推断服务器类型 3.2.3 指纹采集模块 Get HTTP Servers(Favicon) :仅判断加载的图片 Fingerprint Local Network :计算图片长宽并与数据库对比,判断服务器类型 3.2.4 漏洞利用 发现漏洞后可直接利用,如Jboss 6.0.0M1 JMX Deploy Exploit模块可反弹meterpreter 3.3 攻击同源Web应用 3.3.1 典型场景 存储型XSS漏洞(仅后台可见) 所有Cookie设置HttpOnly 后台存在SQL注入漏洞 3.3.2 技术实现 使用Tunneling Proxy技术(详见Part 4) 3.3.3 测试环境示例 | 名称 | 角色 | IP | |------|------|----| | Ubuntu | BeEF服务器 | 外网 | | Kali | 攻击者/sqlmap | 外网 | | Windows7 | 受害者浏览器 | 内网10.0.2.4 | | Metasploitable2 | 有漏洞主机 | 内网10.0.2.5 | 3.3.4 实施步骤 修改BeEF配置( config.yaml 设置强密码) 修复BeEF Bug(修改 beef/extensions/proxy/proxy.rb 文件中的path) 受害者访问含XSS漏洞页面(注入BeEF钩子) 设置Tunneling Proxy 使用sqlmap通过BeEF隧道进行注入 3.3.5 使用sqlmap的注意事项 避免使用 --technique=T (隧道延迟会影响结果准确性) 其他工具如Burp Suite也可通过BeEF隧道使用 4. 关键配置与Bug修复 4.1 BeEF配置修改 修改 config.yaml 中的登录密码为强密码,否则启动时会分配随机密码 4.2 Proxy功能Bug修复 修改 beef/extensions/proxy/proxy.rb 文件: 5. 总结 本教学文档详细介绍了如何利用BeEF框架进行网络和Web应用攻击,包括内网扫描、指纹识别、CSRF攻击以及通过Tunneling Proxy实现的SQL注入等技术。这些技术在渗透测试中具有重要价值,但应仅用于合法授权的安全测试。