/1 前言/
最近酒店被曝出隐藏攝像頭的事情屢見不鮮,搞得大家人心惶惶,有圖為證,如下圖所示。
今天教大家一下如何用python分析出酒店裡的針孔攝像頭,讓你放心住酒店。
/2 原理介紹/
我們大家都知道,針孔攝像一般都很小,是以它不太可能含有儲存設備,都是通過連接配接酒店房間内的無線網,遠端傳輸給作案人,我們就從這方面入手,用Python的scapy子產品掃描區域網路内的所有裝置,并通過爬蟲找到該裝置生産廠商,以廠商來判斷該裝置是否為攝像頭。
所需環境:ubuntu、pyhton3.5、pycharm
/3 操作步驟/
實作步驟依賴環境較多,操作起來可能有些複雜,不過就當了解一下也是歐克的,具體的操作步驟如下。
1、用scapy子產品的scapy函數模拟構造ARP廣播包,代碼如下圖所示。
這個表示要向網段内的所有主機都詢問一下,說的通俗一點就是“請問網段内都有誰在啊”。
2、模拟在區域網路内發送。用scapy子產品模拟發送ARP廣播,代碼如下圖所示。
其中p是第一步構造的廣播包,wifi是本機的網卡名稱,timeout是發送時限。
3、傳回的兩個參數,ans包含兩類資料包(ARP請求包和ARP傳回資訊),請求包是第一步構造的包,傳回包是區域網路内主機的回應,如下圖所示。
包含該主機的ip位址和MAC位址,打碼的就是MAC位址;unans傳回True或者False,代表是否發送成功。
4、解析傳回的資料包。這一步主要是為了從上一步的資料包中把主機MAC位址取出來,雖然看起來很複雜,但實作起來比較簡單,代碼實作如下圖所示。
其中s和r分别是上步所說的請求包和傳回包;r[ARP].hwsrc即是傳回包中主機的MAC位址。
5、查詢MAC位址廠商。由于上網裝置MAC位址的唯一性,是以每家廠商的前6位MAC位址都是固定的,這樣一來,我們就可以根據MAC位址反查出廠商,在網上找了一家便民查詢網的網站,網址為
https://mac.51240.com/,如下圖所示。
6、隻需輸入MAC位址就會出現次MAC位址的詳細資訊,如下圖所示。
7、我們需要的是它的組織名稱,分析一下此網站,是個最簡單的靜态網頁,如下圖所示。
8、也不用解析網頁了,直接正則比對,代碼如下圖所示。
9、運作程式,得到如下圖所示的結果。
從上圖可以看到檢測的裝置有4台主機,1台TP-LINK路由器,1個REALTEK外置網卡,2台華為手機,這種情況應該是正常的。如果是出現攝像頭生産廠商類的MAC位址,就要小心了,馬上去可疑地方找找吧!
/4 總結/
本文主要介紹了使用Python代碼檢測酒店裡的針孔攝像頭,實作原理是用scapy子產品模拟發送ARP廣播,擷取裝置的Mac位址,借助第三方平台查詢裝置的具體資訊,檢測周邊環境是否正常。
本文涉及的Pyhton代碼,我已經上傳到Github了,感興趣的小夥伴們,可以去看看,覺得不錯,記得給個Star噢!在公衆号背景回複“攝像頭”三個字,擷取代碼。
最後希望大家在外入住的時候,都平安順利!