معرفی ابزار DHCPig

تاریخ انتشار : 2020/07/19 | نویسنده : kernel-panic

معرفی ابزار DHCPig

 

در این پست به حمله DHCP starvation می­پردازیم و خواهیم دید که چگونه مهاجم با کمک حمله مذکور، DHCP Server موجود در شبکه را از دسترس خارج می ­نماید و در نهایت کاربران امکان گرفتن IP را نخواهند داشت.

اگر بخواهیم تعریف مختصری از DHCP داشته باشیم، می ­توانیم بگوییم که DHCP به دستگاه­ هایی که دارای کارت شبکه فعال می ­باشند، اجازه می ­دهد تا تنظیمات شبکه، اعم از آدرس ­های IP، Default gateway، DNS Server و ... را به صورت خودکار دریافت نمایند.

به ارسال تعداد زیادی از بسته ­های DHCP Discovery (به صورت Broadcast) برای DHCP server شبکه حمله DHCP Starvation می­گویند. به این صورت که مهاجم به ازای هر درخواست، یک آدرس MAC جعلی تولید می­ نماید و به عنوان آدرس MAC مبدا بسته قرار می­ دهد. از آن جایی که وظیفه DHCP Server، پاسخ به بسته­ های DHCP Discovery است، شروع به پاسخ بسته­ های جعلی ارسال شده می کند که هر کدام منجر به تخصیص IP توسط DHCP Server می ­شود. در نتیجه به دلیل تعداد بالای این بسته­ ها، DHCP Pool خالی می­شود و هیچ IP تخصیص نیافته ای در DHCP Pool یافت نمی­شود. در این زمان اگر دستگاه جدیدی وارد شبکه شود، DHCP Server قادر به تخصیص IP و دیگر تنظیمات شبکه به آن، نمی­ باشد.

برای پیاده ­سازی چنین حمله ­ای می­توانیم از ابزار DHCPig استفاده نماییم که از لینک زیر قابل دسترس می­ باشد.

https://github.com/kamorin/DHCPig

بنا بر توضیحاتی که در مستند ابزار DHCPig آمده است، با اجرای آن، به صورت خودکار تمامی IPهای قابل تخصیص در DHCP Pool با ارسال بسته­ های جعلی DHCP Discovery خالی می شود تا کاربران جدید، امکان دریافت IP از Server DHCP را نداشته باشند. همچنین IP های درحال استفاده (تخصیص یافته شده به سیستم­ ها) را آزاد می ­نماید.

 

 

سناریو حمله DHCP Starvation:

در این سناریو مطابق تصویر زیر، فرض شده است که روتر با آدرس 192.168.2.1، DHCP Server می­ باشد و از آدرس IP 192.168.2.10 تا 192.168.2.25 به سیستم ­های شبکه، IP اختصاص می­ دهد. همچنین فرض شده است که یک سیستم عضو شبکه شده است و از DHCP Server آدرس 192.168.2.20 را گرفته است. یک سیستم دیگر به عنوان Client در نظر گرفته شده است که قبل از درخواست IP، مهاجم اقدام به حمله DHCP Starvation کرده است.

 

وضعیت DHCP Pool  قبل از اجرا حمله توسط Attacker، به صورت زیر می ­باشد.

اجرا حمله:

مرحله اول: اجرا ابزار DHCPig

Attacker قصد ایجاد اختلال در سرویس دهی DHCP Server را دارد. به همین منظور، با کمک دستور زیر، ابزار DHCPig را اجرا می ­نماید.

./pig.py -c --verbosity=99 eth0

 

 

با اجرا دستور فوق، DHCPig شروع به ارسال بسته های DHCP Discovery می­نماید و لیست تمامی IPهای اختصاص  داده نشده DHCP Pool را  با آدرس ­های MAC جعلی (به صورت تصادفی تولید می ­شود) خالی می­ نماید. همانطور که در تصویر زیر قابل مشاهده می باشد، DHCP Pool از آدرس 192.168.2.10 تا 192.168.2.25 مورد استفاده قرار گرفته اند.

 

مرحله دوم: درخواست IP توسط کاربر جدید در شبکه

در این زمان، Client ای که قصد ورود به شبکه را دارد، پیام DHCP Discovery ارسال می­ نماید ولی به دلیل خالی بودن DHCP Pool امکان تخصیص IP برای Client فراهم نمی‌ باشد. در نتیجه، Client نمی­ تواند با سایر سیستم های موجود در شبکه ارتباط برقرار کند.

همانطور که در تصویر زیر قابل مشاهده می ­باشد، client آدرس APIPA گرفته است.