文章來源 :公眾號Python爬蟲與數據挖掘
前言
近年來酒店被爆出攝像頭事件屢見不鮮,搞得大家人心惶惶,上網一搜都出都是

今天教大家一下如何用python分析出酒店里的針孔攝像頭,讓你放心住酒店。
原理介紹
我們大家都知道,針孔攝像一般都很小,所以它不太可能含有存儲設備,都是通過連接酒店房間內的無線網,遠程傳輸給作案人,我們就從這方面入手,用Python的scapy模塊掃描局域網內的所有設備,並通過爬蟲找到該設備生產廠商,以廠商來判斷該設備是否為攝像頭。
所需環境:Linux、pyhton3.5、pycharm
操作步驟
實現步驟依賴環境較多,操作起來可能有些復雜,不過就當了解一下也是歐克的,具體的操作步驟如下。
構造ARP廣播包
用scapy模塊的scapy函數模擬

這個表示要向網段內的所有主機都詢問一下,說的通俗一點就是“請問網段內都有誰在啊”。
模擬在局域網內發送
用scapy模塊模擬發送ARP廣播

其中p是第一步構造的廣播包,wifi是本機的網卡名稱,timeout是發送時限。
返回參數解讀
返回的兩個參數,ans包含兩類數據包(ARP請求包和ARP返回信息),請求包是第一步構造的包,返回包是局域網內主機的回應,如下圖所示。

包含該主機的ip地址和MAC地址,打碼的就是MAC地址;unans返回True或者False,代表是否發送成功。
解析返回的數據包
這一步主要是為了從上一步的數據包中把主機MAC地址取出來,雖然看起來很復雜,但實現起來比較簡單,代碼實現如下圖所示。

其中s和r分別是上步所說的請求包和返回包;r[ARP].hwsrc即是返回包中主機的MAC地址。
查詢MAC地址廠商
由於上網設備MAC地址的唯一性,所以每家廠商的前6位MAC地址都是固定的,這樣一來,我們就可以根據MAC地址反查出廠商,在網上找了一家便民查詢網的網站,網址為https://mac.51240.com/,如下圖所示。

獲取MAC地址的詳細信息
只需輸入MAC地址就會出現次MAC地址的詳細信息

分析組織名稱
我們需要的是它的組織名稱,分析一下此網站,是個最簡單的靜態網頁,如下圖所示。

正則匹配獲取數據

運行程序

從上圖可以看到檢測的設備有4台主機,1台TP-LINK路由器,1個REALTEK外置網卡,2台華為手機,這種情況應該是正常的。如果是出現攝像頭生產廠商類的MAC地址,就要小心了,馬上去可疑地方找找吧!
總結
本文主要介紹了使用Python代碼檢測酒店里的針孔攝像頭,實現原理是用scapy模塊模擬發送ARP廣播,獲取設備的Mac地址,借助第三方平台查詢設備的具體信息,檢測周邊環境是否正常。
闖關完成即可找喵醬老師領取本文源代碼~
