كانت gcpwn عبارة عن أداة صممتها بنفسي أثناء محاولتي تعلم Google Cloud Platform والاستفادة من مكتبات عملاء GRPC الأحدث. وهو يتألف من العديد من وحدات التعداد التي كتبتها بالإضافة إلى وحدات استغلال الاستفادة من الأبحاث التي أجراها آخرون في هذا المجال (على سبيل المثال Rhino Security) بالإضافة إلى بعض الأدوات المستقلة المعروفة مثل GCPBucketBrute في محاولة لجعل الأداة مركزًا شاملاً لاختبار GCP . على الرغم من أن نصوص الاستغلال البرمجية الأخرى تُستخدم عادةً مرة واحدة، إلا أن برنامج GCPwn يخزن كلاً من البيانات والأذونات أثناء تشغيلك من خلال وحدات تنظم البيانات لك، وإعادة استخدامها لتسهيل حياتك فيما يتعلق بأذونات الاختبار/التتبع.
المؤلف: سكوت ويستون (@webbinroot)، NetSPI
التبعيات المطلوبة: راجع دليل تثبيت Requirements.txt + Wiki
ملاحظة التبعيات: تم اختباره بشكل أساسي على Kali Linux؛ تثبيت Docker متاح عبر Dockerfile
هذه الأداة مخصصة بشكل أساسي للمختبرين، وأولئك الذين يتعلمون فقط أمان Google Cloud Platform، والباحثين الأمنيين بشكل عام.
بالنسبة للمختبرين، كما هو موضح أعلاه، تقوم الأداة بأتمتة الكثير من البرامج النصية التي تقوم بتشغيلها عادةً، كما تقوم بتخزين البيانات لجعل وحدات الاستغلال سهلة التنفيذ.
بالنسبة لأولئك الذين يتعلمون فقط أمان Google Cloud Platform، تم إعداد الأداة بطريقة تجعل من السهل إضافة الوحدة النمطية الخاصة بك عبر طلب السحب أثناء الغوص في الخدمة الفردية.
بالنسبة للباحثين في مجال الأمن، تتيح لك الأداة تشغيل عدد كبير من استدعاءات GCP API وأقوم بتوثيق كيفية إنشاء وكيل للأداة في الخلفية من خلال أداة محلية مثل Burp Suite. لذا فإن تشغيل enum_all
مع تسجيل جميع الطلبات من burp suite سيمنحك رؤية لجميع نقاط نهاية واجهة برمجة التطبيقات المختلفة عبر جميع مكتبات بايثون المختلفة باستخدام أمر واحد. هذا هو الأمل على الأقل، لقد نجحت في العمل جزئيًا مع متغيرات env، إذا تمكن شخص ما من إنهاء فك الكود :)
قم بمراجعة الويكي على https://github.com/NetSPI/gcpwn/wiki من أجل:
تعليمات التثبيت وإعداد المجلدات : كيفية إعداد الأداة للاستخدام لأول مرة والمجلدات الافتراضية المستخدمة
إدارة المصادقة ومعلومات الرمز المميز : قم بتحميل بيانات اعتماد المستخدم و/أو الخدمة للحصول على إعداد الاعتمادات
إدارة المشاريع واسترداد بيانات الموارد : كيفية إدارة معرفات المشروع وكيفية استرداد البيانات المذكورة من جداول SQLite.
دليل الوحدات : كيفية استدعاء الوحدة + الغوص العميق في كل وحدة
إنشاء الوحدة : كيفية إضافة الوحدة الخاصة بك عبر طلب السحب (قيد التقدم - التاريخ المستهدف 15/9/2024)
أدوات خدش رأس البحث : موضوعات البحث/الأسئلة المفتوحة (قيد التقدم - التاريخ المستهدف 22/09/2024)
سيتم ضبط الأداة بشكل افتراضي على stdout "الجدول". تدعم الأداة الجدول وtxt وcsv. إذا كنت تواجه مشاكل مع الجداول، يمكنك تغيير التكوينات العامة بما يلي:
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
أو يمكنك تمرير --txt
و --table
و/أو --csv
مع كل أمر modules run
لتغيير stdoutput
modules run enum_buckets --txt
يتم تخزين البيانات المذكورة في الجداول المحلية في GCPwn. لرؤية تشغيل إخراج الجدول
# See all tables data tables # See all table columns data tables--columns # Get all data back and export to CSV file data --columns column1,column2 --csv [OUTPUT_FILE]
قم بتشغيل الوحدة enum_all
متبوعة creds info
لعرض الأذونات المذكورة حديثًا. ستمنحك وحدة process_iam_bindings
بعد ذلك ملخصًا بتنسيق TXT/CSV لارتباطات السياسة إذا كان من الممكن تعدادها، وسيحاول analyze_vulns
وضع علامة على الأدوار/الأذونات السيئة. انظر الأعلام المشتركة أدناه.
قم بتعداد كل شيء (اختر ما يناسبك)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
خذ جميع روابط سياسة IAM من enum_all أو الوحدات النمطية الأخرى المذكورة أعلاه وقم بإرجاع ملخص/تحليل vuln
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024: https://www.youtube.com/watch?v=opvv9h3Qe0s ("GCPwn: أداة اختبار لـ GCP - سكوت ويستون")
ديفكون 32 كلاود فيلاج: https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
سأراقب المشكلات/السحب بحثًا عن أي أشياء جديدة رائعة، ومع ذلك، لدي وظيفة يومية، لذا أعطني 24 ساعة على الأقل أو شيء من هذا القبيل :)
إذا كانت مشكلة صغيرة، فيفضل طرح مشكلة عبر علامة التبويب "المشاكل" للحصول على حل سريع.
تم إنشاؤه على عاتق العمالقة، وقد تم استلهام الفضل في بعض الأكواد والأفكار/الأبحاث من:
وحيد القرن الأمن (https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
الكثير من وثائق Google (https://cloud.google.com/python/docs/reference)