浏览器攻击框架BeEF Part 5:Web应用及网络攻击测试
字数 1760 2025-08-18 11:37:28
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文件:
修改前:
path = "/proxy/#{@session_id}/#{@request_id}"
修改为:
path = "/#{@session_id}/#{@request_id}"
5. 总结
本教学文档详细介绍了如何利用BeEF框架进行网络和Web应用攻击,包括内网扫描、指纹识别、CSRF攻击以及通过Tunneling Proxy实现的SQL注入等技术。这些技术在渗透测试中具有重要价值,但应仅用于合法授权的安全测试。