
Nur-Lese-Azure-DevOps-Enumerationstool, das die REST-API abfragt, um Projekte, Repositorys, Dienstverbindungen, Builds, Pipeline-Geheimnisse, Berechtigungen und Branch-Richtlinien während autorisierter Sicherheitsbewertungen zu ermitteln.
Ein Kommandozeilen-Tool zum Auflisten von Azure DevOps-Organisationen mithilfe eines Personal Access Tokens (PAT). Es fragt die Azure DevOps-REST-API ab, um Projekte, Repositories, Serviceverbindungen, Builds, Build-Artefakte und Sicherheitseinstellungen sichtbar zu machen – nützlich während autorisierter Sicherheitsbewertungen von ADO-Umgebungen.
Vom Umfang her vergleichbar mit ADOKit. Hauptunterschiede: Python-Implementierung, die portabler ist, der Fokus auf schreibgeschützter Enumeration und die Möglichkeit, Berechtigungen aufzulisten.
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
Nach der Installation ist der Befehl ado-enum im PATH verfügbar.
git clone https://github.com/ReversecLabs/azuredevops-enum.git
cd ado-enum
pip install .
Oder ohne Installation (direkte Ausführung):
pip install -r requirements.txt
python ado_enum.py --help
Geben Sie Ihr PAT über das Flag --pat oder eine Umgebungsvariable an:
export AZURE_DEVOPS_PAT=<ihr-pat>
# oder
export ADO_PAT=<ihr-pat>
ado-enum --org <ORG> [--pat <PAT>] [-k] <command> [options]
projects — Projekte auflistenado-enum --org myorg projects
ado-enum --org myorg projects --json
repos — Repositories auflistenado-enum --org myorg repos
ado-enum --org myorg repos --json
service-endpoints — Serviceverbindungen auflistenado-enum --org myorg service-endpoints
ado-enum --org myorg service-endpoints --project "MyProject"
ado-enum --org myorg service-endpoints --json
builds — Builds auflistenado-enum --org myorg builds
ado-enum --org myorg builds --project "MyProject"
build-logs — Build-Logs herunterladen# Alle Logs aus allen Projekten herunterladen
ado-enum --org myorg build-logs --output-dir ./logs
# Logs für einen bestimmten Build herunterladen
ado-enum --org myorg build-logs --project "MyProject" --build-id 42 --output-dir ./logs
search-code — Code über Repositories hinweg suchenErfordert die Code Search-Erweiterung (ms.vss-code-search), die in der Organisation installiert sein muss.
ado-enum --org myorg search-code "password"
ado-enum --org myorg search-code "connectionString"
Die Ausgabe ist JSON mit passenden Datei-URLs und den übereinstimmenden Zeilen.
enumerate — Branch-Richtlinien, Überprüfungen und Berechtigungen auflistenado-enum --org myorg enumerate
ado-enum --org myorg enumerate --project "MyProject"
Gibt Tabellen aus für:
permissions — Gruppen, Sicherheitsnamespaces und ACL-Berechtigungen auflisten# Alle Gruppen und ACL-Berechtigungen auflisten
ado-enum --org myorg permissions
# Auf ein bestimmtes Projekt beschränkte Gruppen auflisten
ado-enum --org myorg permissions --project "MyProject"
# Nur Organisationsebene-Gruppen auflisten
ado-enum --org myorg permissions --org-level
# Gruppen und Berechtigungen für einen bestimmten Benutzer anzeigen
ado-enum --org myorg permissions --user "[email protected]"
# Berechtigungen für eine bestimmte Gruppe anzeigen
ado-enum --org myorg permissions --group "Project Administrators"
Erfordert, dass das PAT die Bereiche Graph (lesen) und Identity (lesen) hat, um Gruppenmitgliedschaften und ACL-Einträge vollständig aufzulösen.
whoami — den authentifizierten Benutzer identifizierenado-enum --org myorg whoami
Liest den x-vss-userdata-Header, um den PAT-Besitzer zu identifizieren, und fragt dann die Graph-API ab, um den Anzeigenamen, den Verzeichnisalias und die Gruppenmitgliedschaften aufzulösen.
Erfordert, dass das PAT den Bereich Graph (lesen) hat, um Gruppenmitgliedschaften aufzulösen.
pipeline-vars — Pipeline-Variablen auflistenado-enum --org myorg pipeline-vars
ado-enum --org myorg pipeline-vars --project "MyProject"
ado-enum --org myorg pipeline-vars --json
Listet alle nicht-geheimen Variablen auf, die in Build-Pipeline-Definitionen definiert sind. Geheime Variablen sind ausgeschlossen; verwenden Sie pipeline-secrets, um diese aufzulisten.
pipeline-secrets — Namen geheimer Pipeline-Variablen auflistenado-enum --org myorg pipeline-secrets
ado-enum --org myorg pipeline-secrets --project "MyProject"
ado-enum --org myorg pipeline-secrets --json
Listet Variablen auf, die in Build-Pipeline-Definitionen als isSecret markiert sind. Werte werden von der API nicht preisgegeben und daher als [HIDDEN] angezeigt; der Befehl zeigt ihre Namen, zu welcher Pipeline sie gehören und in welchem Projekt sie sich befinden.
variable-groups — Inhalte von Variablengruppen auflistenado-enum --org myorg variable-groups
ado-enum --org myorg variable-groups --project "MyProject"
ado-enum --org myorg variable-groups --json
Listet alle Variablen auf, die in Variablengruppen über Projekte hinweg gespeichert sind. Geheime Variablen innerhalb von Gruppen werden mit ihren Namen und [HIDDEN] als Wert angezeigt.
secure-files — Sichere Dateien auflistenado-enum --org myorg secure-files
ado-enum --org myorg secure-files --project "MyProject"
ado-enum --org myorg secure-files --json
Listet sichere Dateien auf, die in der ADO Pipelines-Bibliothek registriert sind. Dateiinhalte werden nicht heruntergeladen; der Befehl gibt Metadaten zurück: Dateiname, ID, wer sie erstellt hat und wann.
approvals-checks — Genehmigungen und Überprüfungen für geschützte Ressourcen auflisten# Alle Ressourcentypen über alle Projekte hinweg auflisten
ado-enum --org myorg approvals-checks
# Einen bestimmten Ressourcentyp auflisten
ado-enum --org myorg approvals-checks repositories
ado-enum --org myorg approvals-checks service-connections
# Auf ein bestimmtes Projekt beschränken
ado-enum --org myorg approvals-checks --project "MyProject"
ado-enum --org myorg approvals-checks environments --project "MyProject"
# JSON-Ausgabe
ado-enum --org myorg approvals-checks --json
Unterstützte Ressourcentypen: agent-pools, environments, repositories, secure-files, service-connections, variable-groups. Wenn kein Ressourcentyp angegeben wird, werden alle Typen aufgelistet.
branch-policies — Branch-Richtlinien für ein Repository auflisten# Alle Branch-Richtlinien für ein Repository auflisten
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo"
# Auf einen bestimmten Branch filtern
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --branch main
# JSON-Ausgabe
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --json
--project und --repository sind erforderlich. --branch ist optional; ohne Angabe werden alle Richtlinien für das Repository zurückgegeben.
build-artifacts — Build-Artefakte auflisten und herunterladen# Alle Artefakte auflisten
ado-enum --org myorg build-artifacts
# Alle Artefakte herunterladen
ado-enum --org myorg build-artifacts --download
# Alle Artefakte für einen bestimmten Build herunterladen
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 --download
# Ein benanntes Artefakt herunterladen
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 \
--download --artifact-name "drop" --output-dir ./artefacts
Übergeben Sie -k, um die TLS-Verifizierung zu deaktivieren, wenn Sie durch einen abfangenden Proxy routen:
proxychains ado-enum --org myorg -k projects
Oder setzen Sie die Umgebungsvariablen HTTPS_PROXY / HTTP_PROXY – requests wird sie automatisch verwenden.
| Flag | Beschreibung |
|---|
--org | Organisationsname (z. B. myorg aus https://dev.azure.com/myorg) |
--pat | PAT-Token (oder setzen Sie AZURE_DEVOPS_PAT / ADO_PAT) |
-k / --insecure | TLS-Verifizierung deaktivieren (nützlich mit abfangenden Proxys) |