WEP & MAC
目錄
- 安裝libpcap
- 安裝aircrak-ng
- 安裝wireshark
- 802.11管理幀格式
- WEP加密原理
- WEP中RC4加密算法
- WEP中CRC32校驗(yàn)
- 抓取包并分析
運(yùn)行環(huán)境:
操作系統(tǒng):Ubuntu 16.04 64
無(wú)線(xiàn)網(wǎng)卡:Netgear NETGEAR wg111 v2 RTL8187
1.安裝libpcap
libpcap是unix/linux平臺(tái)下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)包,大多數(shù)網(wǎng)絡(luò)監(jiān)控軟件都以它為基礎(chǔ)废菱。Windows平臺(tái)對(duì)應(yīng)的為winpcap
安裝libpcap后技矮,我們可以自己寫(xiě)一個(gè)網(wǎng)絡(luò)嗅探器。
<<libpcap使用>> CSDN BLOG
[更詳細(xì)的介紹及C語(yǔ)言例程]
$ wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
$ tar xzvf libpcap-1.8.1.tar.gz
$ cd libpcap-1.8.1
$ ./configure
$ make
$ sudo make install
# 如果執(zhí)行 ./configure 報(bào)錯(cuò):
# configure: error: Neither flex nor lex was found.
# configure: error: yacc is insufficient to compile libpcap.
# 執(zhí)行 $ sudo apt-get install flex bison 繼續(xù)操作
2.安裝aircrack-ng
aircrack-ng是一套完整的跨平臺(tái)WiFI網(wǎng)絡(luò)安全評(píng)估工具殊轴,能夠進(jìn)行
監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)包衰倦、網(wǎng)絡(luò)攻擊、
測(cè)試和破解WEP與WPA-PSK加密等旁理。
套件中包含:
- airodump-ng 用于捕獲破解WEP密鑰的802.11幀
- aircrack-ng 用于破解基于802.11協(xié)議的WEP以及WPA-PSK密鑰
- aireplay-ng 用于強(qiáng)行向目標(biāo)AP發(fā)送數(shù)據(jù)包
- airmon-ng 用于為整個(gè)套件配置一個(gè)網(wǎng)卡樊零,開(kāi)啟無(wú)線(xiàn)網(wǎng)卡的monitor mode
- airbase-ng 用于建立Soft AP
我們需要使用其中的airmon-ng、airbase-ng兩個(gè)工具
$ sudo apt-get install aircrack-ng
3.安裝wireshark
Wireshark(前稱(chēng)Ethereal)是一款跨平臺(tái)的網(wǎng)絡(luò)封包分析軟件孽文。網(wǎng)絡(luò)
封包分析軟件的功能是抓取網(wǎng)絡(luò)封包驻襟,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)
封包資料。在分析802.11無(wú)線(xiàn)數(shù)據(jù)格式及編寫(xiě)相關(guān)程序時(shí)需要利用到
wireshark軟件
$ sudo apt-get install wireshark
#在使用wireshark抓包時(shí)建議使用 sudo wireshark
4. 802.11管理幀格式
推薦書(shū)目
- 《深入理解Android:Wi-Fi芋哭、NFC和GPS卷》(鄧凡平,機(jī)械工業(yè)出版社)
管理幀格式部分教程- 《802.11無(wú)線(xiàn)網(wǎng)絡(luò)權(quán)威指南(第二版)》(Matthew S.Gast,O’Reilly)
5. WEP加密原理
《How 802.11 Wireless Works》
[一篇非常詳細(xì)地解釋了802.11無(wú)線(xiàn)網(wǎng)絡(luò)工作原理的文章沉衣,涉及到WEP的加密解密介紹]
基礎(chǔ)的密碼學(xué)
一串隨機(jī)的文本[RandomText] xor 等長(zhǎng)的明文[PlainText] ==> 密文[CipherText]
同一串隨機(jī)的文本[RandomText] xor 密文[CipherText] ==> 明文[PlainText]
eg:
01100011 ^ 01010101 = 00110110
01100011 ^ 00110110 = 01010101
在802.11 無(wú)線(xiàn)網(wǎng)絡(luò)中,WEP加密最重要的一點(diǎn)就是利用了該原理减牺,但是其漏洞也是因?yàn)镽andomText的生成
并不能保證一直不重復(fù)豌习,并且采用的是偽隨機(jī)方式生成存谎。
5.1 WEP密碼設(shè)定:
支持WEP加密的設(shè)備通常支持多種長(zhǎng)度的密鑰,常見(jiàn)的有64bit,偽128bit,128bit甚至256bit斑鸦。
不過(guò)愕贡,本項(xiàng)目中我們采用的為airbase-ng 創(chuàng)建共享密鑰方式下(shared key mode)默認(rèn)的64位密鑰。
![WepWorkImg](https://github.com/a1nc/WEP-Data-Decrypt/raw/master/WepWork.png)
注意:
-
1 當(dāng)我們?cè)诖四J较略O(shè)置密碼時(shí),比如設(shè)定密鑰為:1112223334
則對(duì)應(yīng)的64位"WEP seed"為:24bit IV(初始化向量) + 0x11 + 0x12 + 0x22 + 0x33 + 0x34
IV(24bit)+0001 0001 0001 0010 0010 0010 0011 0011 0011 0100 -
2 WEP seed 通過(guò)RC4算法計(jì)算得出RC4 Key
<1>. RC4 key 的產(chǎn)生過(guò)程則是WEP加密中偽隨機(jī)數(shù)產(chǎn)生器工作的過(guò)程
<2>. 由于 IV 由AP產(chǎn)生巷屿,并且不同的廠(chǎng)家生成方式不一致,但是IV僅有24bit墩虹,在復(fù)雜并且流量大的網(wǎng)絡(luò)環(huán)境下很容易在短時(shí)間內(nèi)使用重復(fù)的
IV進(jìn)行生成WEP seed -
3 Payload為要發(fā)送的數(shù)據(jù)嘱巾,Payload與Header共同經(jīng)過(guò)CRC32循環(huán)校驗(yàn)得到32bit ICV
Payload + ICV 用RC4加密算法進(jìn)行加密處理
6. WEP中RC4加密算法
RC4(來(lái)自Rivest Cipher 4的縮寫(xiě))是一種流加密算法,密鑰長(zhǎng)度可變诫钓。它加解密使用相同的密鑰旬昭,因此也屬于對(duì)稱(chēng)加密算法。
RC4是有線(xiàn)等效加密(WEP)中采用的加密算法菌湃,也曾經(jīng)是TLS可采用的算法之一问拘。 ——wikipedia
本項(xiàng)目中采用的RC4加密算法使用的一份開(kāi)源的代碼,需要注意的是在有的平臺(tái)上面RC4代碼中的char型數(shù)據(jù)需要更改為unsigned char
7. WEP中CRC32校驗(yàn)
循環(huán)冗余校驗(yàn)(英語(yǔ):Cyclic redundancy check惧所,通稱(chēng)“CRC”)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡(jiǎn)短
固定位數(shù)校驗(yàn)碼的一種散列函數(shù)骤坐,主要用來(lái)檢測(cè)或校驗(yàn)數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。生成的數(shù)字在傳輸或者存
儲(chǔ)之前計(jì)算出來(lái)并且附加到數(shù)據(jù)后面下愈,然后接收方進(jìn)行檢驗(yàn)確定數(shù)據(jù)是否發(fā)生變化纽绍。一般來(lái)說(shuō),循環(huán)冗余校驗(yàn)的值都是32位的整數(shù)势似。
——wikipedia
本項(xiàng)目中采用的CRC32校驗(yàn)程序使用的一份開(kāi)源的代碼拌夏。
注意:
-
1 在WEP中CRC計(jì)算的是Header + 初始Payload
eg:在WEP共享密鑰認(rèn)證方式(shared key mode)的過(guò)程中會(huì)向客戶(hù)端發(fā)送一份ChallengeText(假設(shè)為128位明文)。Payload (140bytes)= header (8bytes) + ChallengeText (128bytes) + ICV[CRC32] (4bytes) ```<br> 此140Bytes數(shù)據(jù)將會(huì)被RC4加密算法進(jìn)行加密履因,而密鑰則是64bit WEP seed 產(chǎn)生的RC4 key障簿。<br> 最后,該數(shù)據(jù)包將發(fā)給AP進(jìn)行驗(yàn)證栅迄。
2 當(dāng)AP收到發(fā)來(lái)的數(shù)據(jù)包時(shí)站故,會(huì)將數(shù)據(jù)包中明文的IV與自己存儲(chǔ)的Key結(jié)合作為WEP seed 對(duì)140bytes 的數(shù)據(jù)進(jìn)行解密
解密之后有 140bytes 數(shù)據(jù),僅需要對(duì)1-136bytes 的數(shù)據(jù)進(jìn)行循環(huán)校驗(yàn)霞篡,得出的校驗(yàn)值與 137-140bytes 的ICV進(jìn)行對(duì)比世蔗,若相同,則該數(shù)據(jù)包是正確的朗兵。3 正因?yàn)槿绱宋哿埽覀兛梢岳抿?yàn)證的這個(gè)過(guò)程,額外的傳遞一些信息余掖。