۱۳۸۶ اردیبهشت ۲۵, سه‌شنبه

پیدا کردن DHCP سرورهای قلابی یا Rogue DHCP servers در شبکه

دوستانی که مبانی شبکه مانند کتاب Network+ را مطالعه کرده اند با شیوه IP گیری کلاینت ها آشنا هستند
این عمل در 4 مرحله رخ میدهد :
1-کلاینت یک بسته DHCP Discover بصورت BROADCAST میفرستد و درخواست IP میکند
2-DHCP سرورهای موجود که این پیغام را بشنوند با یک بسته DHCP Offer جواب میدهند
3-در این مرحله کلاینت ممکن است چندین پیشنهاد دریافت کرده باشد که به سروری که سریعتر جواب داده با یک بسته DHCPRequest جواب میدهد
4-DHCP سرور هم با یک پیغام ACK با درخواست موافقت میکند

گاها پیش میاید که مدیران شبکه مواجه با مواردی میشوند که کلاینت از سروری جز DHCP سرور مورد نظر آنها IP گرفته است , که معمولا دو حالت وجود دارد :
1-شخص خرابکاری یک DHCP سرور در شبکه قرار داده تا اطلاعات کلاینت ها را بدست آورد
2-بعضی دستگاها امروزه با DHCP سرور عرضه میشوند مانند مودم و روترهای ADSL که ممکن است فعال بوده و در شبکه اخلال ایجاد کند

به این گونه DHCP سرور ها در اصطلاح Rogue گفته میشود.

حال به شیوه پیدا کردن این DHCP سرور ها میپردازیم :
همونطور که در بالا شاره شد عملیات IP گیری از سوی کلاینت ها در 4 مرحله صورت میگیرد که ما برای پیدا کردن DHCP سرورها فقط به 2 مرحله ابتدایی نیاز داریم.
وقتی کلاینتی درخواست آدرس IP میکند تمام DHCP سرورهای موجود در شبکه به این درخواست پاسخ میدهند(مهرورزی میکنند!) و ما از این طریق میتوانیم سرور مورد نظر را پیدا کنیم.

ابزارهای گوناگونی برای این کار نوشته شده است ولی راحتترین این ابزارها DHCPLOC ساخته شرکت مایکروسافت میباشد که بصورت مجانی بهمراه CD یا DVD های ویندوز توزیع میشود.
برای نصب این ابزار کافیست از CD ویندوز به شاخه SUPPORT\TOOLS رفته و SUPTOOLS.msi را اجرا کنید
از این پس از طریق CMD می توانید از این ابزار استفاده کنید

DHCPLoc uses the following syntax:

dhcploc [/p] [/a:"AlertNameList"] [/i: AlertInterval] ComputerIPAddress [ValidDHCPServerList]

Parameters
/p:
Suppresses display of detected packets from any of the authorized DHCP servers specified in ValidDHCPServerList.
/a:"AlertNameList"
Sends alert messages to the names in AlertNameList if any unauthorized DHCP servers are found.
/i: AlertInterval
Specifies the alert frequency in seconds.
ComputerIPAddress
Specifies the IP address of the computer from which you are running Dhcploc. If the computer has multiple adapters, you must specify the IP address of the adapter that is connected to the subnet you want to test.
ValidDHCPServerList
Specifies the IP addresses of any number of authorized DHCP servers. The tool does not send alerts when it detects packets from the servers in this list; however, it displays those packets unless you specify the /p option.


برای نمونه کافیست این دستور را اینگونه استفاده کنید

dhcploc 192.168.0.1

حال با فشردن کلید D پیغامهای DISCOVER را بفرستید.
( 192.168.0.1 آدرس کارت شبکه ایست که میخواهیم از طریق آن IP بگیرد)

به شکل زیر توجه کنید


علامت "***" نشانه DHCP سرور unauthorized یا غیر معتبر میباشد.

برای مشاهده DHCP سرورهای authorized در شبکه در صورت استفاده از Active Directory از این دستور استفاده میکنیم
netsh dhcp show server


توجه:

از DHCPLOC بر روی DHCP سرور استفاده نکنید.

هیچ نظری موجود نیست: