先大致了解下Beef,以后可能会用到。
Beef工作机制:在beef上有一个叫zombie的东西,即受害浏览器。zombie是被hook(勾连)的,如果受害浏览器访问了有勾子(由js编写)的页面,就会被hook,勾连的浏览器会执行初始代码返回一些信息,接着zombie会每隔一段时间(默认为1秒)就会向BeeF服务器发送一个请求,询问是否有新的代码需要执行。BeeF服务器本质上就像一个Web应用,被分为前端UI,和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示,BeeF持有者可以通过浏览器来登录BeeF 的后台管理UI。
打开kali2虚拟机,找到beef-xss framework。
点击进入提示需要更改密码。
先cat /etc/beef-xss/config.yaml查看,之后使用vim来修改。Vim /etc/beef-xss/config.yaml先按下i键,进入插入模式,修改密码用户名如图,再输入:wq完成写入保存。再次打开beef-xss。
输入用户名密码登陆即可。
按照其说明在浏览器输入URL,查询自己ip为10.0.2.15
在浏览器输入10.0.2.15:3000/demos/butcher/index.html
Ps:我们可以通过访问10.0.2.15:3000/hook.js来查看js脚本。
我们先来尝试一些功能,比如页面篡改
用重定向将beef默认页面篡改成baidu.com。执行之后如下图
发现不管访问什么URL都是10.0.2.15:3000/demos/butcher/index.html
查看beef日志,发现连鼠标点击操作的位置都被记录了。
接下来再尝试进行端口扫描,填入目标ip。
等待过后,看到部分回显。
总结:经过探索,发现beef仍有许多许多功能可以实现。只要受害者访问带有hook的页面,就会被勾连,beef可以对其进行持续化控制,通过快速与zombie之间通信交互,实现对zombie的控制。总的来说beef是一个很强大的基于浏览器框架攻击的集成工具。