當前位置:
首頁 > 最新 > 樹莓派搭建WiFi釣魚系統

樹莓派搭建WiFi釣魚系統

硬體:

主機:

樹莓派3;CPU為一顆1.2G赫茲64bit四核ARMv8,看CPU核心數挺唬人的,實際上要看應用場景,我這WiFi路由平台運行起來感覺有點吃力;無線網卡型號為BCM43438,同時支持WiFi與藍牙。

存儲:

32G SD卡,當然也支持USB啟動但是我沒有測試,有興趣的朋友可以自己玩玩.

USB無線網卡: (TP-Link WN722N)

剛開始我們測試的是RTL8812AU這個晶元的網卡,支持2.4G與5G頻段,測試之後就後悔貪便宜了(X寶上買的,好像是某電視機的WiFi模塊改),同時在kali與debian下測試,kali apt安裝源自帶這個晶元的驅動;debian則需要編譯安裝驅動了,Github上面不少RTL8812AU的驅動,後面測試了幾次,換了N次驅動後終於可以通過aireplay的測試了,但是網卡表現非常不穩定十次中有九次提示沒有發現AP(使用Scapy發送DeAuth數據幀還是沒問題的,反正我每次連續發一百個包還是能踢客戶端下去的).後來實在不想搞網卡驅動了,直接上TP-Link WN722N(2.4G)還不用裝驅動,樹枚派直接就給識別了。


OS (Raspbian Stretch Lite):

剛開始因為懶直接刷的Kali for Raspberry,結果在創建AP的時候各種莫名奇妙,先是網卡MAC地址每次重啟都會不停的變(MAC Address Spoofing,這個倒是關閉了),接下來是hostapd與數莓派內置網卡驅動不兼容。折騰了幾次後乾脆就換回樹枚派官方的系統了。

DHCP Server (isc-dhcp-server):

DHCP Server我這選擇了使用isc-dhcp-server。當然使用dnsmasq也是可以的.

DNS Server(DNSMasq):

這個沒什麼好說的,實在時沒有找到更合適的,而且dnsmasq配置也方便.


安裝操作系統:

安裝Hostapd:

hostapd 是一個用戶態用於AP和認證伺服器的守護進程。它實現了IEEE 802.11相關的接入管理,IEEE 802.1X/WPA/WPA2/EAP 認證, RADIUS客戶端,EAP伺服器和RADIUS 認證伺服器。Linux下支持的驅動有:Host AP,madwifi,基於mac80211的驅動。

安裝軟體包:

sudo apt install hostapd

配置文件:

軟體包安裝好後,我們需要為程序創建一個配置文件,配置文件模板在/usr/share/doc/hostapd/examples/hostapd.conf.gz.

配置文件修改好後,運行下面的命令設置服務隨系統啟動並啟動服務:

啟動hostapd服務後,搜索熱點可以發現一個名為ASUS的熱點,配置上沒有問題的話應該可以正常建立連接的,但是客戶端獲取不到IP地址。

配置網卡IP地址:

我們需要給AP配置一個IP地址,用於DHCP以及與客戶端通信使用。

配置文件路徑:/etc/network/interfaces.d/wlan0

內容如下:

DHCP Server

dhcp伺服器用來給客戶端動態分配IP地址;我在搭建測試環境的過程中發現一台PC(debian9-64位無圖形界面)在熱點漫遊後還是使用的上一個熱點分配的IP地址,如果此時我們的dhcp地址池與目標網路的不一致可能會造成客戶端明明已經連接上了我們的熱點,但是因為IP地址不在一個網路而不能通信。

安裝軟體包:

sudo apt install isc-dhcp-server #安裝軟體包

配置文件:

配置文件路徑: /etc/dhcp/dhcpd.conf

在文件的尾部添加下面的內容:

設置開機啟動:

啟動dhcp服務:

測試:測試測試熱點鏈接,如果可以連接到熱點並且獲取到IP地址表示服務運行正常。

配置路由與地址轉換:

配置了熱點的IP地址與DHCP伺服器之後,我們的熱點已經可以跟客戶端正常通信了。接下來我們需要給熱點配置路由與網路地址轉換

開啟包轉發功能:Linux系統處於安全因素默認是禁止包轉發的,但是我們此刻需要將raspberry打造成一台路由器,因此我們需要手動開啟包轉發的功能,這裡有兩個途徑來啟用。

啟用NAT:

經過前面的配置,路由轉發已經開啟了。此時我們還需要給給raspberry添加地址偽裝的功能(或者叫地址映射、埠映射等名字),這裡需要用到iptables。

IPTABLES:

iptables 組件是一種工具,它使插入、修改和除去信息包過濾表中的規則變得容易。這裡我們只用到了nat表。

nat表默認有四個鏈: Input、Output、PREROUTING、POSTROUTING對應輸入隊列、輸出隊列、預路由隊列、後路由隊列;輸入輸出隊列用於數據包的過濾,而我們將要使用的是POSTROUTING隊列,數據包在投遞出去的時候將我們的私有網路的地址(數據報文的源地址)修改成公網地址。

物理埠:連接互聯網的介面這裡使用樹莓派集成的物理網卡eth0;連接內網的是wlan0也就是作為熱點的網卡。

命令:

保存配置 。

開機自動載入配置:創建文件 ,內容如下:

到這裡我們就成功將樹枚派3打造成了一台正兒八經無線路由器了,我們給他取名」router-pi」。

Router-Pi的」進化」:

通過上面的配置router-pi就誕生了.當然對比其他硬體wifi路由器router-pi比較弱勢,為了節省空間它的天線是直接蝕刻到電路板上小到我都看不到(其實是我沒有找到天線位置);而且作為軟AP在信號處理速度上也是遠遠不及硬體WiFi路由器的.當然router-pi並不是要去硬拼別人的強項,它非常嬌小靈活能勝任很多硬體無線路由器不能勝任的工作.下面我們設想這樣一個場景:

IEEE 802.11是現今無線區域網通用的標準,它是由國際電機電子工程學會(IEEE)所定義的無線網路通信的標準。其中定義了媒體訪問控制層(MAC層)和物理層。物理層定義了工作在2.4GHz的ISM頻段上的兩種擴頻作調製方式和一種紅外傳輸的方式,總數據傳輸速率設計為2Mbit/s。兩個設備可以自行構建臨時網路,也可以在基站(Base Station, BS)或者接入點(Access Point,AP)的協調下通信。為了在不同的通訊環境下取得良好的通訊質量,採用CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)硬體溝通方式

802.11標準將所有的數據包分為3種:

802.11:

router-pi誕生後感覺很孤單,它很羨慕別的無線路由器有很多的小夥伴連接陪他玩耍;就比如那個叫GoodBoy的傢伙,有很多的小夥伴每天都來找它玩耍,還有很多慕名而來的;router-pi很難過,它希望能夠像GoodBoy一樣受歡迎,但現實往往是殘酷的,router-pi很沮喪.

某天一個陌生的面孔出現了,說要找GoodBoy一起玩耍,她看了router-pi一眼後就走開了,她是來找GoodBoy的.router-pi看著她去到了GoodBoy那邊;"要是我就是GoodBoy多好啊",router-pi心裡默默想著.第二天它就開始了自己的計劃:

此刻router-pi擁有了新的名字』GoodBoy』,或者我們應該叫它GoodBoy(pi). 它一遍又一遍的高喊著』我是GoodBoy,我是GoodBoy』一遍又一遍…

慢慢的有些慕名來找GoodBoy玩耍的小夥伴們也跟GoodBoy(pi)玩耍了,'這是一個好的開始'GoodBoy(pi)私下裡這樣想著.日子一天天過去,來找GoodBoy(pi)玩耍的小夥伴始終少得可憐;它開始很不理解?為什麼小夥伴們還是不願意跟它一起玩耍.後來它發現真實的GoodBoy外形很酷,信號很強而且速度很快,GoodBoy(pi)意識到自己這方面根本不是對手.("要是GoodBoy出了問題才好"它如此想..)

GoodBoy(pi)認為這樣下去不行,它打算提升自己並開始認真閱讀802.11協議的相關資料,直到它看到了…..

普通無加密連接過程:

了解到這些,GoodBoy(pi)很興奮,它查閱資料發現管理幀是沒有加密的(wpa3會修復這個漏洞),也就是任何人都可以偽造一個Deauthentication幀發送給目標無線熱點或者目標客戶端讓收到這個數據的一方解除認證斷開連接。

GoodBoy(pi)給自己添加了一個功能,探聽GoodBoy與它的小夥伴們的通信並獲取他們的通信地址,然後對他們發送偽造DeAuth數據幀,讓他們都以為自己連接的熱點不提供服務了(拒絕服務攻擊)。

從此GoodBoy(Pi)取代了原來GoodBoy的位置,它成了'真正'的GoodBoy,和它夢寐以求的小夥伴們一起開心的玩耍。

通過上面的場景我們知道要對一個WiFi熱點進行劫持,我們只需要獲取它的SSID/認證方式/密鑰即可創建一個表面上與它一模一樣的WiFi熱點;剩下的工作只需要讓目標路由器無法正常工作,用戶自然會來連接我們偽造的WiFi熱點。我們先了解一下aircrack-ng套件,我們會用到幾個工具:

這裡我們只需要用到airodump-ng與aireplay-ng

第一步:我們需要將無線網卡設置成監聽模式, ,這幾種方式看個人習慣。

第二步:抓取我們需要的數據,執行命令會抓取所有監聽到的wifi通信數據包,面板上半部分是當前範圍空間監聽到的wifi熱點信息列表,包括ssid/bssid/channel/認證方式等信息;下半部分顯示的是WiFi客戶端與熱點的關聯列表.我們只需要獲取目標熱點的bssid也就是MAC地址.

第三步:拒絕服務攻擊,執行命令;命令中的第一個0表示攻擊類型為—deauth,第二個零表示重複發送DeAuth的數據幀進行攻擊,也可以替換成一個整數表示攻擊次數.命令中我們只填寫了bssid所以目標熱點上的所有客戶端都會被DeAuth.在目標熱點無法提供服務的時候客戶端就會去連接我們偽造的熱點,當然那些綁定了bssid的客戶端是沒有辦法的。

通過以上三步我們完成了DeAuth攻擊;當然我們除了使用aircrack-ng套件以外還有很多其他的選擇,比如scapy是一個python庫方便我們組裝各種數據幀,還有libpcap等.

上面的代碼中addr1設置成廣播地址FF:FF:FF:FF:FF:FF會造成所有連接到目標熱點的客戶端斷開連接.

AP發送Beacon廣播管理幀

客戶端向承載指定SSID的AP發送Probe Request(探測請求)幀

AP接入點對客戶端的SSID連接請求進行應答

客戶端對目標AP請求進行身份認證(Authentication)

AP對客戶端的身份認證(Authentication)請求作出回應

客戶端向AP發送連接(Association)請求

AP對連接(Association)請求進行回應

客戶端向AP請求斷開連接(Disassociation)

數據、管理和控制幀中,管理幀負責連接的建立與客戶端認證工作,一個已經與熱點建立連接的客戶端如果收到一個Deauthentication數據報文,那麼這個連接將會斷開。

router-pi的黑化

某一天,一個黑衣人來找到了router-pi說可以幫它擁有更多的小夥伴;那個人勸說router-pi要了解小夥伴們的需求才能提供更好的服務,但是必須要安裝一個軟體模塊.一直以來router-pi只是作為一個信使在默默的為大家服務,它希望提升自己服務更多的人.那個黑衣人承諾會給它升級更好的計算性能與更高的信號覆蓋範圍,這個條件顯然打動了router-pi;於是router-pi開始去了解那個模塊:mitmproxy這個軟體會將小夥伴們的信件拆開來看一眼然後再投遞出去;雖然理智告訴router-pi這樣做不好…

Mitmproxy是一款支持HTTP(S)的中間人代理工具,支持編寫腳本來批量處理請求。Mitmproxy使用Python開發,是輔助web開發&測試,移動端調試,滲透測試的工具。

安裝MiTMProxy, 執行命令。

MiTMProxy支持終端和web顯示模式,其中mitmdump輸出類似tcpdump.我們主要用到的是mitmweb.直接運行mitmweb命令就可以啟動代理了,默認監聽埠是8080,默認管理埠為8081。

代理程序運行起來後,我們設置web瀏覽器的代理地址,http/https請求所有數據就會呈現在mitmproxy的管理頁面。

當然無線客戶端用戶可不會去設置什麼http代理,所以我們需要在router-pi中設置一個透明代理:

運行上面兩條命令將所有的http流量都重定向到了本機的8080埠(-j REDIRECT只對本機起作用),其它如https埠也如法炮製,改一下—dport就好。

關於https的流量分析,我建議還是用mitmproxy的反向代理配合dnsmasq的dns劫持比較好,mitmproxy反向代理會將https進行剝離,到客戶端那裡就降級成http協議(用戶在地址中明確指定使用https協議這個方法就無效了),不會提示證書問題了.dnsmasq做dns劫持很簡單就不說了,配置文件添加一條記錄就行了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 國益信息安全 的精彩文章:

TAG:國益信息安全 |