
Toolkit di attacco per la gestione del codice sorgente
Source Code Management Attack Toolkit - SCMKit è un toolkit che può essere utilizzato per attaccare i sistemi SCM. SCMKit consente all'utente di specificare il sistema SCM e il modulo di attacco da utilizzare, oltre a specificare 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 sviluppato con un approccio modulare, così che nuovi moduli e sistemi SCM possano essere aggiunti in futuro dalla community di sicurezza informatica.
Le seguenti librerie di terze parti sono utilizzate in questo progetto.
| Libreria | URL | Licenza |
|---|---|---|
| Octokit | https://github.com/octokit/octokit.net | MIT License |
| Fody | https://github.com/Fody/Fody | MIT License |
| GitLabApiClient | https://github.com/nmklotas/GitLabApiClient | MIT License |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT License |
Segui i passaggi seguenti per configurare Visual Studio e compilare il progetto da solo. Questo 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 |
Scopri i repository utilizzati in un particolare sistema SCM
Fornisci il modulo listrepo, insieme alle informazioni di autenticazione rilevanti e all'URL. Questo restituirà 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
================================================== Module: listrepo System: gitlab Auth Type: Username/Password Options: Target URL: https://gitlab.hogwarts.local