خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه اسکن پورت در لینوکس با Netcat یا nc

نحوه اسکن پورت در لینوکس با Netcat یا nc
Netcat (یا nc) یک ابزار خط فرمان است که با استفاده از پروتکل‌های TCP یا UDP، داده‌ها را در اتصالات شبکه ای Read و Write می کند.

نرم افزار سامانه مودیان راهکار
Nc یک ابزار cross-platform است و برای Linux، macOS، Windows و BSD در دسترس است. شما می‌توانید از Netcat برای debug و مانیتورینگ بر اتصالات شبکه، اسکن پورت‌های باز، انتقال داده‌ها، به عنوان یک پروکسی و موارد دیگر استفاده کنید. البته در این مطلب کوتاه فقط به اسکن پورت توسط این ابزار لینوکسی می پردازیم.


پکیج Netcat از پیش روی macOS و توزیع های محبوب لینوکس مانند Ubuntu، Debian یا CentOS نصب می باشد.
پایه ای ترین سینتکس دستور netcat بصورت زیر می باشد.

nc [options] host port

در اوبونتو می توانید از netcat یا nc استفاده کنید. به طور پیش فرض، Netcat درصدد این است که یک TCP connection به هاست و پورت مشخص شده ایجاد و استارت کند. اگر می خواهید یک UDP connection ایجاد کنید، از گزینه u- استفاده کنید:

nc -u host port

پورت اسکن یکی از رایج ترین کاربردهای Netcat است. می توانید یک پورت یا یک محدوده پورت را اسکن کنید.
به عنوان مثال، برای اسکن پورت های باز در محدوده 20-80 روی یک هاست خاص، از دستور زیر استفاده می کنید:

nc -z -v 10.10.8.8 20-80

گزینه z- به nc می گوید که فقط پورت های باز را بدون ارسال هیچ داده ای اسکن کند.
خروجی ما را در زیر مشاهده می کنید و خروجی شما بر حسب هاستی که آن را اسکن می کنید، متفاوت از خروجی زیر خواهد بود:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

اگر می خواهید که پورت های باز را نمایش دهید، می توانید نتایج را با دستور grep فیلتر کنید.

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

همچنین می توانید از Netcat برای یافتن نرم افزار سرور و نسخه آن استفاده کنید. به عنوان مثال، اگر یک فرمان "EXIT" را به سرور در پورت SSH پیش فرض 22 ارسال کنید:

echo "EXIT" | nc 10.10.8.8 22

خروجی چیزی شبیه به خروجی زیر خواهد بود:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.

برای اسکن پورت‌های UDP کافی است مانند شکل زیر گزینه u- را به دستور اضافه کنید:

nc -z -v -u 10.10.8.8 20-80

به طور معمول، Nmap ابزار بهتری نسبت به Netcat برای اسکن پورت است.


از nc استفاده های دیگری هم می توان در لینوس انجام داد که ما فقط موضوع اسکن پورت ها را مورد بررسی قرار دادیم.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز