
# Ferramenta de enumeração do Azure DevOps somente leitura Ferramenta de enumeração do Azure DevOps somente leitura que consulta a API REST para revelar projetos, repositórios, conexões de serviço, builds, segredos de pipelines, permissões e políticas de branch durante avaliações de segurança autorizadas.
Uma ferramenta de linha de comando para enumerar organizações do Azure DevOps usando um Token de Acesso Pessoal (PAT). Ela consulta a API REST do Azure DevOps para revelar projetos, repositórios, conexões de serviço, builds, artefatos de build e configurações de segurança — útil durante avaliações de segurança autorizadas de ambientes ADO.
Semelhante em escopo ao ADOKit. Principais diferenças: implementação em Python, o que a torna mais portátil, foca em enumeração somente leitura e fornece a capacidade de enumerar permissões.
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
Após a instalação, o comando ado-enum fica disponível no seu PATH.
git clone https://github.com/ReversecLabs/azuredevops-enum.git
cd ado-enum
pip install .
Ou sem instalar (execute diretamente):
pip install -r requirements.txt
python ado_enum.py --help
Forneça seu PAT por meio da flag --pat ou de uma variável de ambiente:
export AZURE_DEVOPS_PAT=<your-pat>
# or
export ADO_PAT=<your-pat>
ado-enum --org <ORG> [--pat <PAT>] [-k] <command> [options]
| Flag | Descrição |
|---|---|
--org | Nome da organização (ex.: myorg de https://dev.azure.com/myorg) |
--pat | Token PAT (ou defina AZURE_DEVOPS_PAT / ADO_PAT) |
-k / --insecure | Desativa a verificação TLS (útil com proxies de interceptação) |
projects — listar projetosado-enum --org myorg projects
ado-enum --org myorg projects --json
repos — listar repositóriosado-enum --org myorg repos
ado-enum --org myorg repos --json
service-endpoints — enumerar conexões de serviçoado-enum --org myorg service-endpoints
ado-enum --org myorg service-endpoints --project "MyProject"
ado-enum --org myorg service-endpoints --json
builds — listar buildsado-enum --org myorg builds
ado-enum --org myorg builds --project "MyProject"
build-logs — baixar logs de build# Download all logs across all projects
ado-enum --org myorg build-logs --output-dir ./logs
# Download logs for a specific build
ado-enum --org myorg build-logs --project "MyProject" --build-id 42 --output-dir ./logs
search-code — pesquisar código nos repositóriosRequer que a extensão Code Search (ms.vss-code-search) esteja instalada na organização.
ado-enum --org myorg search-code "password"
ado-enum --org myorg search-code "connectionString"
A saída é JSON com URLs dos arquivos correspondentes e as linhas que corresponderam.
enumerate — enumerar políticas de branch, verificações e permissõesado-enum --org myorg enumerate
ado-enum --org myorg enumerate --project "MyProject"
Exibe tabelas para:
permissions — listar grupos, namespaces de segurança e permissões de ACL# List all groups and ACL permissions
ado-enum --org myorg permissions
# List groups scoped to a specific project
ado-enum --org myorg permissions --project "MyProject"
# List org-level groups only
ado-enum --org myorg permissions --org-level
# Show groups and permissions for a specific user
ado-enum --org myorg permissions --user "[email protected]"
# Show permissions for a specific group
ado-enum --org myorg permissions --group "Project Administrators"
Requer que o PAT tenha os escopos Graph (read) e Identity (read) para resolução completa das associações de grupo e entradas de ACL.
whoami — identificar o usuário autenticadoado-enum --org myorg whoami
Lê o cabeçalho x-vss-userdata para identificar o proprietário do PAT e, em seguida, consulta a API Graph para resolver seu nome de exibição, alias de diretório e associações de grupo.
Requer que o PAT tenha o escopo Graph (read) para resolução de associações de grupo.
pipeline-vars — listar variáveis de pipelineado-enum --org myorg pipeline-vars
ado-enum --org myorg pipeline-vars --project "MyProject"
ado-enum --org myorg pipeline-vars --json
Lista todas as variáveis não secretas definidas nas definições de pipeline de build. Variáveis secretas são excluídas; use pipeline-secrets para enumerá-las.
pipeline-secrets — listar nomes de variáveis secretas de pipelineado-enum --org myorg pipeline-secrets
ado-enum --org myorg pipeline-secrets --project "MyProject"
ado-enum --org myorg pipeline-secrets --json
Lista variáveis marcadas como isSecret nas definições de pipeline de build. Os valores não são expostos pela API e, portanto, são exibidos como [HIDDEN]; o comando revela seus nomes, a qual pipeline pertencem e em qual projeto estão.
variable-groups — listar conteúdos de grupos de variáveisado-enum --org myorg variable-groups
ado-enum --org myorg variable-groups --project "MyProject"
ado-enum --org myorg variable-groups --json
Lista todas as variáveis armazenadas em grupos de variáveis nos projetos. Variáveis secretas dentro dos grupos são exibidas com seus nomes e [HIDDEN] como valor.
secure-files — listar arquivos segurosado-enum --org myorg secure-files
ado-enum --org myorg secure-files --project "MyProject"
ado-enum --org myorg secure-files --json
Lista arquivos seguros registrados na biblioteca ADO Pipelines. O conteúdo dos arquivos não é baixado; o comando retorna metadados: nome do arquivo, ID, quem o criou e quando.
approvals-checks — enumerar aprovações e verificações para recursos protegidos# Enumerate all resource types across all projects
ado-enum --org myorg approvals-checks
# Enumerate a specific resource type
ado-enum --org myorg approvals-checks repositories
ado-enum --org myorg approvals-checks service-connections
# Limit to a specific project
ado-enum --org myorg approvals-checks --project "MyProject"
ado-enum --org myorg approvals-checks environments --project "MyProject"
# JSON output
ado-enum --org myorg approvals-checks --json
Tipos de recurso suportados: agent-pools, environments, repositories, secure-files, service-connections, variable-groups. Quando nenhum tipo de recurso é especificado, todos os tipos são enumerados.
branch-policies — enumerar políticas de branch para um repositório# List all branch policies for a repository
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo"
# Filter to a specific branch
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --branch main
# JSON output
ado-enum --org myorg branch-policies --project "MyProject" --repository "MyRepo" --json
--project e --repository são obrigatórios. --branch é opcional; sem ele, todas as políticas do repositório são retornadas.
build-artifacts — listar e baixar artefatos de build# List all artefacts
ado-enum --org myorg build-artifacts
# Download all artefacts
ado-enum --org myorg build-artifacts --download
# Download all artefacts for a specific build
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 --download
# Download a named artefact
ado-enum --org myorg build-artifacts --project "MyProject" --build-id 42 \
--download --artifact-name "drop" --output-dir ./artefacts
Use -k para desativar a verificação TLS ao rotear por um proxy de interceptação:
proxychains ado-enum --org myorg -k projects
Ou defina as variáveis de ambiente HTTPS_PROXY / HTTP_PROXY — requests as respeitará automaticamente.