標籤:無線安全 wifi嗅探 python raw-socket 無線網路
1. 介紹
隨著無線網路的廣泛普及,人們越來越頻繁的使用無線網路,他改變了人們的生活。現在很多人走到一個地方,首先要問的第一句就是“這裡有沒有WIFI?”但隨之出現的無線網路安全問題卻沒有引起人們足夠的重視。在一些公眾場合,例如機場,火車站,咖啡廳,餐館等場所都會設定一些免費的無線WIFI供顧客使用,但是他們的安全性是非常不可靠的。WIFI釣魚,偽造熱點,流量劫持常常在這鐘場合下被用來攻擊福士場所下串連WIFI的人,從而造成可怕的資訊泄露事件。
本片文章主要WIFI熱點廣播訊號的BeaconFrame和使用簡潔的Python對AP的SSID 進行嗅探。
2. 瞭解BeaconFrame2.1 一個簡單的無線網路。
有些筆記本,智能手機,pad等智能終端通過無線方式接入無線熱點(AP)來串連互連網。攻擊人使用一台電腦和一個無線網卡就可以進行攻擊。
2.2 瞭解WLAN包的類型
有三種包的類型:
2.3 wireshark抓取BeaconFrame進行分析。
把usb無線網卡接入Kali中,開啟監聽模式。
“`
# ifconfig wlan0 up
# airmon-ng start wlan0
“`
結束相關進程,提高監聽的穩定性。並查看監聽介面的情況。
啟動wireshark,並用mon0介面進行監聽。
# wireshark &
啟動之前,選擇mon0.
選擇一個Beacon Frame類型的包進行查看。
可以看到這個BeaconFrame廣播幀是由“lyc”熱點發的。
3. Python使用RAW sockets 嗅探WIFI的SSID
raw socket,即原始通訊端,可以接收本機網卡上的資料幀或者資料包,對與監聽網路的流量和分析是很有作用的。使用raw socket傳統意義上講並不是一個好主意,但是卻讓你在低層次上接觸網路介面,可以直接擷取所有的包。
vim開啟ssniffer.py檔案,將一下python代碼寫入:
#!/usr/bin/env pythonimport socketrawSocket = socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.htons(0x0003))rawSocket.bind(("mon0",0x0003)) #綁定mon0介面apList = set()while True: pkt = rawSocket.recvfrom(2048)[0] #通過wireshark抓包分析可知BeaconFrame 的frame control為0x80,也就是subtype為8 if pkt[26] == "\x80": if pkt[36:42] not in apList and ord(pkt[63]) > 0: apList.add(pkt[36:42]) # packet的36到42位元組儲存AP的mac地址 print "SSID: %s AP‘s MAC address: %s" % (pkt[64:64+ord(pkt[63])],pkt[36:42].encode(‘hex‘))
儲存,加可執行許可權,並執行。
“` # chmod +x ssniffer.py
# ./ssniffer.py
python只需要10來行代碼就可以搞定了,是不是很強大。
我們用airodump-ng命令驗證一下結果,
# airodump-ng mon0
哈哈,最後說一句:“have fun, enjoy !!!”
無線網路安全之Python使用RAW sockets 嗅探WIFI的SSID