无线安全入门、芯片选型、扫描器使用
相關學習資料
http://www.cnblogs.com/LittleHann/p/3700357.html http://www.anywlan.com/ http://radiowar.diandian.com/ http://wireless.kernel.org/en/developers http://wireless.kernel.org/en/developers/Documentation/mac80211 http://www.ayxsj.com/pdf/mw&dbm.pdf http://www.antenna-theory.com/cn/basics/main.php http://zh.wikipedia.org/wiki/%E5%A4%A9%E7%BA%BF http://www.antenna-theory.com/cn/antennas/aperture/slottedWaveguide.php http://www.360doc.com/content/14/0314/20/5896561_360631387.shtml http://zh.wikipedia.org/wiki/WLAN%E4%BF%A1%E9%81%93%E5%88%97%E8%A1%A8 http://publish.it168.com/2005/0913/20050913020801.shtml http://blog.csdn.net/myarrow/article/details/7930131?
目錄
1. 無線安全研究需要的軟硬件選型、及物理電氣參數 2. 無線攻擊第一步: "網絡AP探測"、掃描器的使用?
1. 無線安全研究需要的軟硬件選型、及物理電氣參數
在進行實際的無線安全攻擊、研究之前,我們需要準備一些硬件設備、包括與之配套的軟件。基本上來說,無線黑客技術需要涉及到以下幾個組件
1. 底層芯片組 不論是USB網卡、PCI網卡、還是PCMCIA內置網卡,它們的核心都是"芯片組",即我們現在常說的卡皇、無線網卡的不同牌子,本質上應該討論它們內部使用的芯片組,我們要關注的電氣性能也是針對芯片組的。現在常見的WLAN芯片廠商有1) Atheros(鈺碩): https://wikidevi.com/wiki/Atheros2) Broadcom(博通): http://zh-cn.broadcom.com/3) Intel Pro Wireless、Intel Wifi Link(Centrino): http://www.intel.com/support/wireless/wlan/sb/CS-010623.htm4) Ralink(雷凌): http://www.ralinktech.com/en/5) Realtek(瑞昱): http://www.realtek.com.tw/ 2. 芯片驅動程序 芯片是硬件設備,Ring3的應用程序需要通過驅動程序來和芯片的指定端口通信,從而使用芯片的物理特性(發送、接收數據幀),Linux下的無線驅動程序經過了一段"發展期",最終以"mac80211驅動框架"作為最終的"主樹結構" http://wireless.kernel.org/en/developers/Documentation/mac80211 mac80211是一個無線驅動的框架,它提供了大量的API、規范,在這個框架下編寫驅動程序能和其他的驅動具有良好的共享性、兼容性(類似與windows下的NDIS框架的作用) 一般來說,各家芯片廠商都會提供配套的驅動程序、并提供更新支持1) Atheros(AR系列)http://www.qca.qualcomm.com/resources/driverdownloads/http://wireless.kernel.org/en/users/Drivers/Atheros2) Broadcomhttp://zh-cn.broadcom.com/support/802.11/linux_sta.phphttp://wiki.centos.org/zh/HowTos/Laptops/Wireless/Broadcom3) Intelhttp://wireless.kernel.org/en/users/Drivers/iwlwifi4) Ralink(RT系類)http://www.mediatek.com/en/downloads/ 淘寶上賣的很多卡皇的內置芯片就是這種RT型號5) Realtek(RTL系列)http://www.realtek.com.tw/DOWNLOADS/downloadsView.aspx?Langid=1&PNid=14&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=false 需要注意的,我們在選擇驅動的時候需要關注一下當前驅動是否支持USB(因為現在大多數人包括我自己都是使用外置網卡(卡皇)進行實驗的) 3. 應用程序編程接口(API)(不是必須) 本質上來說,我們可以直接編寫ring3代碼,調用驅動的編程接口來實現我們想要的功能。但是從實現難度、開發成本上來講,還是太過麻煩了。為此,開源社區開發了一些封裝良好的、功能完善的
API庫,講對驅動的調用作了一層封裝,使上層應用能更方便、快速地進行WLAN軟件的開發1) OSDEPAircrack-ng就是基于OSDEP的API進行開發的http://freecode.com/projects/aircrack-ng2) LORCON2http://blog.opensecurityresearch.com/2012/05/installing-lorcon2-on-backtrack-5-r2.html 3) libpcapLibpcap提供了系統獨立的用戶級別網絡數據包捕獲接口,并充分考慮到應用程序的可移植性http://sourceforge.net/projects/libpcap/ 4. 無線安全軟件工具 到了這一層就是我們在Linux下常見的各種類型的工具軟件 它們主要完成如下幾個功能1) 使用"監控模式"捕獲指定"信道"上的無線數據報,達到嗅探的目的2) 數據包注入,即重放任意數據的數據幀,主要有如下目的2.1) 造成DDOS效果,使流量增加,加速WEP攻擊2.2) 注入解除認證(deauthentication)數據包,使用該數據包可以把用戶和AP斷開,從而獲取WPA的4次握手數據包,然后可進行離線字典、或彩虹表密碼破解3) 主動發送"探測數據包",進行主動的服務(SSID)發現4) 信號干擾 常用的無線安全軟件有:1) Aircack-ng(suit)http://www.aircrack-ng.org/2) MDK3http://files.cnblogs.com/LittleHann/Mdk3.rarhttp://hack-it.org/index.php?title=Mdk33) Airbasehttps://www.airbasemakeup.com/4) AirPWNhttp://airpwn.sourceforge.net/5) Kismethttp://www.kismetwireless.net/
需要注意的一點是:
本文討論的驅動、軟件都是在Linux平臺下的,我也嘗試過在windows下基于winpcap進行編程、嗅探攻擊的使用,結果發現問題頗多(各種蛋疼),無法順利地開展研究工作,索性完全放棄windows下的嘗試,改為在Linux下進行,所以,本文所涉及到的驅動、掃描器都是在Linux下使用的,后面將不再聲明
我們前面說過,不同型號的網卡的"主要差別"在于內置的芯片組,但是,一個無線網卡的好壞除了和上面說的芯片組、驅動有關,還和它自身的一些物理、電氣特性有關,下面我們來一起逐一學習一下。
一般來說,綜合評價一個網卡的性能,有如下幾個維度
1. 芯片組型號 2. 發射(TX)功率 3. 天線的支持(信號增益、類型) 4. 靈敏度 5. 頻率范圍 6. 工作信道(是否支持跳頻) 7. 支持的模式 8. 是否支持USB接口 9. 價格0x1: 芯片組型號
就我個人經驗來看,目前主流的這些芯片廠商的芯片性能都沒有什么太大的差別(至少對于中低端網卡來說沒有)。我在實驗的時候選擇的是"RT3070L"芯片,在BT5下也默認對它提供了驅動支持,所以前期準備這塊比較方便。一般來說,當網卡的價格到達數千級別,芯片的型號的差異可能會帶來性能的差別。
在芯片選型的時候,我們要關注的是這個芯片的驅動支持情況,以下命令可以幫助我們更好地完成這個目標
airdriver-ng supported airdriver-ng details 序號 airdriver-ng installed0x2: 發射(TX)功率?
發射功率是我們需要重點關注的一個維度,當我們在wireless模式下需要發送數據包的時候,協議棧會將我們的數據包層層封裝,最終封裝成"數據幀",最終通過無線網卡轉換為射頻信號(一種電磁脈沖),通過饋線(電纜)輸送到天線,由天線以電磁波形式輻射出去(如果你是插網線就是通過網口發送出去)。電磁波在介質(空氣)中傳播過程中會不斷衰減,這也是為什么我們不能接收到離我們很遠的地方的Wi-Fi信號的原因,電磁波到達接收地點后,由天線接收下來(僅僅接收很小很小一部分功率,因為電磁波是向四周同時擴散的),并通過饋線送到目標無線接收設備中,因此在無線網絡的工程中,計算發射裝置的發射功率與天線的輻射能力非常重要。
Tx是發射(Transmits)的簡稱。無線電波的發射功率是指在給定頻段范圍內的能量,通常有兩種衡量標準:
功率單位mW(豪瓦)和dBm(分貝)的換算
1. dBm = 10 x log [功率mW] 2. mW = 10 [增益dBm / 10dBm]在"小功率"系統中(例如無線局域網絡設備)每個dB都非常重要,特別要記住"3dB法則",即:
1) 增加3dB: 增加一倍功率 2) 降低3dB: 降低一半功率
功率每增加一倍,電平值增加 3dBm
對于AP、或本地網卡的信號強度的測量,有很多工具可以完成
1. 頻譜分析儀(專業設備): 淘寶上很多,幾千塊一套 2. Inssider(下圖)0x3: 天線的支持(信號增益、類型)
天線對于一個無線網卡的性能來說是至關重要的,雖然常常它們看起來并不是那么重要,如果說有線寬帶之間進行連接的介質是電纜、或者光纖,那么對于無線網絡來說,空氣就是它的傳輸介質,而天線就相當于NIC網卡和空氣介質的"連接器"(作用類似于水晶頭)
在無線系統中,天線被用來把電流波轉換成電磁波,在轉換過程中還可以對發射和接收的信號進行"放大",這種能量放大的度量成為"增益(Gain)"。天線增益的度量單位為"dBi"。
由于無線系統中的電磁波能量是由發射設備的發射能量和天線的放大疊加作用產生,因此度量發射能量最好同一度量-增益(dB),例如,發射設備的功率為100mW(20dBm),天線的增益為10dBi,則發射總能量:
需要注意的是,我們對于"天線"這個詞可能會有先入為主的概念,像小時候玩的收音機上面看到的那種金屬棒,其實,從物理學的角度來看,"天線"應該是一個抽象的概念,它指一切可以匯聚、增益、并發送電磁信號的設備,我們可以這么理解:
天線通過聚集于網卡已經產生的信號來工作。網卡產生一個信號,形狀類似于一個三維球體。全向天線的工作基本上是接收這種球體并"壓扁"成更多圓圈,這樣在水平面的信號傳的更遠,但垂直方向上沒這么遠。更重要的是,全向天線的增益越高,圓形圖就"越扁平"。定向天線以同樣的方式工作,犧牲一個方向的信號,以獲取另一個方向的信號 關于天線的物理特性的研究,antenna提供這方面的更多理論知識 http://www.antenna-theory.com/cn/basics/main.php天線可以大致分為兩種類型:
1. 全向天線(Omnidirectional Antenna) 在所有方向上擴大范圍的天線1) 基站天線: 9~12dBi的增益 通常有白色PVC管,長30或48英寸。天線越長,增益越高2) 磁性底座天線(magnetic mount antennas): 5~9dBi的增益戰爭駕駛(wardriving)中效果最好 2. 定向天線 向一個指定方向擴大范圍的天線1) 波導天線(cantennas)http://www.antenna-theory.com/cn/antennas/aperture/slottedWaveguide.php2) 引向發射天線: 波導天線的提升3) 板狀天線(panel antenna)http://baike.baidu.com/view/8695946.htm 主要用于室外信號覆蓋。無論是GSM 還是CDMA, 板狀天線是用得最為普遍的一類極為重要的基站天線 4) 八木天線(yagi antenna)http://zh.wikipedia.org/wiki/%E5%85%AB%E6%9C%A8%E5%A4%A9%E7%BA%BF 外形十分酷炫,淘寶上有很多可以買5) 拋物面天線(parabolic antenna)http://baike.baidu.com/view/880872.htm提供最大的增益、最窄的波束。由拋物面反射器和位于其焦點處的饋源組成的面狀天線叫拋物面天線。我們在電視上看到的雷達的那個圓盤就是這種天線0x4: 靈敏度
靈敏度同樣是一個我們需要關注的維度,我們在使用電流表的時候都會聽說過一個概念,這個設備的靈敏度是多少,表明這個設備能"感知"到最小的電流是多少,對于天線來說也一樣,靈敏度決定了我們的無線網卡能夠接收到多么微弱的信號,即能收到多遠的AP發來的數據包,這在進行黑客攻擊的時候很重要,因為這意味著你能夠在原理目標更遠的距離發起無線攻擊。
我們通常用dBm(分貝)測量靈敏度,負數越小越好(即-90表明比-80更靈敏),大家可以畫一個Log函數圖,就會發現知道原理了(靈敏度功率越小、負值越大、感知靈敏度越好) 在天文學名詞庫中可以找到關于"天線靈敏度"的定義 http://www.lamost.org/astrodict/dict_details.php?U=80780x4: 頻率范圍
這里的頻率指的是無線網卡的工作頻段,IEEE802.11下的無線信號工作在
1. 2.4GHz頻段 2. 4.9/5.8 GHz頻段頻率本身只是表示電磁波的"每秒震動次數",并沒有其他的意義,2.4和4.9/5.8GHz的傳輸速度都是一樣的,并且它們互相不干擾。注意,因為互相不干擾,所以意味著你的設備如果是2.4GHz工作模式的,則不能接收工作在5GHz下的數據包,同樣,市場主流賣的無線網卡、卡皇都是2.4GHz的,而5GHz的設備國外的Shop上很多,但價格相對較貴。所以從某種程度上來說,將工作頻率切換到5GHz是一種對抗無線嗅探攻擊的手段?
0x5: 工作信道(是否支持跳頻)?
Wi-Fi總共有14個信道(IEEE的標準,各個國家的具體標準稍有不同)
1. IEEE 802.11b/g標準工作在2.4G頻段,頻率范圍為2.400—2.4835GHz,共83.5M帶寬 2. 劃分為14個子信道 3. 每個子信道寬度為22MHz 4. 相鄰信道的中心頻點間隔5MHz 5. 相鄰的多個信道存在頻率重疊(如1信道與2、3、4、5信道有頻率重疊) 6. 為了保證信道的不干擾性,整個頻段內只有3個(1、6、11)互不干擾信道(注意下圖中紅色的半圓的中間對應的數字)其他國家的信道劃分
1. 中國: 2.4GHz-2.4835GHz(13信道) 2. 北美/FCC: 2.412-2.461GHz(11信道) 3. 歐洲/ETSI: 2.412-2.472GHz(13信道) 4. 日本/ARIB: 2.412-2.484GHz(14信道)0x5: 支持的模式
目前主流的無線網卡的工作模式有:
11b: 1/2/5.5/11Mbps 11g: 6/9/12/18/24/36/48/54Mbps 11n: 最高可達150Mbps在這篇文章的開頭,列舉目前802.11家族的工作模式
http://www.cnblogs.com/LittleHann/p/3700357.html在網卡選型的時候,看清楚工作模式很重要,因為在和AP進行連接交互的時候,會有一個工作模式的協商過程:
只有客戶端和AP都支持某個工作模式,雙方才能繼續進行連接。
這很像SSL、TLS初始認證的時候會進行加密算法的協商過程0x6: 是否支持USB接口
無線網卡是否有外設的USB接口
0x7: 價格
關于無線網卡的選型,可以參考下面的鏈接
網卡性能對比: http://wireless.kernel.org/en/users/Devices FCC認證查詢(進入美國市場的電子產品必須通過FCC認證,該認證具有強制性): http://transition.fcc.gov/oet/ea/fccid/?
?
2. 無線攻擊第一步: "網絡AP探測"、掃描器的使用
了解了無線網卡的選型之后,我們就作好了進行無線安全研究的基礎準備工作,接下來要開始無線安全研究的第一步,也是我們面對的第一個問題,如何找到我們的攻擊目標,即"網絡AP探測(服務發現)",要完成這個目標,我們需要借助掃描器(Scanner).
我們前面說過,基本上來說,無線安全軟件需要完成如下幾個功能:
1) 使用"監控模式"捕獲指定"信道"上的無線數據報,達到嗅探的目的 2) 數據包注入,即重放任意數據的數據幀,主要有如下目的2.1) 造成DDOS效果,使流量增加,加速WEP攻擊2.2) 注入解除認證(deauthentication)數據包,使用該數據包可以把用戶和AP斷開,從而獲取WPA的4次握手數據包,然后可進行離線字典、或彩虹表密碼破解 3) 主動發送"探測數據包",進行主動的服務(SSID)發現 4) 信號干擾接下來,我們逐一學習一下要完成這些目標會用到的軟件、以及它們的原理
0x1: 數據包嗅探
數據包嗅探軟件監視給定"信道"上數據包的無線信號,它自身不發送數據包。相反,它們使用監控模式(Monitor Mode)監聽信道上的所有數據包。
把一個無線網卡設置為"監控模式"類似于把一個正常的有線以太網卡設置為混雜模式(Promiscuous Mode)。在這種情況下,可以看到所有走過"線纜"(或信道)的數據包。
然而,它們之間的關鍵的區別是:
數據包嗅探掃描工具的原理
1) 將無線網卡置于監控模式 2) 掃描程序進入一個循環狀態,不停地從網卡讀取數據包、進行分析、同時更新用于界面使用Kismet來進行無線嗅探
Kismet不僅是一個掃描工具,Kismet其實是一個802.11協議數據包捕獲、分析的框架(Kismet捕獲到的數據包可以轉儲下來,給其他的分析框架使用)。它由3個部分組成:
1. kismet_server 2. kismet_client 3. kismet(ELF): 一個可執行文件,它kismet進行典型配置在BT5下輸入Kismet,Kismet會自動檢測合適的源網卡
點擊菜單欄的"S"可以對AP進行排序,點擊特定的SSID,可以查看詳細信息:
0x2: 數據包注入
Google上有很多"WEP密碼破解"、"WPA"、"WP2密碼破解"、也有很多自動化工具(如wifite、fern-wifi-cracker),它們破解的原理就是數據包注入
使用Airodump-ng系列軟件來進行無線數據包注入、密碼破解
1. WEP 通過靜默捕獲IVS數據包,或主動注入ARP數據包(這是一種數據幀),加快當前信道中的流量來加速破解,最終的目的是捕獲足夠多的IVS數據包,從而利用RC4算法的缺陷來逆向出key example: ifconfig wlan1 up airmon-ng start wlan1 airodump-ng mon0 airodump-ng --ivs -w longas -c 6 mon0 //這個時候理論上可以等待抓包抓到足夠數量就可以了,但是為了加快抓包速度,可以采用arp注入的方式來加快抓包 //重新打開一個新的console,然后執行arp注入命令 aireplay-ng -3 -b 08:10:77:CF:C9:62 -h CC:AF:78:26:77:BD mon0 //抓包結束后,確保抓到了足夠熟練的IVs包,開始破解 aircrack-ng longas-01.ivs 如果抓到的IVs包數量不夠,會遇到破解失敗,最好能抓到2W以上的包數量2. WPA 通過主動注入Deanthentication/Disassociation數據包(它們屬于管理幀,試圖告訴AP某個客戶端想斷開連接,顯然這并不是這個客戶端的本意),來強制斷開目標客戶端和AP的Wi-Fi,連接,當目標試圖和AP進行重連接的時候,黑客捕獲握手4次包(Handshak Package),然后利用離線字典、或者彩虹表進行暴力破解 example: ifconfig wlan0 up airmon-ng start wlan0 airodump-ng mon0 //開始捕獲無線數據包 airodump-ng --ivs -w longas -c 6 mon0 //另開一個console,進行Deauth攻擊,為了捕獲握手包 aireplay-ng -0 1 -a 08:10:77:CF:C9:62 -c CC:AF:78:26:77:BD mon0 //在右上角看到了 WPA handshake提示后,表示抓到了握手包,開始破解WPA-PSK aircrack-ng -w /pentest/passwords/wordlists/test.lst longas-01.ivs要注意的一點是,WEP中注入的是數據幀,而WPA破解中注入的是管理幀,關于IEEE802.11幀的格式,我在另一篇文章中總結了一下
http://www.cnblogs.com/LittleHann/p/3700357.html0x3: 服務發現、主動發送探測數據包
為了在一定程度上對抗無線嗅探攻擊,很多的無線網絡AP采取了一些配置:
1. 開啟隱藏模式(Hidden Mode)、或非廣播模式(nonbroadcasting Mode)。這些網絡在其"信標幀"數據包(一種管理幀)中并不包括SSID值(網絡名稱),它們也不回復廣播類的探測請求 2. MAC地址過濾,只接收指定執行范圍內的MAC地址的廣播探測請求 這樣造成的直接結果就是我們在"寬帶連接列表"中看不到對應的SSID(WiFi名稱)針對這種防御手段,掃描器也采取了相應的技術來獲得隱藏的SSID
1. 通過學習802.11的幀結構,我們知道802.11的管理幀是不需要授權的,所以,我們要做的就是把AP、或者給目標用戶發送一個"解除關聯數據幀(Disassociation Frame)",這樣,目標用戶就會和AP嘗試進行"重新關聯",這個管理幀會包含SSID。 這同時也是WPA破解的基本條件,這本質上屬于協議上的漏洞,IEEE協會似乎已經開始著手修補,但我目前還沒有看到有新版本的協議格式發布 2. 除了在Beacon管理幀有有SSID,在普通的數據幀、控制數據發送的控制幀中同樣會包含SSID(明文),可以通過捕獲這類數據幀來獲取SSID,并加入UI的顯示列表?
?
3. 后記
無線的安全研究有蠻多方向的,Google上比較多的文章是密碼破解、工具使用方向的,講的都很精彩,除此之外,個人覺得還可以和傳統的內網安全問題結合起來,比如說:
1. 偽AP,流量劫持: 能達到和ARP投毒相似的效果 2. MIT中間人攻擊 3. 基于中間人攻擊的SSL明文竊取 http://www.freebuf.com/articles/web/5636.html http://www.freebuf.com/tools/10530.html http://www.freebuf.com/articles/web/5929.html http://www.freebuf.com/articles/network/29288.html?
?
Copyright (c) 2014 LittleHann All rights reserved
?
?
?
總結
以上是生活随笔為你收集整理的无线安全入门、芯片选型、扫描器使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDUTOJ 【1166】打印直角三角
- 下一篇: Gradle 依赖项管理