راهنمای تکنیک های اسکن پورت پیشرفته

پورت اسکن - اسکن پورت

پورت اسکن – اسکن پورت

اسکن پورت، مجموعه ای از تلاش های یک هکر یا مدیر شبکه برای بررسی اینکه کدام پورت های شبکه باز/بسته/فیلتر شده اند

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

در این مقاله قصد داریم تا انواع مختلف اسکن ها را توضیح دهیم؛ در حالی که می توانیم به سادگی یک پورت اسکن معمولی را با استفاده از هر ابزار اسکن پورت مانند NMAP یا اسکنر پورت رایگان و… انجام دهیم. اول از همه باید انتخاب کنیم که از کدام تکنیک پورت اسکن برای اسکن قربانی استفاده کنیم. اکثر هکرهای تخلیه اسکن Stealth را به عنوان اجرا در پس زمینه بدون اطلاع کاربر انتخاب می کنند؛ بنابراین اجازه می دهد تا بیشتر بر روی تکنیک های مختلف اسکن تمرکز کنیم.

انواع مختلف تکنیک های پورت اسکن

Open Scan

به این تکنیک، Vanilla Scan هم می گویند. در این نوع اسکن، هکر سعی می کند به تمام پورت های قربانی متصل شود. این اسکن از یک اتصال TCP معمولی برای تعیین در دسترس بودن پورت استفاده می کند و از یک اتصال سه طرفه TCP استفاده می کند که معمولا هر برنامه TCP دیگری در شبکه استفاده می کند؛ به همین دلیل این تکنیک دارای یک ابراد است که به راحتی می توان آن را شناسایی و مسدود کرد.

Open Scan چگونه کار می کند؟

هنگامی که پورت باز است، کلاینت یک SYN Flag ارسال می کند، سرور یک SYN + ACK Flag را پاسخ می دهد که توسط کلاینت با یک ACK Flag تایید می شود. پس از اتمام دست دادن، اتصال توسط کلاینت قطع می شود و این یک پورت باز را تایید می کند. هنگامی که پورت بسته باشد، سرور به یک RST + ACK Flag پاسخ می دهد که توسط مشتری با یک RST Flag تایید می شود و سپس اتصال بسته می شود.

نقطه ضعف این تکنیک اسکن این است که مهاجم نمی تواند هویت خود را جعل کند؛ زیرا جعل نیاز به ارسال یک شماره دنباله (Sequence Number) صحیح و همچنین تنظیم پرچم های بازگشتی مناسب برای راه اندازی اتصال داده دارد. علاوه بر این، بیشتر IDSها و فایروال های باشکوه این اسکن را شناسایی و ثبت می کنند و هم تلاش و هم IP مهاجم را فاش می کنند. مزیت اسکن دقیق سریع است که به هیچ امتیاز اضافی نیاز ندارد.

Half Open Scan

اسکن نیمه باز شبیه اسکن باز یا Vanilla Scan است. تنها تفاوت این است که اتصال کاملی با میزبان برقرار نمی کند؛ بنابراین تشخیص آن برای فایروال قربانی سخت می شود اما همچنان قابل تشخیص است؛ زیرا برای دریافت ICMP echoes باید یک اتصال بین کامپیوتر شخصی شما و قربانی برقرار شود.

Half Open Scan چگونه کار می کند؟

در اسکن نیمه باز، اتصال کامل TCP برقرار نمی شود. در عوض به محض اینکه سرور با یک پاسخ SYN + ACK تایید کرد* کلاینت با ارسال RST Flag اتصال را قطع می کند؛ به این ترتیب هکر یک پورت باز را تشخیص می دهد و اتصال کامل برقرار نمی کند.

با این حال، برخی از IDSهای خوب و فایروال مانند زنگ منطقه می توانند بسته SYN را از فضای خالی شناسایی کنند و از اسکن نیمه باز جلوگیری کنند. علاوه بر این، این اسکن به مهاجم نیاز دارد تا یک بسته IP کلاینت ایجاد کند که به نوبه خود نیاز به دسترسی به SOCK_RAW (getprotbyname(‘raw’) در اکثر سیستم ها) یا dev/bpf/ (Berkeley Packet Filter)، dev/nit/ (شبکه SUn) دارد.

Strobe Scan

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

مشکل این اسکن این است که ممکن است نتایج مورد انتظار را ایجاد نکند اما خیلی سریع است. اسکنر پورت رایگان فقط روی تکنیک اسکن Strobe کار می کند. فقط پورت های اینترنت و خدمات برنامه کاربردی وب را اسکن می کند.

Stealth Scan

در این نوع تکنیک اسکن، اسکن به روشی مخفیانه انجام می شود که هدف آن جلوگیری از ثبت درخواست اتصال است.

در ابتدا اسکن های نیمه باز مخفیانه در نظر گرفته می شدند اما با تکامل نرم افزار IDS، این اسکن ها به راحتی ثبت می شدند. حال اسکن مخفی به نوع اسکنی اشاره دارد که در آن بسته ها با مجموعه ای از Flagها غیر از SYN، یا ترکیبی از Flagها، بدون Flag، تمام مجموعه Flagها، به عنوان ترافیک عادی با استفاده از بسته های تکه تکه شده یا اجتناب از فیلتر شدن پرچم گذاری می شوند. دستگاه ها با هر وسیله دیگری همه این تکنیک ها برای تعیین پورت های باز به نقشه برداری معکوس متوسل می شوند.

انواع مختلف Stealth Scan

  • SYN/ACK Scan: کلاینت یک پرچم SYN+ACK را به هدف ارسال می کند. برای یک پورت بسته، سرور به یک پاسخ RST پاسخ می دهد؛ در حالی که یک پورت باز پاسخ نمی دهد. این به این دلیل است که پروتکل TCP برای شروع اتصال به یک پرچم SYN نیاز دارد. این یک اسکن سریع است که از Three-Way Handshake جلوگیری می کند.
  • FIN Scan: مشابه اسکن قبلی است، در عوض یک پرچم FIN به هدف ارسال می شود. پورت های بسته باید با RST به بسته کاوشگر پاسخ دهند، در حالی که پورت های باز باید بسته مورد نظر را نادیده بگیرند. این اسکن تلاش می کند تا از آسیب پذیری ها در کد BSD سو استفاده کند. از آنجایی که اکثر سیستم عامل ها براساس BSD هستند، این اسکن می تواند نتیجه خوبی داشته باشد اما اکثر OSها وصله هایی را برای تصحیح مشکل اعمال می کنند اما همچنان احتمال اینکه هکر با یکی از وصله ها مواجه شود که اعمال نشده باشد.
  • ACK Scan: اسکن از عملکرد مسیریابی IP برای استنتاج وضعیت پورت از مقدار TTL استفاده می کند. این مبتنی بر این واقعیت است که تابع IP یک تابع مسیریابی است؛ بنابراین مقدار TTL توسط یک رابط زمانی که بسته IP از آن عبور می کند، کاهش می یابد.
  • Null Scan: در این اسکت، بسته بدون هیچ مجموعه پرچم ارسال می شود. این از RFC 793 استفاده می کند؛ زیرا RFC مشخص نمی کند که سیستم چگونه باید پاسخ دهد. اکثر سیستم های مرتبط با یونیکس با RST (اگر پورت باز باشد) برای بستن اتصال پاسخ می دهند. با این حال، پیاده سازی مایکروسافت از این استاندارد پیروی نمی کند و واکنش های متفاوتی به چنین اسکنی نشان می دهد.
  • Xmas Scan: در Xmas Scan، همه پرچم ها تنظیم می شوند. تمام پرچم های موجود در هدر TCP تنظیم شده اند (PSH – URG – SYN – RST – FIN – ACK) تا ظاهری تزئینی به اسکن بدهد. این اسکن روی یونیکس و سیستم های مرتبط کار می کند و در صورت باز بودن درگاه دریافت، باعث می شود که هسته بسته را رها کند.

FTP Bounce Scan

توانایی مخفی کردن ردهای آن ها وظیفه مهمی برای هکرها است و در اسکن پورت این با استفاده از تکنیک اسکن FTP به دست می آید. اسکن برگشتی FTP از آسیب پذیری خود پروتکل FTP بهره می برد. این اسکن از سرورهای FTP با دسترسی خواندن/نوشتن بهره می برد.

مزیت این اسکن می تواند هم ناشناس بودن و هم در دسترس بودن باشد. فرض کنید شبکه هدف فقط از شرکای شناخته شده خود اجازه انتقال داده FTP را می دهد. هکر ممکن است یک شریک تجاری خدماتی را پیدا کند که یک سرویس FTP با یک فهرست قابل نوشتن جهانی اجرا می کند که هر کاربر ناشناس می تواند فایل ها را در آن رها کند و آن ها را از آن بخواند؛ حتی می تواند خدمات میزبانی ISP در سرور FTP آن باشد.

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

اگر اتصالی به عنوان وسیله ای برای پردازش انتقال فعال داده (DTP) برقرار شود، مشتری می داند که یک پورت باز است، با پاسخ 150 و 226 که سرور صادر می کند. اگر انتقال ناموفق باشد، یک خطای 425 با پیام داده های ساخت رد شده ایجاد می شود. اتصال شنونده PASV را می توان در هر ماشینی که دسترسی نوشتن فایل را به هکرها می دهد، باز کرد و از آن برای بازگرداندن حمله اسکن برای ناشناس ماندن استفاده کرد؛ حتی لازم نیست که یک سرور FTP باشد، هر ابزاری که به یک پورت TCP شناخته شده گوش می دهد و داده های خام را از آن در یک فایل می خواند، این کار را انجام می دهد.

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

ردیابی این اسکن سخت است، اجازه دسترسی به شبکه محلی را می دهد و از فایروال ها فرار می کند. با این حال، اکثر سرورهای FTP این آسیب پذیری را با اتخاذ اقدامات متقابلی مانند جلوگیری از اتصال شخص ثالث و غیر مجاز کردن لیست پورت های محدود شده برطرف کرده اند. یکی دیگر از اقدامات اتخاذ شده، محدود کردن دسترسی به نوشتن است.

Fragmented Packet Scan

FPS تلاشی برای دور زدن قوانین در برخی روترها است. این رویکرد از نیاز به جلوگیری از False Positive Arising ناشی از اسکن های دیگر به دلیل دستگاه فیلتر بسته تکامل یافته است. برای هر انتقال، یک هدر TCP تکه تکه شده با حداقل مجاز باید حاوی یک مقصد و پورت منبع برای بسته اول (8 اکتت، 64 بیت)، پرچم های اولیه در بسته بعدی باشد که به میزبان راه دور اجازه می دهد بسته را پس از دریافت از طریق اینترنت جمع کند. ماژول پروتکل که بسته های تکه تکه شده را با مقادیر معادل میدان مبدا، مقصد، پروتکل را شناسایی می کند.

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

برخی از فایروال ها ممکن است دارای قوانینی باشند که صف های تکه تکه شدن IP را در هسته مسدود می کند؛ اگرچه این به دلیل تاثیر نامطلوب بر عملکرد به طور گسترده اجرا نمی شود. از آنجایی که چندین سیستم تشخیص نفوذ از مکانیسم های مبتنی بر امضا برای نشان دادن تلاش های اسکن مبتنی بر IP و یا هدر TCP استفاده می کنند، تکه تکه سازی اغلب قادر است از این نوع فیلتر کردن و شناسایی بسته ها اجتناب کند. احتمال ایجاد مشکلات شبکه در شبکه مورد نظر زیاد است.

UDP Scan

همانطور که از نام آن پیداست اسکن یک طرفه است؛ زیرا UDP یک پروتکل Fire And Go است. اسکن پورت معمولا به معنای اسکن پورت های TCP است که اتصال گرا هستند؛ بنابراین بازخورد خوبی به هکر می دهند. UDP به روشی متفاوت پاسخ می دهد. به منظور پایان یافتن پورت های UDP، هکر معمولا دیتاگرام های خالی UDP را ارسال می کند.

اگر پورت در حال گوش دادن است، سرویس باید یک پیام خطا ارسال کند یا دیتاگرام ورودی را نادیده بگیرد. اگر پورت بسته باشد، اکثر سیستم عامل ها پیام ICMP Port Unreachable را ارسال می کنند؛ بنابراین می توانید دریابید که آیا یک پورت باز نیست یا خیر؟ با استثنا تعیین کنید که کدام پورت ها باز هستند.

نه بسته های UDP و نه خطاهای ICMP هیچ کدام تضمین نمی شوند که وارد شوند؛ بنابراین اسکنرهای UDP از این نوع نیز باید بسته هایی را که به نظر گم شده اند، ارسال مجدد انجام دهند. همچنین این تکنیک اسکن به دلیل جبران ماشین هایی که پیشنهادات RFC 1812 را اجرا می کنند و نرخ پیام خطای ICMP را محدود می کنند، کند است.

برخی از مردم فکر می کنند که اسکن UDP بی معنی است اما اینطور نیست. به عنوان مثال، یک هسته ممکن است تولید پیام غیرقابل دسترسی به مقصد را به 80 در هر 4 ثانیه مسدود شده باشد اما آیا می توانید بیابید که در کدام یک از بیش از 30000 پورت high گوش می دهد؟ این کار را با اسکن UDP می توانید انجام دهید.

نقطه ضعف این اسکن هم این است که UDP یک پروتکل بدون اتصال است و برخلاف TCP در صورت گم شدن یا افتادن بسته ها در شبکه، مجددا ارسال نمی کند؛ علاوه بر این، به راحتی قابل تشخیص و غیر قابل اعتماد است. محدودیت هسته لینوکس نرخ پیام خطای ICMP با مقصد غیرقابل دسترسی روی 80 در هر 4 ثانیه تنظیم شده است؛ پس از آن در صورت تجاوز از تعداد، 1/4 ثانیه جریمه اعمال می شود. این امر اسکن را کند می کند و علاوه بر این اسکن به دسترسی روت نیاز دارد. با این حال از IDS مبتنی بر TCP اجتناب می کند و می تواند پورت های غیر TCP را اسکن کند.

Reference 

درباره lavinnet

ارسال پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *