
Angriffs-Toolkit für die Quellcodeverwaltung
Source Code Management Attack Toolkit – SCMKit ist ein Toolkit, das zum Angriff auf SCM-Systeme verwendet werden kann. SCMKit ermöglicht es dem Benutzer, das SCM-System und das zu verwendende Angriffsmodul anzugeben, zusammen mit der Angabe gültiger Anmeldeinformationen (Benutzername/Passwort oder API-Schlüssel) für das jeweilige SCM-System. Derzeit unterstützt SCMKit GitHub Enterprise, GitLab Enterprise und Bitbucket Server. Die unterstützten Angriffsmodule umfassen Reconnaissance, Privilege Escalation und Persistence. SCMKit wurde modular aufgebaut, sodass in Zukunft von der Informationssicherheits-Community neue Module und SCM-Systeme hinzugefügt werden können.
Die folgenden Drittanbieter-Bibliotheken werden in diesem Projekt verwendet.
| Bibliothek | URL | Lizenz |
|---|---|---|
| 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 |
Führen Sie die folgenden Schritte aus, um Visual Studio einzurichten und das Projekt selbst zu kompilieren. 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 | Admin erforderlich? | 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 | |
| Rechteausweitung | addadmin | Ja | X | X | X |
| Rechteausweitung | removeadmin | Ja | X | X | X |
| Aufklärung | adminstats | Ja | X |
Entdecken Sie Repositories, die in einem bestimmten SCM-System verwendet werden
Geben Sie das Modul listrepo zusammen mit den relevanten Authentifizierungsinformationen und der URL an. Die Ausgabe enthält den Repository-Namen und die URL.
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