自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談基于瀏覽器的攻擊框架BeEF

安全 數(shù)據(jù)安全
BeEF是瀏覽器攻擊框架的簡(jiǎn)稱(chēng),是一款專(zhuān)注于瀏覽器端的滲透測(cè)試工具

一、BeEF簡(jiǎn)介

BeEF是瀏覽器攻擊框架的簡(jiǎn)稱(chēng),是一款專(zhuān)注于瀏覽器端的滲透測(cè)試工具。可在其官網(wǎng)找到更詳細(xì)的介紹http://beefproject.com/。

二、安裝BeEF

先下載Beef最新版本

$ svn checkout http://beef.googlecode.com/svn/track/ beef

$ ruby install

選擇第一項(xiàng)自動(dòng)安裝需要的相關(guān)gems即可,也可以選擇2按照提示一個(gè)一個(gè)進(jìn)行安裝,安裝完成后就可以直接啟動(dòng)了

$ ruby beef -x

三、使用說(shuō)明

3.1 啟動(dòng)BeEF

安裝完成后,啟動(dòng)BeEF

#./beef 

 

命令行中顯示的UI URL以后即為WEB接口,用瀏覽器打開(kāi),輸入默認(rèn)密碼beef/beef,即可進(jìn)入BeEF管理頁(yè)面

按照提示,假設(shè)此時(shí)目標(biāo)192.168.11.1的服務(wù)器訪問(wèn)了這個(gè)demo頁(yè)面

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

 

3.2 實(shí)施攻擊

HOOK持續(xù)的時(shí)間為關(guān)閉測(cè)試頁(yè)面為止。在此期間,相當(dāng)于被控制了,可以發(fā)送攻擊命令了。選擇commands欄,可以看到很多已經(jīng)分好類(lèi)的攻擊模塊。

其中,4種顏色分別表示:

該攻擊模塊可用,且隱蔽性強(qiáng)

該攻擊模塊可用,但隱蔽性查

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

該攻擊模塊不可用 

 

例如,選取MISC下的Raw JavaScript模塊作為測(cè)試用例,右端表格有該模塊的詳細(xì)說(shuō)明,以及一些可選的參數(shù)等。輸入Javascript code,點(diǎn)擊Excute進(jìn)行攻擊,效果如下圖所示 

 

3.3 Proxy功能

選中目標(biāo)主機(jī),點(diǎn)右鍵,在菜單中選中Use as Proxy 

 

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

 

通過(guò)查看目標(biāo)瀏覽器firebug記錄,可以確信確實(shí)發(fā)送了該http,達(dá)到了代理效果。同時(shí)Rider下的History選項(xiàng)也記錄了發(fā)送歷史記錄 

#p#

四、Metasploit組合

由于BeEF默認(rèn)是不加載metasploit的,要使用Metasploit豐富的攻擊模塊,需要做些配置。BT5下,首先到beef目錄下修改/pentest/web/beef/config.yaml文件,將其中的metasploit選項(xiàng)改為enable,如下所示:

 

 

然后查看/pentest/web/beef/extensions/metasploit/config.yaml。查看到其中的pass默認(rèn)為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的通信。啟動(dòng)msfconsole,

#msfconsole –r beef.rc,如下圖所示,順利啟動(dòng)服務(wù)。

 

 

現(xiàn)在可以啟動(dòng)beef了,啟動(dòng)后,可以看到BEEF加載了204個(gè)metasploit的攻擊模塊

 

 

頁(yè)面如圖,現(xiàn)在可以使用metasploit的模塊進(jìn)行攻擊了。

 

#p#

五、實(shí)現(xiàn)原理

5.1 簡(jiǎn)述

BEEF 采用ruby語(yǔ)言編寫(xiě),其目錄結(jié)構(gòu)如下所示:

 

 

除去一些安裝和說(shuō)明文件,Beef最主要的目錄有三個(gè),core、extension和modules。BEEF的核心文件在core目錄下,各種擴(kuò)展功能在extension目錄下,modules則為攻擊模塊目錄。

5.2 Core

Core目錄是BEEF的核心目錄,并負(fù)責(zé)加載extension和module。其中最關(guān)鍵的文件位于core\main目錄下,其文件結(jié)構(gòu)如下所示:

 

 

Client目錄下均為js文件,是在受控客戶(hù)端(hooked browser)使用的js文件,包括net、browser、encode、os等的實(shí)現(xiàn),以u(píng)pdate.js為例,在core\main\client\update.js中可以看到,定義了beef.updater,設(shè)置每隔5秒check一次是否有新的命令,如果有,則獲取并執(zhí)行之。

Console目錄用于命令行控制

Constants目錄定義了各種常量

Handlers目錄主要用于處理來(lái)自受控客戶(hù)端連接請(qǐng)求。

Models 定義了一些基本的類(lèi)

Rest目錄:即WEB服務(wù)基于REST原則,是一種輕量級(jí)的HTTP實(shí)現(xiàn)。 在server.rb中可看到,是通過(guò)mount的形式將資源與URL相對(duì)應(yīng),即它不是一個(gè)簡(jiǎn)單的WEB目錄服務(wù),任何需要http服務(wù)的資源,都需要先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ò)展應(yīng)用

 

 

其中幾個(gè)extension的作用如下:

Admin_ui: 實(shí)現(xiàn)了一個(gè)WEB界面的控制后臺(tái)。

Metasploit: 與metasploit互通相關(guān)的設(shè)置。

Requester: 負(fù)責(zé)處理HTTP請(qǐng)求,其文件如下所示:

 

 

其中:

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

Config.yaml為作者和該擴(kuò)展相關(guān)信息。

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

Models定義了一個(gè)http模型對(duì)象,例如,其中有個(gè)has_run屬性,當(dāng)請(qǐng)求未發(fā)送時(shí),其值為”waiting”,發(fā)送攻擊時(shí),遍歷狀態(tài)為”waiting”的模塊,并發(fā)送http請(qǐng)求。

Handler.rb 主要是處理http響應(yīng),收到響應(yīng)后將相應(yīng)的模塊has_run狀態(tài)置為complete,并保存到數(shù)據(jù)庫(kù)。

5.4 modules

Modules集合了BEEF的各個(gè)攻擊模塊,一般一個(gè)攻擊模塊分為3個(gè)文件:command.js、config.yaml、module.rb。這樣的結(jié)構(gòu)可以很方便地進(jìn)行模塊添加,易于擴(kuò)展。

Config.yaml: 攻擊模塊相關(guān)信息,如名稱(chēng)、描述、分類(lèi)、作者、適用場(chǎng)景等

Module.rb:文件定義了該攻擊模塊的類(lèi),繼承了BEFF::Core::Command類(lèi),在通用command類(lèi)的基礎(chǔ)上定義一些該模塊特有的處理函數(shù),如使用較多的一個(gè)函數(shù)是post_execute,即攻擊進(jìn)行后進(jìn)行的操作(一般為保存結(jié)果),如下所示。

class Browser_fingerprinting < BeEF::Core::Command

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: 即為攻擊代碼,攻擊時(shí)讀取此js并發(fā)送給受控客戶(hù)端。以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);

});

代碼很簡(jiǎn)單,在受控客戶(hù)端執(zhí)行取得結(jié)果之后,將結(jié)果返回給server端。Beef.net在core/main/client目錄下定義。

在 Core目錄下的Command.rb中,可以看到加載過(guò)程,首先判斷該攻擊模塊的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

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 博客
相關(guān)推薦

2019-07-16 07:15:42

瀏覽器網(wǎng)絡(luò)威脅網(wǎng)絡(luò)安全

2017-04-26 14:15:35

瀏覽器緩存機(jī)制

2017-05-15 13:40:20

瀏覽器http緩存機(jī)制

2011-06-10 16:44:17

Qt 瀏覽器

2020-08-16 08:51:22

WEB安全網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)欺騙

2009-06-22 14:06:00

java瀏覽器

2017-05-02 09:25:13

瀏覽器指紋追蹤虛擬化

2022-06-04 07:13:20

黑客瀏覽器網(wǎng)絡(luò)攻擊

2024-01-29 12:12:19

2013-11-22 15:05:13

DDoSDDoS攻擊

2011-04-06 11:30:49

2015-05-06 10:02:26

2011-08-29 14:27:33

QTWebkit瀏覽器

2021-06-30 10:21:29

瀏覽器

2010-04-05 21:57:14

Netscape瀏覽器

2012-04-16 10:04:08

Eclipse瀏覽器IDE

2012-04-11 10:16:02

EclipseIDE

2009-04-03 09:09:21

瀏覽器網(wǎng)絡(luò)辦公室

2021-12-06 16:33:05

瀏覽器攻擊漏洞

2012-03-20 11:07:08

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)