浏览器攻击框架BeEF Part 6:对用户与浏览器的攻击测试 – 作者:NT00

*本文原创作者:NT00,本文属FreeBuf原创奖励计划,未经许可禁止转载

前言

这一章介绍如何使用BeEF来测试用户和浏览器,攻击用户和浏览器的效果相对于上一章来说比较简单,效果也直接有效。

查看之前的五篇文章:

浏览器攻击框架BeEF Part 1

浏览器攻击框架BeEF Part 2:初始化控制

浏览器攻击框架BeEF Part 3:持续控制

浏览器攻击框架BeEF Part 4:绕过同源策略与浏览器代理

浏览器攻击框架BeEF Part 5:攻击Web应用与攻击网络

攻击用户

攻击用户可分为三部分:内容劫持、捕获用户输入、社会工程学。

内容劫持

内容劫持是指替换被勾连的浏览器中当前页面内容,比如替换被勾连的浏览器中当前页面中所有的<a>元素的href。

BeEF自带了很多内容劫持相关的攻击模块:

攻击模块上图中Get xxx系列的攻击模块就是简单获取xxx,比如Get Cookie 就是获取勾连浏览器当前页面的Cookie,Get Form Values 就是获取From表单中值。Replace HREFs系列就是替换所有<a>元素中的HREF属性,比如常用的Replace HREFs是循环替换所有<a>元素的HREF属性,Replace HREFs(Click Events)和Replace HREFs类似,唯一的区别是只有onClick 事件发生时才触发修改HREF属性。Replace HREFs(HTTPs)是把所有指向https站点的链接改写为http协议。Redirect Browser模块是把被勾连的浏览器重定向到指定的页面。Replace Content(Deface)是直接修改页面的内容。这些功能可以窃取一些内容,也可以配合钓鱼网站来攻击用户。

捕获用户输入

捕获用户的输入也就是我们常说的键盘记录器,BeEF通过使用焦点事件,键盘事件,鼠标和指针事件这四个事件来实时监控着用户的操作。其中焦点事件是指用户的焦点是否还在被勾连的页面,下面笔者在一个被勾连的浏览器中分别触发四个事件:

分别触发四个事件

然后来看看BeEF中实时的返回:

实时的返回

社会工程学

BeEF有一个目录,里面是专门用于社会工程学的攻击模块:

用于社会工程学的攻击模块这里笔者挑Pretty Theft(完美盗窃)来演示, 演示环境是上一章演示攻击Web应用时用到的metasploitable2 dvwa + BeEF + kali。

名称 角色 ip
Ubuntu BeEF服务器 / metasploit 外网
kali 攻击者 外网
Windows7 / 浏览器A 受害者 内网 10.0.2.4
metasploitable2 内网有漏洞的主机 内网 10.0.2.5

Pretty Theft 攻击模块会在被勾连浏览器上弹出一个弹框,然后通过欺骗性的语句来使用户输入帐号和密码。当网站有http-only这个响应首部,无法窃取cookie时,可以使用完美盗窃这个模块来窃取用户的帐号和密码。

使用Pretty Theft前,需要做一些参数的设置:

参数设置点击Execute运行, 被勾连的浏览器会有一个提示性的弹框弹出:

提示性的弹框如果用户输入帐号和密码:

输入帐号和密码那么在BeEF的管理UI上就能看到了帐号和密码:

看到帐号和密码

读者可能注意到了,Pretty Theft默认下弹出的诱惑性弹框中所使用的语言是英文。在国内效果肯定要打折扣了。所以要修改一下,在beef/modules/social_engineering/pretty_theft/command.js中修改:

修改文件修改后的效果如下:

修改后的效果样貌有点不太好看,主要是因为logo太大了,如果读者懂得js和html,那么你也可以在beef/modules/social_engineering/pretty_theft/command.js中自己定制一个好看一些的。这样可信度就会提高很多了。

除了pretty_theft外还有一些社会工程学的攻击模块,这些就留给读者自行测试了。

攻击浏览器

攻击浏览器的技术,笔者只介绍一个:联合metasploit来攻击浏览器。演示的环境与上面演示pretty_theft是一样的。

要使用Metasploit + BeEF之前,需要做一下设置。

首先要在BeEF中修改beef/extensions/metasploit/config.yaml配置文件:

修改配置文件

上图中的port, user, pass 需要与下面在msf中启动MSGRPC接口中的port, user, pass一样。而图中最下面的”{os: ‘custom’, path:’/opt/metasploit-framework/’}”要根据实际情况来改,这里写的是msf的路径,这里笔者是在Ubuntu中安装了msf,所以路径是/opt/metasploit-framework/, 如果读者是使用kali来测试,那么默认已经有写路径了。

接着修改beef/config.yaml, 设置开启metasploit模块:

开启metasploit模块设置好BeEF后,现在来开启Metasploit的MSGRPC接口, 先在一个空白文件msf_beef.txt中写入:

load msgrpc ServerHost=127.0.0.1 ServerPort=xxxx User=msf Pass=xxxxx

ServerPort, User, Pass 需要与BeEF中设置的一样。 接着启动msf服务器, 因为笔者是在远程的服务器上启动msf的,而且msf必需保持运行状态,所以笔者使用screen命令来启动msf。这样即使我关闭了ssh连接,也可以保证msf保持运行状态:

screen -S msf   //创建一个名为msf的session
msfconsole -r msf_beef.txt //启动msf,并启动msgrpc接口

启动成功后,会有如下图的输出:

输出结果截图接着按住Ctrl键 + a + d, 暂时离开”msf” session窗口, 回到原本的窗口。 这样即使退出了ssh连接, “msf”session还是会在继续运行。

screen  -ls   //可以看到当前有多少个session窗口在运行
screen  -r  id  //可以进入到 某个session窗口

启动了msfconsole之后,  就可以启动BeEF了。这个顺序不能反了,需要先启动msfconsole,才能启动BeEF。

nohup ./beef &

现在环境设置好了。 说一下BeEF + msf攻击原理, 原本如果只是使用metasploit 来攻击浏览器(这里是IE8),那么metasploit会生成一个URL,如果IE访问了这个URL,那么就会中招。

中招现在有BeEF, BeEF可以把metasploit生成的URL嵌入到被勾连浏览器的一个iframe中。通过msgrpc接口,可以直接在BeEF的管理UI中设置metasploit的参数并直接使用msf的exploit模块。

使用msf的exploit模块这里笔者挑了ms11_003_ie_css_import来做测试 , 在BeEF的metaspliot 目录下可以找到。 设置好参数之后点击Execute就可以运行了。

回到Ubuntu服务器, 查看msfconsole控制台:

查看msfconsole控制台可以看到回连了meterpreter。在测试的时候,要确保网络的速度, 笔者因为网速问题,测了好几次才成功。

结语

这一章就到这里了,这个系列也完结了。

*本文原创作者:NT00,本文属FreeBuf原创奖励计划,未经许可禁止转载

来源:freebuf.com 2018-08-18 08:00:29 by: NT00

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论