تکنیکهای شناسایی میزبان در شبکه با ابزار Nmap
شناسایی میزبان
اسکن، فرایند جمعآوری اطلاعات درباره سیستمهایی است که در شبکه «فعال» هستند و پاسخ میدهند. شناسایی میزبان بهعنوان وظیفه اصلی در فرایند اسکن شبکه در نظر گرفته میشود. برای انجام یک اسکن کامل و شناسایی پورتها و سرویسهای باز، لازم است زنده بودن سیستمها بررسی شود. شناسایی میزبان، وضعیت دقیقی از سیستمهای موجود در شبکه ارائه میدهد که به مهاجم این امکان را میدهد از اسکن کردن تمام پورتهای همه سیستمها در یک فهرست از آدرسهای IP، صرفاً برای تشخیص فعال بودن میزبان هدف، اجتناب کند.
شناسایی میزبان، نخستین مرحله در اسکن شبکه است. این بخش نشان میدهد چگونه با استفاده از تکنیکهای مختلف Ping Scan، سیستمهای فعال در یک شبکه را بررسی کنید. همچنین، نحوه انجام Ping Sweep روی یک شبکه برای شناسایی میزبانها/سیستمهای فعال، به همراه ابزارهای مختلف Ping Sweep، مورد بحث قرار میگیرد.
تکنیکهای شناسایی میزبان
از تکنیکهای شناسایی میزبان میتوان برای کشف میزبانهای فعال/زنده در شبکه استفاده کرد. بهعنوان یک هکر اخلاقی، باید با انواع مختلف تکنیکهای شناسایی میزبان آشنا باشید. برخی از تکنیکهای شناسایی میزبان در ادامه فهرست شدهاند:
- اسکن ARP Ping
- اسکن UDP Ping
- اسکن ICMP Ping
- ICMP ECHO Ping
- ICMP ECHO Ping Sweep
- ICMP Timestamp Ping
- ICMP Address Mask Ping
- اسکن TCP Ping
- TCP SYN Ping
- TCP ACK Ping
- اسکن IP Protocol
- اسکن ARP Ping
در اسکن ARP Ping، بستههای ARP برای کشف همه دستگاههای فعال در بازه IPv4 ارسال میشوند، حتی اگر وجود این دستگاهها توسط فایروالهای سختگیرانه پنهان شده باشد. در بیشتر شبکهها، در هر زمان تعداد زیادی از آدرسهای IP بدون استفاده هستند، بهویژه در بازههای آدرس خصوصی LAN. ازاینرو، هنگامی که مهاجمان تلاش میکنند بستههای IP مانند ICMP Echo Request را به میزبان هدف ارسال کنند، سیستمعامل باید آدرس سختافزاری مقصد متناظر با IP هدف را برای آدرسدهی صحیح فریم اترنت تعیین کند. برای این منظور، مجموعهای از درخواستهای ARP صادر میشود.
از ARP Scan برای نمایش آدرس MAC رابط شبکه روی دستگاه استفاده میشود و همچنین میتواند آدرسهای MAC تمام دستگاههایی را که در LAN همان آدرس IPv4 را به اشتراک میگذارند، نمایش دهد. اگر IP میزبان با آدرس سختافزاری مقصد متناظر فعال باشد، میزبان پاسخ ARP تولید میکند؛ در غیر این صورت، پس از تعداد مشخصی تلاش Ping، سیستمعامل مبدأ از آن میزبان صرفنظر میکند. بهعبارت دیگر، هنگامی که مهاجمان پروبهای ARP Request را به میزبان هدف ارسال میکنند، اگر هرگونه ARP Response دریافت کنند، میزبان فعال است. در صورتی که میزبان مقصد بدون پاسخ تشخیص داده شود، میزبان مبدأ یک مدخل ناقص برای IP مقصد به جدول ARP هسته خود اضافه میکند.
مهاجمان از ابزار Nmap برای انجام اسکن ARP Ping بهمنظور کشف میزبانهای فعال در شبکه استفاده میکنند. در Zenmap، گزینه PR- برای انجام اسکن ARP Ping بهکار میرود.
نکته: sn- دستور Nmap برای غیرفعال کردن اسکن پورت است. ازآنجاکه Nmap بهطور پیشفرض از اسکن ARP Ping استفاده میکند، برای غیرفعال کردن آن و اجرای سایر اسکنهای Ping موردنظر، میتوانید از disable-arp-ping– استفاده کنید.
مزایا:
- اسکن ARP Ping در مقایسه با سایر تکنیکهای شناسایی میزبان، کارآمدتر و دقیقتر در نظر گرفته میشود.
- اسکن ARP Ping بهصورت خودکار درخواستهای ARP، بازارسال و زمانانتظار را بنا به صلاحدید خود مدیریت میکند.
- اسکن ARP Ping برای شناسایی سیستم مفید است؛ بهویژه در شرایطی که لازم باشد فضاهای آدرسی بزرگی اسکن شوند.
- اسکن ARP Ping میتواند زمان پاسخ یا تأخیر یک دستگاه در پاسخ به یک بسته ARP را نمایش دهد.
اسکن UDP Ping
اسکن UDP Ping مشابه اسکن TCP Ping است؛ با این حال، در اسکن UDP Ping، ابزار Nmap بستههای UDP را به میزبان هدف ارسال میکند. شماره پورت پیشفرضی که Nmap برای اسکن UDP Ping استفاده میکند، ۴۰۱۲۵ است. از این پورت بسیار غیرمتداول بهعنوان مقدار پیشفرض برای ارسال بستههای UDP به هدف استفاده میشود. این شماره پورت پیشفرض را میتوان هنگام زمان کامپایل در Nmap و با استفاده از DEFUALT_UDP_PROBE_PORT_SPEC پیکربندی کرد.
مهاجمان بستههای UDP را به میزبان هدف ارسال میکنند و دریافت یک پاسخ UDP به این معنا است که میزبان هدف فعال است. اگر میزبان هدف آفلاین یا غیرقابلدسترس باشد، ممکن است پیامهای خطای مختلفی مانند host/network unreachable یا TTL exceeded بازگردانده شوند. در Zenmap، گزینه PU- برای انجام اسکن UDP Ping استفاده میشود.
مزایا:
- اسکنهای UDP Ping این مزیت را دارند که سیستمهای پشت فایروالهایی با فیلترینگ سختگیرانه TCP را شناسایی میکنند، در حالی که ترافیک UDP نادیده گرفته شده است.
اسکن ICMP ECHO Ping
مهاجمان از اسکن ICMP Ping برای ارسال بستههای ICMP به سیستم مقصد استفاده میکنند تا تمام اطلاعات لازم را درباره آن جمعآوری کنند. دلیل این امر آن است که ICMP شامل انتزاع پورت نمیشود و با اسکن پورت تفاوت دارد. با این حال، برای تعیین اینکه چه میزبانهایی در یک شبکه در حال اجرا هستند، با Ping کردن همه آنها مفید است.
اسکن ICMP ECHO Ping شامل ارسال درخواستهای ICMP ECHO به یک میزبان است. اگر میزبان زنده باشد، یک پاسخ ICMP ECHO بازمیگرداند. این اسکن برای مکانیابی دستگاههای فعال یا تعیین اینکه آیا ICMP از یک فایروال عبور میکند یا خیر، مفید است.
ماشینهای مبتنی بر UNIX/Linux و BSD از اسکن ICMP Echo استفاده میکنند؛ پیادهسازیهای پشته TCP/IP در این سیستمعاملها به درخواستهای ICMP Echo که به آدرسهای Broadcast ارسال میشوند پاسخ میدهند. این تکنیک روی شبکههای مبتنی بر Windows کار نمیکند، زیرا پیادهسازی پشته TCP/IP آنها به پروبهای ICMP که به آدرس Broadcast هدایت شدهاند، پاسخ نمیدهد.
Nmap از گزینه P- برای انجام اسکن ICMP روی هدف استفاده میکند. کاربر همچنین میتواند با استفاده از گزینه L- تعداد Pingهای موازی را افزایش دهد. همچنین ممکن است تنظیم مقدار زمانانتظار Ping با استفاده از گزینه T- مفید باشد.
در Zenmap، گزینه PE- برای انجام اسکن ICMP ECHO Ping استفاده میشود. میزبانهای فعال بهصورت “Host is up” نمایش داده میشوند، همانطور که در تصویر صفحه نشان داده شده است.
ICMP ECHO Ping Sweep
Ping Sweep که با عنوان ICMP Sweep نیز شناخته میشود، یک تکنیک پایهای اسکن شبکه است که برای تعیین بازهای از آدرسهای IP که به میزبانهای زنده یا فعال، مانند کامپیوترها، نگاشت میشوند، بهکار میرود. اگرچه یک Ping منفرد به کاربر نشان میدهد که آیا یک کامپیوتر میزبان مشخص در شبکه وجود دارد یا خیر، اما Ping Sweep شامل درخواستهای ICMP ECHO است که به چندین میزبان ارسال میشوند. اگر یک میزبان مشخص فعال باشد، یک پاسخ ICMP ECHO بازمیگرداند.
Ping Sweepها از قدیمیترین و کندترین روشهایی هستند که برای اسکن یک شبکه استفاده میشوند. این ابزار تقریباً روی همه پلتفرمها توزیع شده است و مانند یک فراخوان حضور برای سیستمها عمل میکند؛ سیستمی که در شبکه فعال باشد، به پرسوجوی Ping که سیستم دیگری ارسال میکند پاسخ میدهد.
اسکن ICMP Echo همه ماشینهای موجود در شبکه هدف را Ping میکند تا ماشینهای زنده را کشف کند. مهاجمان پروبهای ICMP را به آدرس Broadcast یا آدرس شبکه ارسال میکنند که این پروبها به همه آدرسهای میزبان در زیرشبکه ارسال میشوند. سیستمهای زنده پیام ICMP Echo Reply را به مبدأ پروب ICMP Echo ارسال خواهند کرد.
برای درک بهتر Ping، باید بتوان بسته TCP/IP را درک کرد. هنگامی که یک سیستم Ping انجام میدهد، یک بسته منفرد را از طریق شبکه به یک آدرس IP مشخص ارسال میکند. این بسته شامل ۶۴ بایت است: ۵۶ بایت داده و ۸ بایت اطلاعات هدر پروتکل. سپس فرستنده منتظر میماند یا به یک بسته بازگشتی از سیستم هدف گوش میدهد. اگر اتصالها مناسب باشند و کامپیوتر هدف «زنده» باشد، انتظار میرود یک بسته بازگشتی معتبر دریافت شود. با این حال، در صورت وجود اختلال در ارتباط، چنین حالتی رخ نخواهد داد. Pingها همچنین زمان لازم برای رفتوبرگشت کامل یک بسته را که «زمان رفتوبرگشت» یا Round-Trip Time نامیده میشود، بهتفصیل نشان میدهند. آنها همچنین به حلوفصل نام میزبانها کمک میکنند. در این حالت، اگر بسته هنگام ارسال به آدرس IP بازگردد، اما هنگام ارسال به نام بازنگردد، سیستم قادر نیست نام را با آدرس IP مشخص تطبیق دهد.
مهاجمان با استفاده از محاسبهگرهای Subnet Mask، ماسکهای زیرشبکه را محاسبه میکنند تا تعداد میزبانهای موجود در زیرشبکه را شناسایی کنند. سپس از Ping Sweep برای ایجاد یک فهرست موجودی از سیستمهای زنده در زیرشبکه استفاده میکنند.
ICMP ECHO Ping Sweep با استفاده از Nmap
منبع: https://nmap.org
Nmap به مهاجم کمک میکند تا یک Ping Sweep انجام دهد که میزبانهای زنده را از میان بازهای از آدرسهای IP تعیین میکند. در Zenmap، گزینه PE- همراه با فهرستی از آدرسهای IP برای انجام ICMP ECHO Ping Sweep استفاده میشود.
اسکن ICMP Timestamp Ping
علاوه بر ICMP ECHO Ping سنتی، برخی انواع دیگر از تکنیکهای ICMP Ping نیز وجود دارند، مانند اسکن ICMP Timestamp Ping و اسکن ICMP Address Mask Ping، که مهاجم میتواند در شرایط خاص از آنها استفاده کند.
ICMP Timestamp Ping یک نوع اختیاری و اضافی از ICMP Ping است که در آن مهاجمان یک پیام Timestamp را پرسوجو میکنند تا اطلاعات مرتبط با زمان فعلی را از ماشین میزبان هدف بهدست آورند. ماشین هدف به هر پرسوجوی Timestamp دریافتشده، با یک Timestamp Reply پاسخ میدهد. با این حال، پاسخ از طرف میزبان مقصد مشروط است و بسته به پیکربندی انجامشده توسط مدیر در سمت هدف، ممکن است با مقدار زمان پاسخ بدهد یا ندهد. این ICMP Timestamp Ping معمولاً برای همگامسازی زمان استفاده میشود. چنین روش Ping برای شناسایی فعال بودن ماشین میزبان مقصد مؤثر است، بهویژه در شرایطی که مدیر، درخواستهای ICMP ECHO Ping سنتی را مسدود کرده باشد. در Zenmap، گزینه -PP برای انجام اسکن ICMP Timestamp Ping استفاده میشود.
اسکن ICMP Address Mask Ping
ICMP Address Mask Ping جایگزین دیگری برای ICMP ECHO Ping سنتی است که در آن مهاجمان یک پرسوجوی ICMP Address Mask را به میزبان هدف ارسال میکنند تا اطلاعات مربوط به Subnet Mask را بهدست آورند. با این حال، پاسخ Address Mask از طرف میزبان مقصد مشروط است و بسته به پیکربندی انجامشده توسط مدیر در سمت هدف، ممکن است با مقدار مناسب Subnet پاسخ دهد یا ندهد. این نوع روش Ping نیز مشابه ICMP Timestamp Ping برای شناسایی میزبانهای فعال مؤثر است، بهویژه زمانی که مدیر، ICMP Echo Ping سنتی را مسدود کرده باشد. در Zenmap، گزینه PM- برای انجام اسکن ICMP Address Mask Ping استفاده میشود.
اسکن TCP SYN Ping
تکنیک TCP SYN Ping یک روش شناسایی میزبان برای پویش پورتهای مختلف جهت تعیین وضعیت آنلاین بودن پورت و بررسی مواجهه با مجموعه قوانین دیوار آتش ست. در این نوع تکنیک شناسایی میزبان، مهاجم از ابزار Nmap برای آغاز فرآیند دستدهی سهمرحلهای از طریق ارسال پرچم خالیِ TCP SYN به میزبان هدف استفاده میکند. پس از دریافت SYN، میزبان هدف وصول آن را با ارسال یک پرچم از نوع ACK تأیید میکند. پس از دریافت پرچم نوع ACK، مهاجم فعال بودن میزبان هدف را تأیید کرده و با ارسال یک پرچم نوع RST به ماشین هدف، اتصال را خاتمه میدهد (چرا که هدف او از شناسایی میزبان محقق شده است). پورت ۸۰ به عنوان پورت مقصد پیشفرض استفاده میشود. در این نوع قالبِ Ping، میتوان بازهای از پورتها را نیز بدون درج فاصله بین گزینه -PS و شماره پورت مشخص کرد (به عنوان مثال PS22-25,80,113,1050,35000)؛ در این حالت، عملیات پویش روی هر پورت بهصورت موازی انجام خواهد شد. در Zenmap، از گزینه PS- برای اجرای اسکن TCP SYN Ping استفاده میشود.
مزایا:
- اسکن هرگز با خطای وقفه مواجه نمیشود: زیرا ماشینها میتوانند در حین انتظار برای دریافت پاسخ، اسکن شوند.
- عدم ثبت ردپا: از TCP SYN Ping میتوان برای تشخیص فعال بودن میزبان بدون ایجاد هرگونه اتصال استفاده کرد. از این رو، گزارشها در سطح سیستم یا شبکه ثبت نمیشوند و این امر به مهاجم امکان میدهد تا هیچ ردپایی از خود برای شناسایی بر جای نگذارد.
اسکن TCP ACK Ping
اسکن TCP ACK Ping مشابه TCP SYN Ping است، هرچند تفاوتهای جزئی دارد. TCP ACK Ping نیز از پورت پیشفرض ۸۰ استفاده میکند. در تکنیک TCP ACK Ping، مهاجمان یک بسته نوع TCP ACK خالی را مستقیماً به میزبان هدف ارسال میکنند. از آنجا که هیچ اتصال پیشینی بین مهاجم و میزبان هدف وجود ندارد، میزبان هدف پس از دریافت بسته ACK، با ارسال یک پرچم از نوع RST به درخواست پاسخ داده و آن را خاتمه میدهد. دریافت این بسته RST در سمت مهاجم، بیانگر فعال بودن میزبان است.
در Zenmap، از گزینه PA- برای اجرای اسکن TCP ACK Ping استفاده میشود.
مزایا:
از هر دو بسته نوع SYN و ACK میتوان برای به حداکثر رساندن احتمال عبور از دیوار آتش استفاده کرد. با این حال، دیوارهای آتش معمولاً بهگونهای پیکربندی میشوند که بستههای SYN Ping را مسدود کنند، زیرا این بستهها رایجترین تکنیک Ping به شمار میروند. در چنین مواردی، از پروب نوع ACK میتوان بهطور مؤثر برای دور زدن این مجموعهقوانین دیوار آتش بهآسانی استفاده کرد.
اسکن IP Protocol Ping
IP Protocol Ping جدیدترین گزینه شناسایی میزبان است که بستههای IP Ping را با هدر IP مربوط به هر شماره پروتکلِ مشخصشده ارسال میکند. این روش همان قالب TCP Ping و UDP Ping را دارد. این تکنیک تلاش میکند بستههای مختلفی را با استفاده از پروتکلهای متفاوت IP ارسال کند، با این امید که پاسخی دریافت شود که نشان دهد یک میزبان آنلاین است.
بهطور پیشفرض، هنگامی که هیچ پروتکلی مشخص نشده باشد، چندین بسته IP برای ICMP (پروتکل ۱)، IGMP (پروتکل ۲) و IP-in-IP (پروتکل ۴) ارسال میشوند. برای پیکربندی پروتکلهای پیشفرض، باید مقدار DEFAULT_PROTO_PROBE_PORT_SPEC را در فایل nmap.h در زمان کامپایل تغییر داد. برای پروتکلهای مشخصی مانند ICMP، IGMP، TCP (پروتکل ۶) و UDP (پروتکل ۱۷)، بستهها باید با هدرهای پروتکلِ مناسب ارسال شوند؛ اما برای سایر پروتکلها، فقط دادههای هدر IP همراه با بستهها ارسال میشود.
بهطور خلاصه، مهاجمان بستههای پروب متفاوتی از پروتکلهای مختلف IP را به میزبان هدف ارسال میکنند؛ هرگونه پاسخ به هر یک از پروبها نشان میدهد که یک میزبان آنلاین است. در Zenmap، از گزینه PO- برای اجرای اسکن IP Protocol Ping استفاده میشود.


















