ذكري المظهر

أمر Netcat (nc) مع أمثلة

NMap 101: Scanning Networks For Open Ports To Access, HakTip 94

NMap 101: Scanning Networks For Open Ports To Access, HakTip 94

جدول المحتويات:

Anonim

Netcat (أو nc) هو أداة مساعدة لسطر الأوامر تقوم بقراءة وكتابة البيانات عبر اتصالات الشبكة ، باستخدام بروتوكولات TCP أو UDP. إنها واحدة من أقوى الأدوات في ترسانة مسؤولي النظام والشبكة والتي تعتبر بمثابة سكين الجيش السويسري لأدوات الشبكات.

Netcat عبارة عن منصة مشتركة ومتاحة لنظام التشغيل Linux و macOS و Windows و BSD. يمكنك استخدام Netcat لتصحيح ومراقبة اتصالات الشبكة ، والمسح بحثًا عن المنافذ المفتوحة ، ونقل البيانات ، وكوكيل وغير ذلك. تم تثبيت حزمة Netcat مسبقًا على نظام التشغيل macOS وتوزيعات Linux الشائعة مثل Ubuntu.

بناء جملة Netcat

بناء الجملة الأساسي للأداة المساعدة Netcat يأخذ النموذج التالي:

nc host port

على Ubuntu ، يمكنك استخدام netcat أو nc . كلاهما الارتباطات إلى نسخة openBSD من Netcat.

بشكل افتراضي ، سيحاول Netcat بدء اتصال TCP بالمضيف والمنفذ المحددين. إذا كنت ترغب في تأسيس اتصال UDP ، فاستخدم الخيار -u :

nc -u host port

ميناء المسح الضوئي

تعد منافذ المسح الضوئي واحدة من أكثر استخدامات Netcat شيوعًا. يمكنك مسح منفذ واحد أو نطاق منفذ.

على سبيل المثال ، للبحث عن المنافذ المفتوحة في النطاق 20-80 ، يمكنك استخدام الأمر التالي:

nc -z -v 10.10.8.8 20-80

-z الخيار -z nc بالبحث فقط عن المنافذ المفتوحة ، دون إرسال أي بيانات إليها وخيار -v لتوفير مزيد من المعلومات المطوّلة.

سيظهر الإخراج بشيء من هذا القبيل:

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 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 succeeded!

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

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port 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 لمسح المنافذ بشكل معقد.

إرسال الملفات من خلال Netcat

يمكن استخدام Netcat لنقل البيانات من مضيف إلى آخر عن طريق إنشاء نموذج عميل / خادم أساسي.

يعمل هذا عن طريق تعيين Netcat للاستماع على منفذ معين (باستخدام الخيار -l ) على مضيف الاستقبال ثم إنشاء اتصال TCP منتظم من المضيف الآخر وإرسال الملف فوقه.

في حالة الاستلام ، قم بتشغيل الأمر التالي الذي سيفتح المنفذ 5555 للاتصال الوارد وإعادة توجيه الإخراج إلى الملف:

nc -l 5555 > file_name

من المضيف المرسل ، قم بالاتصال بالمضيف المستلم وأرسل الملف:

nc receiving.host.com 5555 < file_name

لنقل دليل ، يمكنك استخدام tar لأرشفة الدليل على المضيف المصدر واستخراج الأرشيف على المضيف الوجهة.

على مضيف الاستلام ، قم بتعيين أداة Netcat للاستماع إلى اتصال وارد على المنفذ 5555. يتم توصيل البيانات الواردة إلى أمر tar والذي سيقوم باستخراج الأرشيف:

nc -l 5555 | tar xzvf -

في حزمة إرسال المضيف ، أرسل الدليل وإرسال البيانات عن طريق الاتصال بعملية الاستماع إلى المضيف على:

tar czvf - /path/to/dir | nc receiving.host.com 5555

يمكنك مشاهدة تقدم النقل على كلا الطرفين. بمجرد الانتهاء ، اكتب CTRL+C لإغلاق الاتصال.

إنشاء خادم دردشة بسيط

إن إجراء إنشاء دردشة عبر الإنترنت بين مضيفين أو أكثر هو نفسه عند نقل الملفات.

على المضيف الأول ، ابدأ عملية Netcat للاستماع على المنفذ 5555:

nc -l 5555

من المضيف الثاني ، قم بتشغيل الأمر التالي للاتصال بمنفذ الاستماع:

nc first.host.com 5555

الآن إذا قمت بكتابة رسالة واضغط ENTER ، فسيتم عرضها على كلا المضيفين.

لإغلاق الاتصال ، اكتب CTRL+C

تنفيذ طلب HTTP

على الرغم من وجود أدوات أفضل بكثير لطلبات HTTP مثل curl ، يمكنك أيضًا استخدام Netcat لإرسال طلبات مختلفة إلى خوادم بعيدة.

على سبيل المثال ، لاسترداد الصفحة الشخصية لـ Netcat من موقع OpenBSD على الويب ، يمكنك كتابة:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

ستتم طباعة الاستجابة الكاملة بما في ذلك رؤوس HTTP ورمز HTML في الجهاز.

استنتاج

في هذا البرنامج التعليمي ، تعلمت كيفية استخدام الأداة المساعدة Netcat لإنشاء واختبار اتصالات TCP و UDP.

لمزيد من المعلومات ، تفضل بزيارة صفحة Netcat man واقرأ جميع الخيارات القوية الأخرى لأمر Netcat.

محطة netcat