在網路安全領域中,無線網路偵察是滲透測試的重要環節。瞭解如何使用工具收集目標網路的資訊,對於評估網路安全性至關重要。本文將探討如何使用 aircrack-ng 和 BlueZ 工具套件進行 Wi-Fi 和藍牙網路偵察。首先,我們會介紹如何使用 airmon-ng 將無線網路卡設定為監聽模式,接著使用 airodump-ng 捕捉周圍的 Wi-Fi 訊號,並分析其輸出結果,包含 BSSID、ESSID、通道等關鍵資訊。然後,我們會逐步說明如何準備破解 Wi-Fi 密碼,包含使用 aireplay-ng 進行 deauth 攻擊以及使用 aircrack-ng 進行密碼破解。此外,本文也會介紹藍牙技術的基本概念,並示範如何使用 BlueZ 工具套件中的 hciconfig、hcitool 和 sdptool 進行藍牙裝置掃描、服務發現以及可達性檢測。最後,我們會提供一些實務案例和注意事項,提醒讀者在合法授權的環境下進行測試,並遵守相關的法律法規。
使用 aircrack-ng 進行 Wi-Fi 偵察
在進行Wi-Fi滲透測試時,瞭解網路的基本資訊是至關重要的。iwconfig 可以幫助我們取得網路的ESSID(即無線網路名稱)、工作頻率以及接入點(AP)的MAC地址等關鍵資訊。這些資訊對於接下來的攻擊操作至關重要。例如,透過 iwconfig,我們可以發現網路名稱為"Hackers-Arise",並且接入點在2.452GHz頻率上執行。同時,也可以獲得連線的AP的MAC地址(00:25:9C:97:4F:48)。
在實際的Wi-Fi攻擊中,我們需要取得更多細節,例如接入點(BSSID)、客戶端的MAC地址以及接入點所在的通道。為了取得這些資訊,我們可以使用aircrack-ng套件中的工具。
將網路卡設定為監聽模式
首先,我們需要將無線網路卡設定為監聽模式。監聽模式類別似於有線網路卡的混雜模式,能夠捕捉所有經過的無線流量。
要將無線網路卡設定為監聽模式,可以使用 airmon-ng 命令。語法非常簡單:
airmon-ng start|stop|restart interface
假設無線網路卡介面名稱為 wlan0,則可以使用以下命令將其設定為監聽模式:
kali > airmon-ng start wlan0
執行此命令後,系統可能會提示有一些程式可能會干擾監聽模式的正常工作。可以使用以下命令停止這些程式:
kali > airmon-ng check kill
內容解密:
- 命令語法:
airmon-ng start|stop|restart interface是用來管理無線網路卡監聽模式的指令。 - 指令功能:將無線網路卡設定為監聽模式,使其能捕捉所有經過的無線流量。
- 實際案例:若要將
wlan0設為監聽模式,就會執行airmon-ng start wlan0。 - 注意事項:確認已經停止所有可能幹擾監聽模式執行的程式。
使用 airodump-ng 取得關鍵資料
將無線網路卡設定為監聽模式後,我們可以使用 airodump-ng 命令來捕捉和顯示附近AP廣播的關鍵資料以及連線到這些AP或附近區域的客戶端。命令語法如下:
airodump-ng 介面名稱
例如:
kali > airodump-ng wlan0mon
執行此命令後,無線網路卡會捕捉並顯示附近所有無線流量中的重要資訊。
內容解密:
- 命令語法:
airodump-ng 介面名稱用來捕捉及顯示接入點及客戶端的關鍵資料。 - 指令功能:從無線流量中提取 BSSID(AP 或客戶端 MAC 地址)、PWR(訊號強度)、ENC(加密型別)、CH(通道)等資料。
- 實際案例:若要開始捕捉並顯示這些資料,就會執行
airodump-ng wlan0mon。 - 注意事項:需要確認無線網路卡已設定為監聽模式。
分析 airodump-ng 輸出
執行 airodump-ng 命令後,輸出會分為上下兩部分:
- 上部分:顯示廣播AP的資訊,包括BSSID、訊號強度、探測到的信標幀數量、資料吞吐量、通道號、理論吞吐量上限、加密協定、加密所用密碼、認證型別以及ESSID。
- 下部分:顯示客戶端資訊,例如哪些客戶端與哪個AP關聯。
假設輸出結果如下:
CH 9][ Elapsed: 28 s ][ 20180208 10:27
BSSID PWR Beacons #Data #/s CH MB ENC CIPHER AUTH ESSID
01:01:AA:BB:CC:22 1 4 26 0 10 54e WPA2 CCMP PSK HackersArise
這表明有一個AP名稱為“HackersArise”,使用WPA2加密協定和CCMP密碼。
下一步:準備破解Wi-Fi密碼
取得了BSSID、客戶端MAC地址以及AP所在通道等資訊後,我們就有了破解Wi-Fi密碼所需的基本資料。接下來,我們需要準備一個密碼字典檔案來進行暴力破解。具體步驟如下:
在第一個終端中執行
airodump-ng命令來捕捉特定AP上的資料包:airodump-ng -c [channel] --bssid [BSSID] -w [output file prefix] [interface]比如:
airodump-ng -c 10 --bssid 01:01:AA:BB:CC:22 -w HackersArisePSK wlan0mon在第二個終端中執行
aireplay-ng命令來斷開與AP連線的所有客戶端並強制他們重新認證。這會讓他們在WPA2-PSK四向握手中交換密碼雜湊值。aireplay-ng --deauth [number of deauth packets] -a [BSSID] [interface]在第三個終端中執行
aircrack-ng命令來破解捕捉到的雜湊值:aircrack-ng -w [path to wordlist] -b [BSSID] [capture file]
注意事項
雖然本文介紹瞭如何使用 aircrack-ng 工具套件來進行Wi-Fi偵察和破解,但這些操作應僅在合法且授權的環境中進行。未經授權的Wi-Fi攻擊可能違反法律法規並且具有嚴重後果。
PlantumlWiFi滲透測試流程
小段落標題:圖表說明
此圖示展示了 Wi-Fi 滲透測試流程:從取得基本網路資訊開始,經過將網路卡設定為監聽模式及使用 airodump-ng 捕捉資料等步驟後,分析所獲資料並準備破解 Wi-Fi 密碼。最後一步是執行實際破解操作。
內容解密:
圖表語法:此圖表是 Plantuml 語法撰寫而成。 圖表功能:清晰展示 Wi-Fi 滲透測試過程及各步驟間邏輯關係。 詳細說明:從取得網路資訊開始至最終執行破解操作之完整流程。 注意事項:請保證每個步驟邏輯清晰且有順序依序進行。
藍牙探測及連線技術
現代幾乎每一個數位裝置、手機及系統都內建了藍牙功能,包括電腦、智慧型手機、iPod、平板電腦電腦、音箱、遊戲控制器、鍵盤等。掌握藍牙技術的駭客攻擊方法,可以篡改裝置上的任何資訊,控制裝置並傳送不必要的資訊。
藍牙技術簡介
藍牙是一種低功耗的近距離通訊協定,操作頻率範圍在2.4–2.485GHz之間,使用擴頻技術和頻率跳躍達1,600次每秒(這種頻率跳躍是一種安全措施)。藍牙技術由瑞典愛立信公司於1994年開發,名稱取自於10世紀丹麥國王哈拉爾·藍齒(當時瑞典和丹麥是同一個國家)。
藍牙規範的最小範圍是10米,但製造商可以在其裝置中實作無上限的範圍。許多裝置的範圍達到100米,甚至更遠。使用特殊天線可以進一步延長這個範圍。
連線兩個藍牙裝置
連線兩個藍牙裝置稱為配對。基本上任何兩個藍牙裝置都可以連線,但只有在它們處於可發現模式時才能配對。處於可發現模式的藍牙裝置會傳輸以下資訊:
- 名稱
- 類別
- 服務列表
- 技術資訊
當這兩個裝置配對時,它們會交換一個秘密鑰或連結鑰。每個裝置都會儲存這個連結鑰以便在未來的配對中識別對方。
每個裝置都有一個獨特的48位元識別碼(類別似於MAC地址),通常還有一個製造商指定的名稱。這些資料對於我們識別和存取裝置非常有用。
藍牙掃描與偵查
Linux有一個名為BlueZ的藍牙協定堆積疊實作,我們將使用它來掃描藍牙訊號。大多數Linux發行版,包括Kali Linux,都預設安裝了BlueZ。如果你的系統沒有安裝,可以使用以下命令從儲存函式庫中找到並安裝:
apt-get install bluez
BlueZ提供了幾個簡單的工具來管理和掃描藍牙裝置:
- hciconfig:這個工具類別似於Linux中的
ifconfig,但適用於藍牙裝置。我們可以使用它來啟動藍牙介面並查詢裝置規格。 - hcitool:這是一個查詢工具,可以提供裝置名稱、裝置ID、裝置類別和裝置時鐘資訊,使裝置能夠同步工作。
- hcidump:這個工具允許我們抓取藍牙通訊資料。
掃描藍牙介面卡
首先,我們需要檢查我們使用的系統中的藍牙介面卡是否被識別並啟用,以便我們可以使用它來掃描其他裝置。我們可以使用內建的BlueZ工具hciconfig來完成這項工作。
hciconfig
如下所示:
hci0: Type: BR/EDR Bus: USB
BD Address: 10:AE:60:58:F1:37 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN INQUIRY
RX bytes:131433 acl:45 sco:0 events:10519 errors:0
TX bytes:42881 acl:45 sco:0 commands:5081 errors:0
我們可以看到我的藍牙介面卡被識別出來了,MAC地址為10:AE:60:58:F1:37。該介面卡已命名為hci0。接下來的一步是檢查連線是否啟用,我們也可以使用hciconfig提供名稱和up命令來完成:
hciconfig hci0 up
如果命令成功執行,我們應該看到沒有輸出,只有新提示符。
掃描藍牙裝置
現在我們已經知道介面卡已經啟動,我們可以使用BlueZ套件中的另一個工具hcitool來掃描其他範圍內的藍牙裝置。
首先,讓我們使用工具中的掃描功能來查詢正在傳輸發現信標(即處於發現模式)的藍牙裝置:
hcitool scan
如下所示:
Scanning...
72:6E:46:65:72:66 ANDROID BT
22:C5:96:08:5D:32 SCHI535
在我係統中,hcitool找到了兩個裝置:ANDROID BT和SCHI535。根據您周圍有哪些裝置,您可能會看到不同的輸出結果。為了測試目的,請嘗試將手機或其他蓮託裝置設定為發現模式並檢視它是否會被掃描到。
收集更多關於偵測到的裝置資訊
現在讓我們使用查詢功能inq來收集更多關於檢測到的裝置資訊:
hcitool inq
如下所示:
Inquiring...
24:C6:96:08:5D:33 clock offset:0x4e8b class:0x5a020c
76:6F:46:65:72:67 clock offset:0x21c0 class:0x5a020c
這給了我們裝置的MAC地址、時鐘偏移和型別。型別指示你找到的是什麼型別的藍牙裝置,你可以透過存取Bluetooth SIG網站來檢視程式碼並瞭解它是什麼型別的裝置https://www.bluetooth.org/en-us/specification/assigned-numbers/service-discovery/。
檢索服務
sdptool
sdptool 是一個用於與 Bluetooth 裝置進行服務發現的命令列工具。它允許我們列出可用服務以及其相關屬性。例如:
sdptool browse <device_mac_address>
這樣可以讓你檢視特定蓮託裝置所提供之服務列表與詳細資料。
此圖示展示了一些基本步驟:
內容解密:
此圖示展示了一些基本步驟:
- 啟動BlueZ:首先必須確保BlueZ正確安裝並在Linux環境中啟動。
- 啟動蓮託介面:利用hciconfig啟動蓮託介面以開始進行各項操作。
- 掃描蓮託裝置:使用hcitool進行主要掃描作業以尋找附近可發現之蓮託裝置。
- 檢視蓮託服務:透過sdptool以深入分析蓮託裝置提供之服務與功能。
- 詳細資料分析:根據所收集之資料進行詳細資料分析以進行後續攻擊行動或進階操作。
藍牙服務掃描與裝置可達性檢測
藍牙服務發現與服務檢測
藍牙服務發現協定(SDP)是用於搜尋藍牙裝置提供的藍牙服務的協定。BlueZ提供了sdptool工具,用於瀏覽裝置的服務。值得一提的是,裝置不需要處於發現模式就可以被掃描。sdptool的基本語法如下:
sdptool browse MACaddress
SDP 應用程式流程圖
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 使用 aircrack-ng 與 BlueZ 進行無線網路偵察
package "網路架構" {
package "應用層" {
component [HTTP/HTTPS] as http
component [WebSocket] as ws
component [gRPC] as grpc
}
package "傳輸層" {
component [TCP] as tcp
component [UDP] as udp
component [TLS/SSL] as tls
}
package "網路層" {
component [IP] as ip
component [ICMP] as icmp
component [路由協議] as routing
}
package "鏈路層" {
component [Ethernet] as eth
component [WiFi] as wifi
component [ARP] as arp
}
}
http --> tcp
ws --> tcp
grpc --> tcp
tcp --> tls : 加密
tls --> ip
udp --> ip
ip --> routing
routing --> eth
routing --> wifi
eth --> arp
@enduml使用 sdptool 掃描藍牙裝置服務
以下是使用 sdptool 查詢早前檢測到的藍牙裝置的服務的示例:
kali > sdptool browse 76:6E:46:63:72:66
內容解密:
- sdptool browse:此命令用於瀏覽指定MAC地址的藍牙裝置提供的服務。
- 76:6E:46:63:72:66:這是目標藍牙裝置的MAC地址。
- Service RecHandle:這是服務記錄處理程式,用於唯一標識每個服務。
- Service Class ID List:列出了該裝置支援的服務類別ID。
- Protocol Descriptor List:列出了該服務使用的協定描述符,包括L2CAP和ATT協定。
透過這些資訊,我們可以瞭解該裝置支援哪些協定,並進一步分析其功能和潛在的互動方式。例如,如果發現該裝置支援ATT(低能量屬性協定),我們可以進一步探索其低能量藍牙功能。
檢測藍牙裝置可達性
一旦我們取得了附近所有藍牙裝置的MAC地址,我們可以向這些裝置傳送ping來檢測它們是否在範圍內,無論它們是否處於發現模式。這有助於確定這些裝置是否活躍且在範圍內。要傳送ping,我們使用l2ping命令,語法如下:
l2ping MACaddress
以下是針對早前發現的Android裝置傳送ping的示例:
kali > l2ping 76:6E:46:63:72:66 -c 4
內容解密:
- l2ping:此命令用於向指定MAC地址的藍牙裝置傳送L2CAP ping。
- 76:6E:46:63:72:66:這是目標藍牙裝置的MAC地址。
- -c 4:表示傳送4個ping包。
- Ping: 表示成功傳送了ping包,並接收到了回覆。
這些輸出表明該裝置在範圍內且可達。這一資訊非常重要,因為在進行任何進一步操作之前,我們必須確認該裝置是否可達。
無線裝置與連線性攻擊
無線裝置代表了連線性和攻擊技術的未來。Linux 提供了專門用於掃描和連線到WiFi無線接入點(AP)的命令。其中,Aircrack-ng套件包括airmon-ng和airodump-ng等工具,使我們能夠掃描並取得在範圍內無線裝置的關鍵資訊。BlueZ套件則包括hciconfig、hcitool等工具,用於掃描和收集資訊以攻擊在範圍內的藍牙裝置。此外,BlueZ還包含許多其他值得探索的工具。
驗證及實務案例
- ifconfig:用於檢視網路介面組態及狀態。
- iwconfig:用於檢視和組態無線網路介面。
- iwlist:用於檢視無線網路資訊及附近可用Wi-Fi AP。
- nmcli:NetworkManager命令列工具,用於管理網路連線。
- hciconfig和hcitool:分別用於組態和管理藍牙介面卡及掃描附近可發現藍牙裝置。
透過以上介紹與技術處理流程,玄貓希望能夠提供有價值且深度完整之資訊給所有閱讀者與技術愛好者們。