
Toolkit di attacco per la gestione del codice sorgente
Source Code Management Attack Toolkit - SCMKit è un toolkit che può essere utilizzato per attaccare sistemi SCM. SCMKit permette all'utente di specificare il sistema SCM e il modulo di attacco da utilizzare, insieme alla specifica di credenziali valide (username/password o chiave API) per il rispettivo sistema SCM. Attualmente, i sistemi SCM supportati da SCMKit sono GitHub Enterprise, GitLab Enterprise e Bitbucket Server. I moduli di attacco supportati includono ricognizione, escalation dei privilegi e persistenza. SCMKit è stato costruito con un approccio modulare, in modo che nuovi moduli e sistemi SCM possano essere aggiunti in futuro dalla comunità della sicurezza informatica.
Le seguenti librerie di terze parti sono utilizzate in questo progetto.
| Libreria | URL | Licenza |
|---|---|---|
| Octokit | https://github.com/octokit/octokit.net | Licenza MIT |
| Fody | https://github.com/Fody/Fody | Licenza MIT |
| GitLabApiClient | https://github.com/nmklotas/GitLabApiClient | Licenza MIT |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | Licenza MIT |
Segui i passaggi seguenti per configurare Visual Studio al fine di compilare il progetto da te. Ciò richiede una libreria .NET che può essere installata dal gestore pacchetti NuGet.
https://api.nuget.org/v3/index.jsonInstall-Package Costura.Fody -Version 3.3.3Install-Package OctokitInstall-Package GitLabApiClientInstall-Package Newtonsoft.JsonLa tabella seguente mostra dove ogni modulo è supportato
| Scenario di attacco | Modulo | Richiede Admin? | GitHub Enterprise | GitLab Enterprise | Bitbucket Server |
|---|---|---|---|---|---|
| Ricognizione | listrepo | No | X | X | X |
| Ricognizione | searchrepo | No | X | X | X |
| Ricognizione | searchcode | No | X | X | X |
| Ricognizione | searchfile | No | X | X | X |
| Ricognizione | listsnippet | No | X | ||
| Ricognizione | listrunner | No | X | ||
| Ricognizione | listgist | No | X | ||
| Ricognizione | listorg | No | X | ||
| Ricognizione | privs | No | X | X | |
| Ricognizione | protection | No | X | ||
| Persistenza | listsshkey | No | X | X | X |
| Persistenza | removesshkey | No | X | X | X |
| Persistenza | createsshkey | No | X | X | X |
| Persistenza | listpat | No | X | X | |
| Persistenza | removepat | No | X | X | |
| Persistenza | createpat | Sì (solo GitLab Enterprise) | X | X | |
| Escalation dei privilegi | addadmin | Sì | X | X | X |
| Escalation dei privilegi | removeadmin | Sì | X | X | X |
| Ricognizione | adminstats | Sì | X |
Scoprire i repository utilizzati in un particolare sistema SCM
Fornisci il modulo listrepo, insieme alle informazioni di autenticazione pertinenti e all'URL. Verranno restituiti il nome del repository e l'URL.
Questo elencherà tutti i repository che un utente può vedere.
SCMKit.exe -s github -m listrepo -c userName:password -u https://github.something.local
SCMKit.exe -s github -m listrepo -c apiKey -u https://github.something.local
Questo elencherà tutti i repository che un utente può vedere.
SCMKit.exe -s gitlab -m listrepo -c userName:password -u https://gitlab.something.local
SCMKit.exe -s gitlab -m listrepo -c apiKey -u https://gitlab.something.local
Questo elencherà tutti i repository che un utente può vedere.
SCMKit.exe -s bitbucket -m listrepo -c userName:password -u https://bitbucket.something.local
SCMKit.exe -s bitbucket -m listrepo -c apiKey -u https://bitbucket.something.local
C:>SCMKit.exe -s gitlab -m listrepo -c username:password -u https://gitlab.hogwarts.local