
أداة تعداد Azure DevOps للقراءة فقط تستعلم واجهة REST API لعرض المشاريع، والمستودعات، واتصالات الخدمة، وعمليات البناء، وأسرار خطوط الأنابيب، والأذونات، وسياسات الفروع أثناء تقييمات الأمان المصرح بها.
أداة سطر أوامر لتعداد مؤسسات Azure DevOps باستخدام رمز الوصول الشخصي (PAT). تقوم بالاستعلام عن واجهة برمجة تطبيقات REST الخاصة بـ Azure DevOps لعرض المشاريع والمستودعات واتصالات الخدمة والبنيات ومصنوعات البناء وإعدادات الأمان — وهي مفيدة أثناء التقييمات الأمنية المصرح بها لبيئات ADO.
مشابهة في النطاق لـ ADOKit. الاختلافات الرئيسية: تنفيذ بلغة Python مما يجعلها أكثر قابلية للنقل، وتركز هذه الأداة على التعداد للقراءة فقط وتوفر القدرة على تعداد الأذونات.
Azure DevOps enumeration tool — projects, repositories, service connections, and more.
positional arguments:
{projects,repos,service-endpoints,builds,build-logs,search-code,enumerate,permissions,whoami,pipeline-vars,pipeline-secrets,variable-groups,secure-files,approvals-checks,branch-policies,build-artifacts}
projects List projects in the organisation.
repos List git repositories in the organisation.
service-endpoints Enumerate service connections.
builds List builds for projects.
build-logs Download build logs.
search-code Search for code across repositories.
enumerate Enumerate current logged in user, repos, service connections, and projects.
permissions List groups, security namespaces, and ACL permissions.
whoami Identify the authenticated user and list their group memberships.
pipeline-vars List all variables defined in build pipelines.
pipeline-secrets List secret variable names defined in build pipelines.
variable-groups List variables defined in variable groups.
secure-files List secure files registered in projects.
approvals-checks Enumerate approvals and checks for protected pipeline resources.
branch-policies Enumerate branch policies for a repository.
build-artifacts List and download build artifacts.
options:
-h, --help show this help message and exit
--org ORG Azure DevOps organisation name (e.g. myorg)
--pat PAT Personal Access Token. If omitted, reads AZURE_DEVOPS_PAT or ADO_PAT environment variable.
-k, --insecure Disable TLS verification (useful with intercepting proxies).
pip install git+https://github.com/ReversecLabs/azuredevops-enum.git
بعد التثبيت، يصبح الأمر ado-enum متاحًا في PATH الخاص بك.
git clone https://github.com/ReversecLabs/azuredevops-enum.git
cd ado-enum
pip install .
أو بدون تثبيت (تشغيل مباشر):
pip install -r requirements.txt
python ado_enum.py --help
قدم رمز الوصول الشخصي الخاص بك عبر العلامة --pat أو متغير بيئة:
export AZURE_DEVOPS_PAT=<your-pat>
# أو
export ADO_PAT=<your-pat>
ado-enum --org <ORG> [--pat <PAT>] [-k] <command> [options]
projects — قائمة المشاريعado-enum --org myorg projects
ado-enum --org myorg projects --json
repos — قائمة المستودعاتado-enum --org myorg repos
ado-enum --org myorg repos --json
service-endpoints — تعداد اتصالات الخدمةado-enum --org myorg service-endpoints
ado-enum --org myorg service-endpoints --project "MyProject"
ado-enum --org myorg service-endpoints --json
builds — قائمة البنياتado-enum --org myorg builds
ado-enum --org myorg builds --project "MyProject"
build-logs — تنزيل سجلات البناء# تنزيل جميع السجلات عبر جميع المشاريع
ado-enum --org myorg build-logs --output-dir ./logs
# تنزيل سجلات بناء معين
ado-enum --org myorg build-logs --project "MyProject" --build-id 42 --output-dir ./logs
search-code — البحث عن الأكواد عبر المستودعاتيتطلب إضافة Code Search (ms.vss-code-search) في المؤسسة.
ado-enum --org myorg search-code "password"
ado-enum --org myorg search-code "connectionString"
المخرجات بصيغة JSON تحتوي على روابط الملفات المطابقة والأسطر التي تطابقت.
enumerate — تعداد سياسات الفروع والفحوصات والأذوناتado-enum --org myorg enumerate
ado-enum --org myorg enumerate --project "MyProject"
مخرجات جدولية لـ:
permissions — قائمة المجموعات ومساحات أمان الأسماء وأذونات ACL# قائمة بجميع المجموعات وأذونات ACL
ado-enum --org myorg permissions
# قائمة المجموعات المقتصرة على مشروع معين
ado-enum --org myorg permissions --project "MyProject"
# قائمة مجموعات مستوى المؤسسة فقط
ado-enum --org myorg permissions --org-level
# عرض المجموعات والأذونات لمستخدم معين
ado-enum --org myorg permissions --user "[email protected]"
# عرض الأذونات لمجموعة معينة
ado-enum --org myorg permissions --group "Project Administrators"
يتطلب أن يكون لدى PAT نطاقات Graph (قراءة) و Identity (قراءة) للحل الكامل لعضويات المجموعات وإدخالات ACL.
whoami — تحديد المستخدم المصادقado-enum --org myorg whoami
يقرأ العنوان x-vss-userdata لتحديد مالك PAT، ثم يستعلم واجهة Graph API لحل اسم العرض المستخدم واسم المستخدم الدليلي وعضويات المجموعات.
يتطلب أن يكون لدى PAT نطاق Graph (قراءة) لحل عضويات المجموعات.
pipeline-vars — قائمة متغيرات خطة الأنابيبado-enum --org myorg pipeline-vars
ado-enum --org myorg pipeline-vars --project "MyProject"
ado-enum --org myorg pipeline-vars --json
يسرد جميع المتغيرات غير السرية المعرفة في تعريفات خطة البناء. يتم استثناء المتغيرات السرية؛ استخدم pipeline-secrets لتعدادها.
pipeline-secrets — قائمة أسماء المتغيرات السرية في خطة الأنابيبado-enum --org myorg pipeline-secrets
ado-enum --org myorg pipeline-secrets --project "MyProject"
ado-enum --org myorg pipeline-secrets --json
يسرد المتغيرات الموسومة بـ isSecret في تعريفات خطة البناء. لا تكشف واجهة API عن القيم، وبالتالي تظهر كـ [HIDDEN]؛ يعرض الأمر أسمائها، وأي خطة تنتمي إليها، وفي أي مشروع توجد.
variable-groups — قائمة محتويات مجموعة المتغيراتado-enum --org myorg variable-groups
ado-enum --org myorg variable-groups --project "MyProject"
ado-enum --org myorg variable-groups --json
يسرد جميع المتغيرات المخزنة في مجموعات المتغيرات عبر المشاريع. تظهر المتغيرات السرية داخل المجموعات بأسمائها وقيمة [HIDDEN].
secure-files — قائمة الملفات الآمنةado-enum --org myorg secure-files
ado-enum --org myorg secure-files --project "MyProject"
ado-enum --org myorg secure-files --json
يسرد الملفات الآمنة المسجلة في مكتبة ADO Pipelines. لا يتم تنزيل محتويات الملفات؛ يعيد الأمر بيانات وصفية: اسم الملف، المعرف، من أنشأه، ومتى.
approvals-checks — تعداد الموافقات والفحوصات للموارد المحمية# تعداد جميع أنواع الموارد عبر جميع المشاريع
ado-enum --org myorg approvals-checks
# تعداد نوع محدد من الموارد
ado-enum --org myorg approvals-checks repositories
ado-enum --org myorg approvals-checks service-connections
# تقييد بمشروع معين
ado-enum --org myorg approvals-checks --project "MyProject"
ado-enum --org myorg approvals-checks environments --project "MyProject"
# مخرجات JSON
ado-enum --org myorg approvals-checks --json
أنواع الموارد المدعومة: agent-pools، environments، repositories، secure-files، service-connections، variable-groups. عند عدم تحديد نوع المورد، يتم تعداد جميع الأنواع.
branch-policies — تعداد سياسات الفرع لمستودع# قائمة بجميع سياسات الفرع لمستودع
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo"
# تصفية لفرع معين
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --branch main
# مخرجات JSON
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --json
--project و --repository مطلوبان. --branch اختياري؛ بدونه يتم إرجاع جميع السياسات الخاصة بالمستودع.
build-artifacts — قائمة وتنزيل مصنوعات البناء# قائمة بجميع المصنوعات
ado-enum --org myorg build-artifacts
# تنزيل جميع المصنوعات
ado-enum --org myorg build-artifacts --download
# تنزيل جميع المصنوعات لبناء معين
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 --download
# تنزيل مصنوعات مسماة
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 \
--download --artifact-name "drop" --output-dir ./artefacts
مرر -k لتعطيل التحقق من TLS عند التوجيه عبر وكيل متداخل:
proxychains ado-enum --org myorg -k projects
أو قم بتعيين متغيرات البيئة HTTPS_PROXY / HTTP_PROXY — ستلتزم بها requests تلقائيًا.
| العلم | الوصف |
|---|
--org | اسم المؤسسة (مثل myorg من https://dev.azure.com/myorg) |
--pat | رمز PAT (أو تعيين AZURE_DEVOPS_PAT / ADO_PAT) |
-k / --insecure | تعطيل التحقق من TLS (مفيد مع الوكلاء المتداخلين) |