
Azure DevOps 組織を Personal Access Token(PAT)を使って列挙するためのコマンドラインツールです。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>
# または
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 で、一致したファイルの URL と一致した行が含まれます。
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
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 ライブラリに登録されているセキュアファイルを一覧表示します。ファイルの内容はダウンロードされません。このコマンドはメタデータ(ファイル名、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
傍受プロキシ経由でルーティングする場合、-k を指定して TLS 検証を無効にします:
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 検証を無効化(傍受プロキシと併用する場合に有用) |