52

浏览器攻击框架BeEF Part 6:攻击用户与攻击浏览器

 5 years ago
source link: http://www.freebuf.com/articles/web/178512.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

前言

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

查看之前的五篇文章:

浏览器攻击框架BeEF Part 1

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

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

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

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

攻击用户

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

内容劫持

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

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

Qfe67nq.jpg!web 上图中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通过使用焦点事件,键盘事件,鼠标和指针事件这四个事件来实时监控着用户的操作。其中焦点事件是指用户的焦点是否还在被勾连的页面,下面笔者在一个被勾连的浏览器中分别触发四个事件:

MRNbyim.jpg!web

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

Uby6Jz6.jpg!web

社会工程学

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

UnyYnyj.jpg!web 这里笔者挑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前,需要做一些参数的设置:

3UfyYvM.jpg!web 点击Execute运行, 被勾连的浏览器会有一个提示性的弹框弹出:

AFrueez.jpg!web 如果用户输入帐号和密码:

vQnQBfV.jpg!web 那么在BeEF的管理UI上就能看到了帐号和密码:

mAZRZrQ.jpg!web

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

NbyMnia.jpg!web 修改后的效果如下:

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

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

攻击浏览器

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

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

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

bMfaquM.jpg!web

上图中的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模块:

fYrmYfA.jpg!web 设置好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接口

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

ARjM7nR.jpg!web 接着按住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,那么就会中招。

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

MZFBrqM.jpg!web 这里笔者挑了ms11_003_ie_css_import来做测试 , 在BeEF的metaspliot 目录下可以找到。 设置好参数之后点击Execute就可以运行了。

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

BF7JJnr.jpg!web 可以看到回连了meterpreter。在测试的时候,要确保网络的速度, 笔者因为网速问题,测了好几次才成功。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK