
تحديد مسارات تصعيد الامتيازات داخل وعبر السحب المختلفة

تقوم هذه الأداة بجلب الموارد من تطبيقات سحابية / برامج خدمية مختلفة مع التركيز على الأذونات بهدف تحديد مسارات تصعيد الامتيازات والأذونات الخطيرة في التكوينات السحابية / البرامج الخدمية. لاحظ أن PurplePanda يبحث عن مسارات تصعيد الامتيازات داخل منصة واحدة وعبر المنصات المختلفة.
الاسم مشتق من حيوان الباندا الأحمر. يأكل هذا الباندا البازلاء، تمامًا مثل PurplePanda، الذي يمكنه ابتلاع مفاتيح API / الرموز المميزة التي تعثر عليها PEASS. تم تغيير اللون إلى الأرجواني لأن هذه الأداة موجهة بشكل أساسي لفرق الأرجواني (لأنها يمكن أن تكون مفيدة للغاية لكل من الفرق الزرقاء والحمراء).
يُعرّف كل مجلد داخل /intel منصة واحدة يمكن تعدادها ويحتوي على ملف README.md يشرح كيفية استخدام تلك الوحدة المحددة.
قم بتنزيل Neo4jDesktop وأنشئ قاعدة بيانات. ثم قم بتصدير متغيرات البيئة PURPLEPANDA_NEO4J_URL و PURPLEPANDA_PWD مع عنوان URL لقاعدة بيانات neo4j وكلمة المرور.
إذا كنت ترغب في استخدام shodan مع عناوين IP العامة التي تم اكتشافها أثناء التعداد، قم بتصدير متغير بيئة يسمى SHODAN_KEY بمفتاح API صالح من shodan.
ثم قم فقط بتثبيت البرنامج وإطلاقه مع الإشارة إلى المنصات التي تريد تعدادها مفصولة بفواصل مثل.
git clone https://github.com/carlospolop/PurplePanda
cd PurplePanda
python3 -m venv .
source bin/activate
python3 -m pip install -r requirements.txt
export PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"
export PURPLEPANDA_PWD="s3cr3tpassword"
# قم بتثبيت هذا إذا كنت ستستخدم GCP
gcloud components install gke-gcloud-auth-plugin
python3 main.py -h # للحصول على المساعدة
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # تعداد google و github و k8s
# فكر في إضافة مفاتيح API في Dockerfile
docker rm -f purplepanda
docker build --tag=purplepanda .
# تنفيذ -h
## قم بتغيير -h بالمعاملات التي تريد تشغيل purplepanda بها
docker run -t \
-e PURPLEPANDA_NEO4J_URL="bolt://[email protected]:7687" \
-e PURPLEPANDA_PWD="s3cr3tpassword" \
-e GOOGLE_DISCOVERY=... \
-e GITHUB_DISCOVERY=... \
-e K8S_DISCOVERY=... \
-e CONCOURSE_DISCOVERY=... \
-e CIRCLECI_DISCOVERY=... \
purplepanda python3 main.py -h
## -t ضروري لرؤية المخرجات بشكل صحيح
## إذا كنت تستخدم Neo4Desktop للاتصال بقاعدة البيانات، استخدم النطاق host.docker.internal
## قد تحتاج إلى استخدام الخيار '-v' لتركيب ملفات التكوينات
لدى PurplePanda وضعان للتحليل:
-e (تعداد): هذا هو الوضع الرئيسي، سيحاول جمع البيانات وتحليلها.-a (تحليل): سيقوم هذا بإجراء تحليل سريع لبيانات الاعتماد المقدمة.تعرف على كيفية استخدام وفحص البيانات التي تم جمعها بواسطة PurplePanda:
استخدم بيانات اعتماد لكل منصة مع وصول قراءة إداري على الأقل لجميع الموارد في المنصة. سيساعدك هذا على رؤية مسارات تصعيد الامتيازات التي يمكن استغلالها داخل تكويناتك في كل منصة وعبر المنصات.
تم تصميم PurplePanda أيضًا لاستخدامه من قبل الفرق الحمراء. بشكل عام، المنصات السحابية / البرامج الخدمية لن تمنح الجميع حق الوصول لقراءة التكوين للمنصة، لذلك يدعم PurplePanda استخدام عدة مفاتيح لنفس المنصة، من أجل محاولة تعداد كل شيء بجميع المفاتيح التي اخترقتها والحصول على الرؤية الأكثر دقة لتكوين المنصة.
استخدم المعامل -d مع الإشارة إلى دليل. بعد ذلك، سيقوم PurplePanda بكتابة عدة تحليلات مثيرة للاهتمام في هذا الدليل بتنسيق csv من المعلومات التي تم الحصول عليها من جميع المنصات. التوصية هي العثور على أشياء مثيرة للاهتمام وغير متوقعة في تلك الملفات ثم الانتقال إلى تحليل تلك الحالات المثيرة للاهتمام باستخدام الرسوم البيانية.
يُعرّف كل مجلد داخل /intel منصة واحدة يمكن تعدادها ويحتوي على ملف README.md يشرح كيفية استخدام تلك الوحدة المحددة. علاوة على ذلك، يحتوي كل مجلد أيضًا على ملف HOW_TO_USE.md وملف QUERIES.md.
في ملف HOW_TO_USE.md يمكنك العثور على أفضل الاستعلامات لإجراء تحقيق حول كيفية تصعيد الامتيازات (للفرق الأرجوانية والزرقاء والحمراء).
في ملف QUERIES.md ستجد جميع الاستعلامات المقترحة لتسهيل التحقيق في البيانات.
اتبع التعليمات الموضحة في VISUALIZE_GRAPHS.md
في المجلد الجذر وفي كل مجلد داخل intel/ ستجد ملف TODO.md. يمكنك العثور في تلك الملفات على كيفية المساعدة. فقط أرسل طلب سحب (PR) مع الإضافة.
طلبات السحب (PRs) الخاصة بالإصلاحات مرحب بها أيضًا :)
علاوة على ذلك، إذا كانت لديك أفكار أخرى غير موجودة في ملفات TODO تلك، فلا تتردد في إرسال طلب سحب.
بقلم كارلوس بولوبTM