منبع اصلی نوشتار زیر در این لینک قرار دارد

بررسی عملکرد DHCP Attack در شبکه

سلام دوستان . در پست قصد داریم در مورد DHCP Attack صحبت کنیم اما نه صرفا دنبال کردن مراحل حمله ! بلکه قرار است درکی نسبی از تک تک مراحل و مکانیزم کاری و سرویس DHCP داشته باشیم و در نهایت روش حمله را هم با بررسی کنیم . قبلا پستی را با نام  نصب و راه اندازی DHCP server بر روی دبیان منتشر کردیم پس سناریو را همان فرض می کنیم تا دوستانی که قصد پیاده سازی مراحل را دارند راحت تر باشند .

توپولوژی فرضی :

04

ابتدا اجازه بدید فرایندی که طی آن یک سیستم با استفاده از DHCP آی پی می گیرد را به زبادی ساده در این سناریو بررسی کنیم :

 

1. DHCP Discover : در این مرحله سیستم هنوز هیچ IP ای ندارد و درخواست های خود را مبنی بر دریافت IP به سمت DHCP سرور می فرستد اما از آن جایی که خود IP ای ندارد و آدرس DHCP server را هم نمی داند , این پکت ها و درخواست های خود را به شکل ‫‪Broadcast‬‬ در شبکه منتشر می کند . با توجه به تعریف ‫‪Broadcast‬‬ می توان نتیجه گرفت که پکت های خود را به آدرس آی پی 255.255.255.255 می فرستد و آی پی خود را هم 0.0.0.0 در نظر می گیرد .

2. DHCP Offer : در این مرحله DHCP سرور فعال ما این پکت های ‫‪Broadcast‬‬ را دریافت می کند و یک IP از رنجی که براتش تعریف شده را انتخاب و همراه با دیگر کانفیگ های لازم به سمت کلاینت می فرستد . لازم به ذکر است که در این مرحله کلاینت را از طریق آدرس فیزیکی می شناسد .

3. DHCP Request : بعد از این که DHCP Offer دست کلاینت رسید . پیغامی مبنی بر قبول کردن این IP و کانفیگ به سمت DHCP سرور ‫‪Broadcast‬‬ می کند .

4. DHCP ack or DHCP nack : وقتی که DHCP سرور DHCP Request کلاینت را دریافت کرد , در صورتی که مشکلی و یا … وجود نداشته باشد , سرور مهر تایید بر روی آن می زند و این تاییده را در فرم پکت DHCP ack به سمت کلاینت ارسال می کند . لازم به ذکر است که اگر مشکلی به وجود آید و این تاییده از سوی سرور صورت نگیرد , پیغامی با مضمون DHCP nack به سمت کلاینت ارسال می شود و طبیعتا IP در نظر گرفته شده به کلاینت اختصاص داده نمی شود .

 

تمام ! حالا اجازه بدید همین مراحل را در log های سرور بررسی کنیم و به صورت شهودی این روند رو درک کنیم :

OSLearn.ir_001یاد آوری : همان طور که در این پست گفته شد , برای مشاهده ی log ها می توان به شکل زیر عمل کرد :

root@OSLearn:~# cat /var/log/syslog | grep dhcpd

اما از این هم می توان zoom تر شد و تمامی پکت هایی که دریافت و ارسال می شود را هم بررسی کرد . برای این منظور روی اینترفیس DHCP سرور آمده و با استفاده از یک برنامه ی پکت کپچر پکت های مورد نیازمون رو کپچر می کنیم :

[email protected]:~# tcpdump -i eth0 -nn

OSLearn.ir_002برای راحتی کار دوستان من خروجی خودم رو برای دانلود قرار داده ام :

OSLearn.ir_out.pcap

تا به این جا درک نسبی ای از روند آی پی دادن از سوی DHCP server بدست آوردیم که البته برای فهمیدن حملات لازم است . اما یکی از روش های حمله به این صورت است که مرحله ی اول پشت سر هم تکرار شود ! یعنی فقط با مک آدرس های مختلف DHCP Discover پکت های زیادی را در شبکه به صورت ‫‪Broadcast‬‬ منتشر کنیم . در این صورت سرور به تمامی این درخواست ها یک DHCP Offer ارسال می کند .

با توجه به تعریف DHCP Offer بعد از یک مدت IP های اختصاص داده شده در مرحله ی دوم تمام شده و چون مرحله ی اول یعنی DHCP Discover توسط مهاجم بار ها تکرار می شود , اصطلاحا DHCP server با denial of service یا همان DOS مواجه می شود و عملا سرور دیگر پاسخو به کلاینت ها نیست !

برای پیاده سازی روند حمله ی گفته شده از برنامه ی yersinia استفاده می کنیم که به صورت پیش فرض در Kali Linux نصب می باشد . برای اجرای این برنامه به صورت گرافیکی یک ترمینال باز کنید و به صورت زیر عمل کنید :

OSLearn.ir_003همان طور که مشاهده می کنید وارد Graphical mode برنامه شده ایم . برای پیاده سازی حمله کافیست از منوی Launch attack تب DHCP را انتخاب و گزینه ی sending DISCOVER packet را انتخاب کنید :

OSLearn.ir_004

بعد از اجرای حمله , همان طور که قبلا هم گفته شد برنامه شروع به ارسال DHCP Discover های متعدد با آدرس های مک جعلی می کند و در نهایت سرویس دهی DHCP Server را با اخلال مواجه می سازد .

OSLearn.ir_006می توان پکت های broadcast ای که در سطح شبکه پخش شده است را مشاهده کرد . برای این منظور به شکل زیر عمل می کنیم :

[email protected]:~# tcpdump -i eth0 -nn broadcast

OSLearn.ir_005هم چنین خروجی حمله را می توان در log های dhcp server مشاهده کرد :

[email protected]:~# cat /var/log/syslog | grep DHCPDISCOVER | more

OSLearn.ir_007

همان طور که مشاهده می کنید بعد از مدتی dhcp server دیگر قادر به سرویس دهی نیست و اروری مبنی بر no free leases صادر می کند . برای تایید صحت این حرف کافیست در یکی از کلاینت ها اقدام به دریافت آی پی از سوی DHCP Server کنید .

 

موفق و موید باشید .

 

منبع : او اس لرن دات آی آر | http://OSLearn.ir

نویسنده : E2MA3N



برچسب ها : , ,