
केवल-पढ़ने के लिए Azure DevOps सूचीकरण उपकरण जो REST API को क्वेरी करके प्रोजेक्ट्स, रिपॉजिटरी, सेवा कनेक्शन, बिल्ड, पाइपलाइन रहस्य, अनुमतियाँ, और शाखा नीतियों को सामने लाता है अधिकृत सुरक्षा मूल्यांकनों के दौरान।
एक कमांड-लाइन टूल जो व्यक्तिगत पहुँच टोकन (PAT) का उपयोग करके Azure DevOps संगठनों की गणना करने के लिए है। यह Azure DevOps REST API को क्वेरी करता है ताकि परियोजनाओं, भंडारों, सेवा कनेक्शनों, बिल्डों, बिल्ड आर्टिफ़ैक्टों और सुरक्षा सेटिंग्स को प्रदर्शित किया जा सके — 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 --pat फ़्लैग या पर्यावरण चर के माध्यम से प्रदान करें:
export AZURE_DEVOPS_PAT=<your-pat>
# or
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"
आउटपुट मिलान फ़ाइल URL और मिलान पंक्तियों के साथ 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"
समूह सदस्यता और ACL प्रविष्टियों के पूर्ण समाधान के लिए PAT के पास Graph (पढ़ें) और Identity (पढ़ें) दायरे होने चाहिए।
whoami — प्रमाणित उपयोगकर्ता की पहचान करेंado-enum --org myorg whoami
PAT स्वामी की पहचान करने के लिए x-vss-userdata हेडर पढ़ता है, फिर 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 पाइपलाइन लाइब्रेरी में पंजीकृत सुरक्षित फ़ाइलों की सूची बनाता है। फ़ाइल सामग्री डाउनलोड नहीं की जाती; कमांड मेटाडेटा लौटाता है: फ़ाइल का नाम, ID, किसने बनाया, और कब।
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
इंटरसेप्टिंग प्रॉक्सी के माध्यम से रूट करते समय TLS सत्यापन अक्षम करने के लिए -k पास करें:
proxychains ado-enum --org myorg -k projects
या HTTPS_PROXY / HTTP_PROXY पर्यावरण चर सेट करें — requests उन्हें स्वचालित रूप से सम्मानित करेगा।
| फ़्लैग | विवरण |
|---|
--org | संगठन का नाम (जैसे https://dev.azure.com/myorg से myorg) |
--pat | PAT टोकन (या AZURE_DEVOPS_PAT / ADO_PAT सेट करें) |
-k / --insecure | TLS सत्यापन अक्षम करें (इंटरसेप्टिंग प्रॉक्सी के साथ उपयोगी) |