
Kit de herramientas de ataque para gestión de código fuente
Source Code Management Attack Toolkit - SCMKit es un conjunto de herramientas que se puede utilizar para atacar sistemas SCM. SCMKit permite al usuario especificar el sistema SCM y el módulo de ataque a utilizar, junto con la especificación de credenciales válidas (nombre de usuario/contraseña o clave API) para el sistema SCM correspondiente. Actualmente, los sistemas SCM que admite SCMKit son GitHub Enterprise, GitLab Enterprise y Bitbucket Server. Los módulos de ataque compatibles incluyen reconocimiento, escalada de privilegios y persistencia. SCMKit se construyó de forma modular, para que la comunidad de seguridad de la información pueda agregar nuevos módulos y sistemas SCM en el futuro.
Las siguientes bibliotecas de terceros se utilizan en este proyecto.
| Biblioteca | URL | Licencia |
|---|---|---|
| Octokit | https://github.com/octokit/octokit.net | Licencia MIT |
| Fody | https://github.com/Fody/Fody | Licencia MIT |
| GitLabApiClient | https://github.com/nmklotas/GitLabApiClient | Licencia MIT |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | Licencia MIT |
Siga los pasos siguientes para configurar Visual Studio y compilar el proyecto usted mismo. Esto requiere una biblioteca .NET que se puede instalar desde el administrador de paquetes NuGet.
https://api.nuget.org/v3/index.jsonInstall-Package Costura.Fody -Version 3.3.3Install-Package OctokitInstall-Package GitLabApiClientInstall-Package Newtonsoft.JsonLa siguiente tabla muestra dónde es compatible cada módulo
| Escenario de ataque | Módulo | ¿Requiere admin? | GitHub Enterprise | GitLab Enterprise | Bitbucket Server |
|---|---|---|---|---|---|
| Reconocimiento | listrepo | No | X | X | X |
| Reconocimiento | searchrepo | No | X | X | X |
| Reconocimiento | searchcode | No | X | X | X |
| Reconocimiento | searchfile | No | X | X | X |
| Reconocimiento | listsnippet | No | X | ||
| Reconocimiento | listrunner | No | X | ||
| Reconocimiento | listgist | No | X | ||
| Reconocimiento | listorg | No | X | ||
| Reconocimiento | privs | No | X | X | |
| Reconocimiento | protection | No | X | ||
| Persistencia | listsshkey | No | X | X | X |
| Persistencia | removesshkey | No | X | X | X |
| Persistencia | createsshkey | No | X | X | X |
| Persistencia | listpat | No | X | X | |
| Persistencia | removepat | No | X | X | |
| Persistencia | createpat | Sí (solo GitLab Enterprise) | X | X | |
| Escalada de privilegios | addadmin | Sí | X | X | X |
| Escalada de privilegios | removeadmin | Sí | X | X | X |
| Reconocimiento | adminstats | Sí | X |
Descubrir repositorios utilizados en un sistema SCM particular
Proporcione el módulo listrepo, junto con la información de autenticación relevante y la URL. Esto mostrará el nombre del repositorio y la URL.
Esto listará todos los repositorios que un usuario puede ver.
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
Esto listará todos los repositorios que un usuario puede ver.
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
Esto listará todos los repositorios que un usuario puede ver.
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