فهرست مطالب:

Netcat در پایتون: 6 مرحله
Netcat در پایتون: 6 مرحله

تصویری: Netcat در پایتون: 6 مرحله

تصویری: Netcat در پایتون: 6 مرحله
تصویری: Netcat Tutorial | Introduction to Netcat | Cybersecurity Certification Training | Edureka 2024, نوامبر
Anonim
Netcat در پایتون
Netcat در پایتون

netcat چیست؟ صفحه راهنمای netcat موارد زیر را می گوید: "برنامه nc (یا netcat) تقریباً برای هر چیزی که در زیر نور خورشید شامل سوکت های دامنه TCP ، UDP یا UNIX استفاده می شود. می تواند اتصالات TCP را باز کند ، بسته های UDP ارسال کند ، به دلخواه گوش دهد. پورت های TCP و UDP ، اسکن پورت را انجام می دهند و با IPv4 و IPv6 سروکار دارند. بر خلاف Telnet (1) ، اسکریپت های nc به خوبی انجام می شود و پیام های خطا را به جای ارسال به خروجی استاندارد ، بر روی خطای استاندارد جدا می کند ، همانطور که telnet (1) در برخی موارد"

در اصل ، netcat به شما امکان می دهد با استفاده از پروتکل TCP یا UDP به سرورهای دیگر متصل شوید. TCP مخفف Transmission Control Protocol است و ارتباط گرا است. UDP مخفف پروتکل Datagram Universal است و بدون اتصال است. TCP معمولاً برای برنامه های اینترنتی استفاده می شود ، در حالی که UDP برای پخش رسانه یا VPN استفاده می شود.

مرحله 1: چگونه شروع می کنیم؟

چگونه شروع می کنیم؟
چگونه شروع می کنیم؟

در بالا نحوه نام گذاری netcat است. می بینید که دو آرگومان در انتها به نام های "destination" و "port" وجود دارد. مقصد به نام میزبان یا آدرس IP سروری که سعی می کنیم به آن متصل شویم اشاره می کند ، در حالی که پورت به پورت سروری که سعی می کنیم به آن متصل شویم اشاره می کند.

مرحله 2: بیایید شروع کنیم

شروع کنیم
شروع کنیم

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

مرحله 3: ایجاد ارتباط

ایجاد ارتباط
ایجاد ارتباط

بیایید یک تابع netcat ایجاد کنیم که می توانیم از آن استفاده کنیم. آنچه ما اساساً در اینجا انجام می دهیم ایجاد یک سوکت و اتصال به سرور با استفاده از پارامترهای داده شده است. برای دستور netcat ، پارامترهای فعلی نام میزبان و پورت سرور است که ما سعی داریم به آنها متصل شویم. سوکت شامل پارامترهای "socket. AF_INET" و "socket. SOCK_STREAM" است زیرا ما برای این آموزش به طور پیش فرض اتصال TCP را تنظیم کرده ایم.

مرحله 4: اجازه دهید برخی از مطالب را ارسال کنید

اجازه دهید برخی از مطالب را ارسال کنید
اجازه دهید برخی از مطالب را ارسال کنید

ما عملکرد netcat خود را به پارامتر سوم ، "محتوا" ، گسترش دادیم. مطالب زیادی در اینجا وجود دارد ، بنابراین اجازه دهید آن را بر اساس شماره خط تقسیم کنیم.

خط 14-16: ما تمام محتوا را از طریق سوکت ارسال می کنیم ، کمی منتظر می مانیم و سپس سوکت را روی هرگونه داده خروجی می بندیم تا سوکت بداند دیگر هیچ اطلاعاتی در دسترس نیست.

خط 18-26: ما یک بافر برای ذخیره پاسخ سرور ایجاد می کنیم و در حالی که سوکت داده ها را دریافت می کند ، تا زمانی که داده هایی برای خواندن وجود داشته باشد ، تا 1024 بایت داده را به نتیجه اضافه می کنیم.

خط 28-29: ما می خواهیم این اتصال netcat یک اتصال یک بار باشد ، بنابراین اتصال را اعلام می کنیم و سپس اتصال را می بندیم.

خط 31: این یک درخواست استاندارد HTTP است. اگر کد را با آرگومان های خط فرمان "google.com" و "80" اجرا کنید ، پاسخ HTTP مناسب را مشاهده خواهید کرد

مرحله 5: اجازه دهید اتصال باز داشته باشیم

اجازه دهید یک اتصال باز داشته باشید
اجازه دهید یک اتصال باز داشته باشید

کد بالا (که در زیر کد قسمت قبل قرار دارد) به سادگی به ما اجازه می دهد تا چندین دستور netcat را بر روی یک اتصال شبه باز اجرا کنیم. (در واقع ، هر بار که یک فرمان را اجرا می کنید ، یک اتصال TCP جدید باز و بسته می شود ، بنابراین رفتار شبکه را واقعی شبیه سازی نمی کند ، ما این کار را فقط برای اهداف یادگیری انجام می دهیم). اجازه دهید این خط به خط را نیز تجزیه کنیم:

خط 31: ما می خواهیم دستورات را به طور نامحدود بخوانیم تا "تعاملی بودن" را حفظ کنیم.

خط 32: این بافر ماست که محتوای درخواست ما را ذخیره می کند

خط 36-45: تا زمانی که یک خط خالی را نخوانیم ، در بافر می خوانیم

خط 48: ما به سادگی تابع netcat خود را با نام میزبان ، پورت و محتوای تازه ایجاد شده (که به درستی کدگذاری شده است) فراخوانی می کنیم.

خط 50: اگر محتوای بافر ما حاوی "Connection: Close" باشد (نشان می دهد که می خواهیم اتصال را ببندیم) ، ما به سادگی از حلقه خارج می شویم

مرحله 6: نتیجه گیری

در پایان این آموزش شما باید حداقل یک برنامه کاربردی netcat داشته باشید. پیاده سازی ویژگی هایی مانند:

1. پشتیبانی از پروتکل های دیگر

2. ثابت کردن کد برای بسته نشدن هر بار اتصال

3. افزودن پرچم هایی که netcat قبلاً برای اصلاح رفتار دارد

توصیه شده: