
Angriffs-Toolkit für Quellcodeverwaltung
Source Code Management Angriffswerkzeugkasten - SCMKit ist ein Werkzeugkasten, der zum Angriff auf SCM-Systeme verwendet werden kann. SCMKit ermöglicht es dem Benutzer, das SCM-System und das Angriffsmodul anzugeben, sowie gültige Anmeldeinformationen (Benutzername/Passwort oder API-Schlüssel) für das jeweilige SCM-System bereitzustellen. Derzeit unterstützt SCMKit die SCM-Systeme GitHub Enterprise, GitLab Enterprise und Bitbucket Server. Zu den unterstützten Angriffsmodulen gehören Aufklärung, Privilegieneskalation und Persistenz. SCMKit wurde modular aufgebaut, sodass in Zukunft neue Module und SCM-Systeme von der Informationssicherheitsgemeinschaft hinzugefügt werden können.
Die folgenden Bibliotheken von Drittanbietern werden in diesem Projekt verwendet.
| Bibliothek | URL | Lizenz |
|---|---|---|
| Octokit | https://github.com/octokit/octokit.net | MIT-Lizenz |
| Fody | https://github.com/Fody/Fody | MIT-Lizenz |
| GitLabApiClient | https://github.com/nmklotas/GitLabApiClient | MIT-Lizenz |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT-Lizenz |
Führen Sie die folgenden Schritte aus, um Visual Studio für die Kompilierung des Projekts einzurichten. Dazu ist eine .NET-Bibliothek erforderlich, die über den NuGet-Paketmanager installiert werden kann.
https://api.nuget.org/v3/index.json hinzuInstall-Package Costura.Fody -Version 3.3.3Install-Package OctokitInstall-Package GitLabApiClientInstall-Package Newtonsoft.JsonDie folgende Tabelle zeigt, wo jedes Modul unterstützt wird
| Angriffsszenario | Modul | Erfordert Admin? | GitHub Enterprise | GitLab Enterprise | Bitbucket Server |
|---|---|---|---|---|---|
| Aufklärung | listrepo | Nein | X | X | X |
| Aufklärung | searchrepo | Nein | X | X | X |
| Aufklärung | searchcode | Nein | X | X | X |
| Aufklärung | searchfile | Nein | X | X | X |
| Aufklärung | listsnippet | Nein | X | ||
| Aufklärung | listrunner | Nein | X | ||
| Aufklärung | listgist | Nein | X | ||
| Aufklärung | listorg | Nein | X | ||
| Aufklärung | privs | Nein | X | X | |
| Aufklärung | protection | Nein | X | ||
| Persistenz | listsshkey | Nein | X | X | X |
| Persistenz | removesshkey | Nein | X | X | X |
| Persistenz | createsshkey | Nein | X | X | X |
| Persistenz | listpat | Nein | X | X | |
| Persistenz | removepat | Nein | X | X | |
| Persistenz | createpat | Ja (nur GitLab Enterprise) | X | X | |
| Privilegieneskalation | addadmin | Ja | X | X | X |
| Privilegieneskalation | removeadmin | Ja | X | X | X |
| Aufklärung | adminstats | Ja | X |
In einem bestimmten SCM-System verwendete Repositories entdecken
Geben Sie das Modul listrepo an, zusammen mit allen relevanten Authentifizierungsinformationen und der URL. Dies gibt den Repository-Namen und die URL aus.
Dies listet alle Repositories auf, die ein Benutzer sehen kann.
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
Dies listet alle Repositories auf, die ein Benutzer sehen kann.
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
Dies listet alle Repositories auf, die ein Benutzer sehen kann.
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