تکنولوژیهک و امنیت

اسکن پورت (Port Scanning) چیست؟ ابزارهای پورت اسکنر رایگان

در شبکه‌های کامپیوتری، پورت‌ها مثل پلاک ماشین‌ها عمل می‌کنند! هر پورت یک عدد منحصربه‌فرد است که نوع سرویس‌های شبکه را مشخص می‌کند، ماهیت ترافیک ارسالی را شناسایی می‌نماید و درگاه ارتباطی هر برنامه را تعریف می‌کند. در واقع کامپیوترها از طریق پروتکل‌ها (زبان مشترک ماشین‌ها) با هم صحبت می‌کنند. هر پروتکل برای ارسال درخواست‌هایش از یک کد عددی اختصاصی استفاده می‌کند. مثلا فرض کنید فرض کنید با دوستتان قرار گذاشته‌اید که اگر در پیام هایتان روزی عدد 10 را فرستادید، یعنی فوراً به کمک نیاز دارید. این عدد توافق‌شده، دقیقاً نقش پورت شبکه را ایفا می‌کند! در ادامه بیشتر درباره مفهوم پورت شبکه توضیح خواهیم داد اما همانطور که مشخص است این مقاله درباره اسکن پورت (Port Scanning) است، پس در ادامه به بیان مفهوم اسکن پورت، تکنیک ها، کاربرد ها و ابزارهای موجود می‌پردازیم.

فهرست مطالب

محدوده اعداد پورت‌های شبکه 0 تا 65,535 (یعنی 65,536 پورت منحصربه‌فرد) است که با این پورت‌ها می‌توان تشخیص داد چه نوع پروتکلی در حال استفاده است (مثل HTTP یا FTP)، چه سرویسی ارائه می‌شود و درخواست کامپیوترها دقیقاً برای چیست.

اسکن پورت

افرادی که به دنبال مفهوم اسکن پورت هستند، عموماً قصد دارند دربارهٔ امنیت شبکه، ارتباطات، یا مباحث هک و نفوذ که یکی از محبوب‌ترین روش‌های جمع‌آوری اطلاعات از هدف نفوذ است اطلاعات کسب کنند. اما پرسش کلیدی این است که اسکن پورت در شبکه‌های کامپیوتری دقیقاً به چه معناست؟

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

به بیان ساده‌تر، اسکن پورت مانند چرخاندن همزمان دستگیره‌های تمام درهای یک ساختمان است تا دریابید کدام درها باز هستند و کدام قفل شده‌اند. این فرآیند ضعف‌های احتمالی سیستم را آشکار می‌سازد. یک پورت اسکنر عملاً تمام پورت‌ها از 0 تا 65,535 را بررسی می‌کند و برای این کار به تمام پورت ها درخواستی ارسال می‌کند و منتظر پاسخ می‌ماند. سرور مقصد نیز وضعیت هر پورت (باز یا بسته بودن) را اعلام می‌کند. البته اگر فایروال در مسیر وجود داشته باشد، ممکن است این درخواست‌ها را مسدود کرده یا ارتباط را قطع کند.

اسکن پورت یکی از ابزار هایی است که برای پیدا کردن مشکلات امنیتی شبکه مورد استفاده قرار می‌گیرد. در مقابل یک نرم افزار اسکن پورت می‌تواند به هکر بگوید که کدام پورت‌ها در سیستم باز هستند که این مساله به او کمک می‌کند تا راهی برای حمله به سرور پیدا کند. همچنین می توان از این ابزار برای پیدا کردن سرویس‌هایی که روی پورت‌هایی به غیر از پورت‌های پیشفرض خود اجرا شده‌اند استفاده کرد. به طر مثال اگر یک سرویس SSH را به جای پورت 443 روی پورت 22010 اجرا کرده باشید، اسکن پورت می‌تواند این موضوع را تشخیص دهد، در نتیجه اگر هکر از این ابزار استفاده کند می تواند به سرور شما متصل شود. بنابراین تغییر پورت پیش فرض به تنهایی امنیت سیستم شما را تامین نمی‌کند.

اما راهکار چیست؟ اگر سیسم شما فایروال‌ داشته باشد سیستم شما تا حد زیادی ایمن خواهد شد چرا که فایروال ها می توانند فرایند اسکن پورت را شناسایی کرده و ترافیک چنین ابزارهایی را ببندند. بنابراین اگر مسائل امنیتی در سیستم ها رعایت شده باشد و حفره‌ی امنیتی نداشته باشد، حتی اسکن پورت هم راه به جایی نخواهد برد.

نکته حیاتی در فرایند اسکن پورت، مخفی‌ماندن هویت فردی است که فرآیند پورت اسکن را انجام می دهد. امروزه تکنیک‌های متعددی برای اسکن پورت‌های شبکه وجود دارد که عمدتاً به صورت خودکار اجرا می‌شوند و به‌طور مداوم در حال به‌روزرسانی هستند. بنابراین انواع اسکن پورت همیشه همین مواردی که در ادامه معرفی می کنیم نیستند. اما به طور کلی مهم‌ترین انواع روش اسکن پورت عبارتند از:

این تکنیک ویژه سیستم‌عامل‌های خانواده Unix طراحی شده و روی ویندوز کارایی ندارد. در Null Scan تمامی TCP Flagها غیرفعال می‌شوند. حال اگر پورت مقصد بسته باشد، سرور TCP RST ارسال می‌کند و اگر باز باشد، بسته ورودی دور انداخته می‌شود. مزیت این روش دور زدن سیستم‌های تشخیص نفوذ (IDS) و اجتناب از مکانیزم Three-way Handshake است.

معروف‌ترین روش میان مبتدیان که با انجام کامل فرآیند Three-way Handshake (ارسال SYN، دریافت SYN-ACK و ارسال ACK) کار می‌کند. اگرچه ساده و قابل‌اعتماد است، اما به‌راحتی توسط فایروال‌ها شناسایی می‌شود. به همین دلیل به “اسکن وانیلی” شهرت یافته است.

با ارسال تنها یک بسته SYN (بدون تکمیل Handshake) عمل می‌کند. اگر پورت باز باشد، سرور SYN-ACK ارسال می‌کند و اسکنر بلافاصله با RST ارتباط را قطع می‌کند. در این روش از آنجایی که ارتباطی برقرار نمی شود نمی توان ترافیک آن را شناسایی کرد، بنابراین این روش کمترین ردپا را باقی می‌گذارد و روی اکثر سیستم‌عامل‌ها کارآمد است.

این تکنیک برای شناسایی سیستم‌های فعال در شبکه (نه پورت‌ها) استفاده می‌شود. با پرس‌وجوی DNS، لیستی از IPها و Host ها بدون ارسال هیچ بسته مستقیمی (حتی Ping) تولید می‌کند. خروجی به‌صورت “Not Scanned” علامت‌گذاری می‌شود. اگرچه کاربرد عملیاتی محدودی دارد، اما برای تهیه پیش‌زمینه‌ای از شبکه پیش از اسکن فعال مفید است.

این تکننک با فعال‌سازی همزمان Flag های URG، PUSH و FIN (شبیه چراغ‌های درخت کریسمس) عمل می‌کند و فقط روی سیستم‌های مبتنی بر RFC 793 (عمدتاً Unix) جواب می‌دهد. عدم پاسخ سرور نشانه بازبودن پورت و ارسال RST نشانه بسته‌بودن آن است. این روش در دور زدن IDSها مؤثر است، اما فقط بر پایه RFC 793 (مثل سیستم عامل‌های BSD) عمل می‌کند و اجرای آن روی ویندوز نتایج نادرست (همه پورت‌ها باز) تولید می‌کند.

با ارسال بسته FIN (معمولاً برای پایان ارتباط) فایروال‌های قدیمی را فریب می‌دهد و باز یا بسته بودن پورت را تشخیص می‌دهد. عدم پاسخ نشانه بازبودن پورت و دریافت RST/ACK نشانه بسته‌بودن است. این تکنیک اگرچه در برابر فایروال‌های قدیمی (Stateless) مؤثر است، اما در نسخه‌های مدرن ویندوز کارایی ندارد و امروزه عمدتاً برای حملات DoS یا تست فایروال‌های ضعیف استفاده می‌شود.

این تکنیک پیچیده‌ترین روشی است که از سیستم‌های واسط (Zombie) با IPID های پیش‌بینی‌پذیر استفاده می‌کند. اسکنر مستقیماً به هدف متصل نمی‌شود، بلکه تمام فعالیت‌ها به Zombie نسبت داده می‌شود. افزایش یک‌ واحدی IPID نشانه بسته‌بودن پورت و افزایش دو واحدی نشانه بازبودن آن است.

این روش با ارسال بسته‌های UDP به پورت‌ها، پاسخ ICMP Port Unreachable نشانه بسته بودن پورت است. عدم پاسخ ممکن است به معنی باز بودن پورت، فیلترشدن یا ازدست‌رفتن بسته باشد. نتایج این تکنیک به‌دلیل ماهیت Connectionless پروتکل UDP، گاهی غیرقابل‌اعتماد است. کندی سرعت (به‌دلیل ارسال مجدد بسته‌ها) و خطا در تشخیص پورت‌های نیز از معایب آن است.

صرفاً برای شناسایی سیستم‌های روشن در شبکه (نه پورت‌ها) کاربرد دارد. این تکنیک با ارسال بسته‌های Broadcast ICMP، سیستم‌های فعال را کشف می‌کنداما در ویندوز غیرفعال است و فقط روی لینوکس/Unix پاسخ می‌دهد. به علاوه اگر ICMP مسدود شده باشد، این اسکن بی‌نتیجه است و کاربرد آن محدود به کشف سریع Host هاست.

این روش با جعل آدرس‌های مبدا متعدد (Spoofing) لاگ‌های فایروال را اشباع می‌کند. همچنین از آنجایی که پاسخ‌ها به آدرس‌های جعلی ارسال می‌شوند، تشخیص وضعیت پورت‌ها دشوار است. بنابراین این تکنیک بیشتر برای پنهان‌سازی هویت واقعی هکر مفید است تا شناسایی پورت‌ها.

این روش مطمئن‌ترین روش اسکن TCP است که در آن با تکمیل کامل Three-way Handshake (SYN → SYN-ACK → ACK)، پورت باز شناسایی می‌شود. در صورت بسته بودن پورت، سرور با RST پاسخ می‌دهد. دقت بالا (به‌ویژه در تست‌های قانونمند) و سازگاری با همه سیستمعامل‌ها از مزایای آن است. اما کندی سرعت و ردیابی آسان در لاگ‌ها (به‌دلیل ایجاد اتصال کامل) محدودیت‌های اصلی هستند.

در این روش برای عبور از فایروال‌ها، هدر TCP را به قطعات کوچک تقسیم می‌کند تا سیستم‌های تشخیص نفوذ نتوانند الگوی اسکن را شناسایی کنند. در نهایت پس از عبور، بسته در مقصد سرهم می‌شود. این تکنیک مکمل روش‌هایی مثل SYN یا FIN Scan است و با سوئیچ -f در Nmap قابل اجراست، اما ممکن است باعث اختلال در برخی سیستم‌ها یا کاهش کارایی شبکه شود.

مطالعه بیشتر: بهترین زبان های برنامه نویسی برای تمرین هک

اسکن پورت هم ابزاری تهاجمی برای تست نفوذ است و هم محافظی حیاتی برای امنیت تدافعی. به عنوان مدیر شبکه، باید بدانید شبکه‌ شما از بیرون چگونه دیده می‌شود و کدام پورت‌های سرویس‌های شما در فضای عمومی قابل دسترسی هستند؟ به زبان ساده، این شناخت اولین دیوار دفاعی شماست. از سوی دیگر، به عنوان یک هکر، ناشناس ماندن حیاتی است.

اکنون ابزار های اسکن پورت در این زمینه به شما کمک خواهند کرد. این ابزارها نه تنها پورت‌های باز و سرویس‌های فعال (از وب سرورهای Apache و IIS گرفته تا SSH، ایمیل، FTP، دیتابیس‌ها و DNS) را فاش می‌کنند، بلکه هویت شما را پنهان نگه می‌دارند. در مطالب گذشته بهترین سایت های تمرین هک را معرفی کردیم اما در ادامه 5 مورد از بهترین پورت اسکر ها را به شما معرفی می کنیم.

اسکن پورت

Nmap (مخفف Network Mapper) یکی از محبوب‌ترین ابزارهای اسکن پورت متن‌باز و رایگان است. این ابزار از تکنیک‌های مختلف اسکن پورت از جمله اسکن نیمه‌باز TCP پشتیبانی می‌کند. این ابزار مزایا و امکانات متعددی دارد شامل:

  • تکنیک‌های متعدد اسکن پورت
  • شناسایی تمام پورت‌های باز در سرورهای هدف
  • اسکن پورت‌های راه‌دور
  • اسکن TCP SYN
  • اسکن پورت‌های UDP و TCP
  • امکان اسکن شبکه‌های گسترده با ده‌ها هزار دستگاه
  • سازگاری با مک، لینوکس، ویندوز، سولاریس، اُپن‌بی‌اس‌دی، فری‌بی‌اس‌دی و سایر سیستم‌ها
  • پشتیبانی از اسکن نیمه‌باز TCP (SYN Stealth Scan) برای اسکن مخفیانه
  • تشخیص سیستم‌عامل و نسخه سرویس‌ها
  • اسکن تمام 65,535 پورت با دستور nmap -p- 7.

Wireshark یک ابزار ردیابی (Sniffing) شبکه رایگان است که برای شناسایی فعالیت‌های مخرب در ترافیک شبکه استفاده می‌شود. این ابزار همچنین قادر به تشخیص پورت‌های باز است و مزایا و امکانات متعددی دارد شامل:

  • نمایش جریان درخواست و پاسخ در هر پورت
  • شناسایی شبکه‌های مخرب
  • عیب‌یابی مصرف بالای پهنای باند
  • ارائه فیلترهای متنوع برای بسته‌های داده
  • امکان ردیابی و نظارت بر جریان‌های داده مورد نظر
اسکن پورت

Angry IP Scanner یک اسکنر شبکه رایگان همراه با مجموعه‌ای از ابزارهای نظارت شبکه است و مزایا و امکانات متعددی دارد شامل:

  • نیاز به نصب ندارد
  • امکان تشخیص Hostname
  • دارای رابط خط فرمان (CLI)
  • سازگار با ویندوز، مک و لینوکس
  • خروجی نتایج اسکن در قالب CSV، TXT، XML و لیست IP-Port

نت‌کت (NetCat) یک ابزار اسکن پورت رایگان است که از پروتکل TCP/IP در اتصالات مختلف استفاده می‌کند و مزایا و امکانات متعددی دارد شامل:

  • تشخیص استفاده از آدرس IP
  • امکان اسکن پورت
  • پشتیبانی از حالت‌های تونل‌زنی برای UDP و TCP
Advanced IP Scanner

Advanced IP Scanner یک ابزاری ویندوزی برای تحلیل آدرس‌های IP و پورت‌هاست و مزایا و امکانات متعددی دارد شامل:

  • بررسی در دسترس بودن منابع
  • ایده‌آل برای تحلیل شبکه LAN
  • تشخیص خودکار مک آدرس
  • خروجی نتایج اسکن به صورت فایل CSV
  • دسترسی به منابع اشتراک‌گذاری شده (HTTP، HTTPS، FTP و پوشه‌های اشتراکی)
  • قابلیت اجرا به صورت پرتابل (بدون نصب)

منبع: upguard.com

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا