手機搜到一個Wi-Fi熱點但未接入,Wi-Fi會記錄手機無線網卡的MAC地址嗎?
能否認為手機或筆記本電腦等其他帶無線網卡的設備在探測附近的wifi熱點時,其實就是在通過無線電波使用數據鏈路層協議進行廣播,只要手機能探測到wifi熱點,哪怕手機還未真正接入這個熱點,這個熱點其實已經和手機基于二層協議進行了數據鏈路層的數據交互,只不過如果真正接入熱點后,則是再進一步分配了IP地址,并進行網絡層數據傳輸?
也就是說,一個未接入的wifi熱點,哪怕我沒有接入他,他也可以記錄下我手機的無線網卡MAC地址了?

是的,只要手機或筆記本無線網卡主動發出Probe Request信號,且成功收到Probe Response,Wi-Fi網絡一定發現了接入的Station。而Probe Request是攜帶802.11 MAC Header的,那么Station的MAC地址就記錄了下來。
有同學會說,如果一個AP將SSID隱藏起來,周期性廣播的Beacon信標SSID為空白,將AP設置成:如果Station的Probe Request的SSID為空白,AP將不予以理睬。是不是就無法記錄Station的MAC地址了?
一樣會記錄,不理睬是一回事,但是該記錄還是會記錄,Probe Request里有MAC信息啊。
還有同學要說,如果Station 發出的Probe Request信號的信道(channel),沒有任何一個AP工作在此信道上,包括正常工作的AP以及全職工作在Monitor Mode的AP,是不是就無法記錄Station 的MAC地址了?
是的,恭喜。
但是不要高興得太早,Station每個信道都會輪流發送三個Probe Request,用來探測是否有AP熱點,所以遲早會被發現的。換句話說,只要一臺Station發送Probe Request信號,遲早會被發現的。
通常只要手機或電腦顯示AP熱點列表,說明兩件事:
- AP熱點被Station發現了
- Station同樣也被AP發現了
也許有同學會有不同的意見,如果無線網卡一直在Listening,即只聽不說,通過被動接收Beacon信標,是不是可以發現AP,而不被AP發現?
剛開始是這樣,但是你卻無法控制無線網卡的行為,網卡一旦收集了多個Beacon信標,會從中挑選RSSI最優的來嘗試連接,一旦Authentication報文發出,就露出了MAC地址。
可是,被動偵聽Beacon發現AP的存在是一個漫長的過程,即使空中有Beacon信標在飛舞,只要無線網卡沒有tune到該信道,那么Beacon就如同噪音一樣擦肩而過。為了縮短發現AP的存在,通常都會嘗試主動發出Probe Request來探測AP的存在。
以上談論是無線網卡兩種常用工作模式的一種,Managed Mode。這是無線網卡的標準工作模式,也是手機、電腦無線網卡的正常使用模式。
無線網卡還有一種監控模式,即Monitor Mode。監控模式最大的特點是,只聽不說,只看不說,秘密監控無線信號的交互。
由于需要監控無線網絡,所以該模式還有一個特點,只要可以解碼的信號一律接收。而ManagedMode網卡卻不是這樣的,只有目的MAC地址是自己的、廣播MAC地址、感興趣的組播MAC地址才會接收。
所以一旦無線網卡工作在Monitor Mode,是不會發出任何報文的,也不會被無線網絡所發現。但是這種無線網卡需要特定的網卡驅動程序才能工作。
通過上文的介紹,只要網卡發出報文,遲早會被網絡監控到。一旦你發現手機上已經有了熱點列表,說明手機已經被無線網絡發現了。如果不被網絡發現,你的網卡只要不發出報文即可,但是這也意味著你的手機上不了網。