در این مقاله می خواهیم روشی برای بدست آوردن ssid ها یا نام wifi ها یا به قولی یک اسنیفر اسامی و دیوایس های وایرلس اطراف را درست کنیم برای این کار باید با روش و انواع packet هایی که یک دیوایس ارسال میکند آشنا باشیم یکی از دیتا هایی که در شبکه های وایرلس رد و بدل میشود packet های برودکست است پس ما با استفاده از این نوع از packet سعی در بدست آوردن نام وای فای ها (wifi) های اطراف میکنیم یا به اصطلاح ssid آنها : برای شروع مثل همیشه ما اول از همه کتابخانه ها را import میکنیم
import sys from scapy.all import * ssidd = set()
اینجا ما باید یک هندلر برای پکت ها تعریف کنیم .
def packetHandler (pkt):
بعدش باید یک اسنیفر بسازیم با یکسری آرگومان مثل کارت شبکه
sniff (iface=sys.argv[1],count=int(sys.argv[2],prn = packetHandler))
تا اینجا چیز خیلی سختی نداشتیم الان باید ما توی تابع یسری موارد را قرار دهیم به این شکل که در صورتی که پکت ما فریم بیکان بود
if pkt.haslayer(Dot11Beacon):
در scapy شل تعاملی Dot11Beacon از قبل ایجاد شده و ما می توانیم از آن استفاده کنیم سپس pkt.info دارای مقدار ssid می باشد باید بررسی کنیم ایا ssid استخراج شده در متغیر ssidd وجود دارد یا نه اصلا آیا وجود دارد یا نه ؟
if (pkt.info not in ssids) and pkt.info :
در صورتی که شرط درست باشه سه مقدار len متغیر که ست کردیم ssidd مک آدرس و مقدار ssid بدست اومده رو پرینت میکنه
print len(ssidd),pkt.addr3,pkt.info
در آخر هم مقدار ssid رو به متغیر ssids اضافه میکنیم :
ssids.add(pkt.info)
اگه میخوای در رابطه با این موضوع بیشتر بدونی حتما به این لینک سر بزن :)
امیداورم مفید واقع شده باشه براتون