BeEF
安装beef
sudo apt install beef
sudo beef -xss
设置密码
在上述页面中,给我们提供了两条信息,一条是BEEF的XSS引用地址,即本地IP3000端口下的hook.js;另一条是BEEF的管理页面,即本地地址/ui/panel。
我们此时可以看到在当前Kali Linux已经开始监听3000端口,如下所示:
我们输入默认的用户名和密码:beef,即可登录BEEF。
BEEF渗头测试实战
接下来,我们使用BEEF进行渗头测试的实战。
BEEF把其公鸡脚本全部放在了hook.js的脚本中,因此我们需要在页面中将该文件当作JavaScript脚本代码来执行。一个常见的作法是利用某页面的XSS漏懂,这样我们就可以将下列代码:
插入到页面中。其中192.168.136.66为Kali Linux的IP地址。这样,所有访问该页面的用户,都会加载BEEF的公鸡脚本,然后就会收到BEEF的公鸡了。
我们按照上述思路构造页面,然后让浏览器访问该页面,我们就可以在BEEF的管理页面中看到上线的浏览器信息了,如下所示:
我们可以进入右侧command页面,就可以发现有如下图所示的公鸡载荷。
在上述公鸡载荷中,绿色表示可以使用,并且用户不会察觉,红色表示不可以使用,灰色表示可能能够使用,但是不确定,如果是橙色,则表示可以使用,但是用户会察觉。
我们可以随便选择一个模块,比如或获取目标浏览器的cookie值,那么在执行后结果如下所示:
此外,我们还可以选择webcam,如下所示:
这样,则会令用户浏览器显示一个Adobe Flash的提示,如下所示:
基本使用步骤
- 安装 BeEF:
- 克隆 BeEF 的 GitHub 仓库:
- 安装依赖:
- 启动 BeEF:
- 启动 BeEF 服务器:
- 打开浏览器,访问
http://localhost:3000/
,你会看到 BeEF 的管理界面。
- 配置代理:
- 配置你的浏览器使用 BeEF 作为代理服务器。例如,在 Chrome 中,打开设置,搜索“代理”,然后配置代理服务器为
http://localhost:3000/
。
- 捕获流量:
- 在 BeEF 界面中,点击“Hooks”标签,然后点击“Add Hook”按钮。选择一个钩子(例如,
alert("BeEFed!")
),然后点击“Inject”按钮。 - 浏览器会自动加载一个 JavaScript 代码片段,当你访问任何网站时,BeEF 会注入这个钩子。
- 查看结果:
- 当钩子被触发时,BeEF 界面会显示相关信息,包括访问者的 IP 地址、浏览器信息等。
进阶使用方法
- 编写自定义钩子:
- 你可以编写自己的 JavaScript 代码来创建自定义钩子。例如,你可以创建一个钩子来窃取用户的 cookie:
- 将这个代码片段添加到 BeEF 的“Hooks”标签中,然后注入到目标网站。
- 使用 BeEF 模块:
- BeEF 提供了许多内置模块,可以帮助你执行各种公鸡和测试。例如,你可以使用“XSS”模块来测试跨站脚本公鸡。
- 在 BeEF 界面中,点击“Modules”标签,然后选择一个模块进行测试。
- 集成 BeEF 和 Metasploit:
- BeEF 可以与 Metasploit 框架集成,从而实现更复杂的公鸡。例如,你可以使用 BeEF 来传递 Metasploit 的有效载荷。
- 配置 Metasploit 以使用 BeEF 作为代理:
- 在 BeEF 界面中,点击“Hooks”标签,然后点击“Add Hook”按钮。选择一个钩子(例如,
alert("BeEFed!")
),然后点击“Inject”按钮。
- 自动化测试:
- 你可以使用 BeEF 的 API 来自动化测试过程。例如,你可以编写一个脚本来自动注入钩子并收集结果。
- 使用 BeEF 的 RESTful API,你可以通过 HTTP 请求来控制 BeEF 服务器。例如,你可以使用
curl
命令来添加一个钩子: