0x0環(huán)境
主機(jī)A win10:10.51.20.60(wifi)
主機(jī)A中的虛擬機(jī)kali(攻擊者):192.168.110.129(NAT)
主機(jī)A中的虛擬機(jī)win2003(受害者):192.168.110.132(NAT)
0x1 配置
0x11 beef配置
Beef的配置文件在 /usr/share/beef-xss/config.yaml
Host:kali IP
Port:beef監(jiān)聽端口默認(rèn)3000
public:主機(jī)A(接入外網(wǎng)的電腦IP)
public_port:主機(jī)A中空閑的端口,我設(shè)置的是20000
0x12 虛擬機(jī)端口映射
修改虛擬機(jī)網(wǎng)關(guān)的端口映射,簡單來說,就是設(shè)置后,所有訪問主機(jī)A的20000端口的請求都會(huì)被轉(zhuǎn)發(fā)到192.168.110.129的3000端口,也就是kali的3000端口上
虛擬網(wǎng)絡(luò)編輯器在VM編輯欄
① 200多本網(wǎng)絡(luò)安全系列電子書
② 網(wǎng)絡(luò)安全標(biāo)準(zhǔn)題庫資料
③ 項(xiàng)目源碼
④ 網(wǎng)絡(luò)安全基礎(chǔ)入門、linux、web安全、攻防方面的視頻
⑤ 網(wǎng)絡(luò)安全學(xué)習(xí)路線圖
【私信“安全”免費(fèi)白嫖】
0x2 模擬攻擊
0x21 kali
啟動(dòng)beef
Beef彈出瀏覽器打開beef的后臺(tái)管理,這里注意,原本應(yīng)該是打開上圖中的地址,但出了點(diǎn)問題(最后總結(jié)會(huì)說),所以我們要把ip改成kali的ip,也就是192.168.110.129:3000/ui/authentication
用戶名/密碼:beef/beef
這就是beef的界面,復(fù)制basic demo link:http://192.168.110.129:3000/demos/basic.html
0x22 win2003,win10
地址轉(zhuǎn)換:
復(fù)制的地址是:http://192.168.110.129:3000/demos/basic.html
受害者Win2003輸入的地址應(yīng)該是端口映射后的地址:10.51.20.60:20000/demos/basic.html
成功打開,此時(shí)應(yīng)該是成功了才對(。。。。。。)
查看kali中的beef管理界面,并沒有win2003的信息(慌了。。。)
此時(shí),我試了下在主機(jī)A中打開hook地址,成功了
再看beef,有了主機(jī)A的信息了,hook成功了(摸不著頭腦???)
嘗試?yán)胹ocial engineering(社會(huì)工程學(xué)模塊)騙取facebook密碼
再打開主機(jī)A上的頁面,成功了
輸入hello后,再回到kali看攻擊效果
0x3 總結(jié),思考
0x31關(guān)于beef配置的host
根據(jù)參考文章,一開始beef配置的host我是沒有改動(dòng),也就是默認(rèn)的0.0.0.0
但出現(xiàn)了如下圖的問題,成功打開了demo,但是demo上的js一直不成功,原因是無法連接(Error connection)
后來把host改成了kali的ip,js連接上了,但是beef的管理頁面,也就是127.0.0.1:3000/ui/panel卻無法打開了,試了下192.168.110.129:3000/ui/authentication倒是成功了,但是這其中的原因我還沒明白
0x32 win2003的失敗
0x22中說到,win2003成功打開了demo,但是beef這沒有收到信息
換成主機(jī)A嘗試成功后,我又轉(zhuǎn)回來研究2003失敗的原因,因?yàn)橹挥衖e,而且是舊版本的,沒辦法F12看具體的請求狀況,我下了個(gè)47版本的火狐裝上后,再次嘗試訪問demo,這次beef成功收到信息了,也就是2003被成功hook住了(我又摸不著頭腦了???)
Beef頁面
0x33 關(guān)于beef配置的public
因?yàn)榇舜斡玫氖莣ifi,所以beef配置中的public填的是wlan的ip地址,如果是用網(wǎng)線,
應(yīng)該要改成192.168.110.1
0x34 實(shí)際環(huán)境攻擊的想法
這次是虛擬機(jī)網(wǎng)絡(luò)模擬攻擊,如果在實(shí)際情況下
根據(jù)參考文檔A
需要一臺(tái)能訪問(有獨(dú)立ip)的主機(jī)
服務(wù)器裝好beef后,要修改后臺(tái)管理頁面的URL和用戶名密碼,因?yàn)槟隳艿顷懝芾眄撁妫瑒e人也能登陸
還要修改host為主機(jī)的獨(dú)立ip,port自設(shè)要大于1024
Public和public_port不用設(shè)置
以下來自文檔A
### 指定某個(gè)網(wǎng)段,只有在這個(gè)網(wǎng)段的瀏覽器才能被hook
permitted_hooking_subnet: "0.0.0.0/0"### 指定某個(gè)網(wǎng)段,只有在這個(gè)網(wǎng)段的瀏覽器才能訪問管理UI
permitted_ui_subnet: "0.0.0.0/0"### 上面這兩項(xiàng)都是可以被繞過的,只要使用X-Forwarded-For首部繞過,一般不需要設(shè)置
### 設(shè)置beef服務(wù)器的主機(jī), 如果有自己的域名, 那么可以設(shè)置自己的域名, 沒有就使用默認(rèn)
host: "0.0.0.0"### 設(shè)置beef服務(wù)器監(jiān)聽的端口, 可以自己定一個(gè),比如8080, 記得端口號(hào)需要大于1024
port: "3000"### 受害瀏覽器輪詢beef主機(jī)的時(shí)間, 默認(rèn)為1秒,可以設(shè)置為更低。
xhr_poll_timeout: 1000#public: "" # public hostname/IP address
#public_port: "" # experimental
### 這是讓BeEF運(yùn)行在一個(gè)反向代理或者NAT環(huán)境下才需要設(shè)置的。
### 管理頁面的URI, 默認(rèn)是/ui, 建議修改,這樣就不會(huì)讓別人找到你的管理頁面
web_ui_basepath: "/ui"### hook_file 的名稱, 建議修改, 可以修改為jquery.js之類的來提升隱蔽性
hook_file: "/hook.js"### 管理頁面登錄的用戶名和密碼, 這個(gè)一定要改,兩個(gè)都改是最好的
credentials:
user: "beef"passwd: "beef"