Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SCMKit — Angriffs-Toolkit für die Quellcodeverwaltung | Kitploit
Tools/GitHubGitHub/xforcered/scmkit
Privilege EscalationAufklärungPersistenzmechanismenInformationsbeschaffungPost-ExploitationPenetrationstestsRed Teaming
GitHubxforcered/scmkit

SCMKit

Angriffs-Toolkit für die Quellcodeverwaltung

Repository anzeigen
13419vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SCMKit

Beschreibung

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.

Release

  • Version 1.2 von SCMKit finden Sie in den Releases

Inhaltsverzeichnis

  • SCMKit
  • Inhaltsverzeichnis
  • Installation/Build
    • Verwendete Bibliotheken
    • Vorkompiliert
    • Selbst erstellen
  • Verwendung
    • Argumente/Optionen
    • Systeme
    • Module
    • Modul-Details-Tabelle
  • Beispiele
    • Repositories auflisten
    • Repositories suchen
    • Code suchen
    • Dateien suchen
    • Snippets auflisten
    • Runner auflisten
    • Gists auflisten
    • Organisationen auflisten
    • Berechtigungen des API-Tokens abrufen
    • Administrator hinzufügen
    • Administrator entfernen
    • Zugriffstoken erstellen
    • Zugriffstoken auflisten
    • Zugriffstoken entfernen
    • SSH-Schlüssel erstellen
    • SSH-Schlüssel auflisten
    • SSH-Schlüssel entfernen
    • Admin-Statistiken auflisten
    • Branch-Schutz auflisten
  • Erkennung
  • Referenzen

Installation/Build

Verwendete Bibliotheken

Die folgenden Drittanbieter-Bibliotheken werden in diesem Projekt verwendet.

Vorkompiliert

  • Verwenden Sie die vorkompilierte Binärdatei aus den Releases

Selbst erstellen

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.

  • Laden Sie das Visual Studio-Projekt und navigieren Sie zu „Extras“ --> „NuGet-Paketmanager“ --> „Paketmanager-Einstellungen“
  • Gehen Sie zu „NuGet-Paketmanager“ --> „Paketquellen“
  • Fügen Sie eine Paketquelle mit der URL https://api.nuget.org/v3/index.json hinzu
  • Installieren Sie die folgenden NuGet-Pakete
    • Install-Package Costura.Fody -Version 3.3.3
    • Install-Package Octokit
    • Install-Package GitLabApiClient
    • Install-Package Newtonsoft.Json
  • Sie können das Projekt jetzt selbst erstellen!

Verwendung

Argumente/Optionen

  • -c, -credential - Anmeldeinformationen für die Authentifizierung (Benutzername:Passwort oder apiKey)
  • -s, -system - System, das angegriffen werden soll (github,gitlab,bitbucket)
  • -u, -url - URL für GitHub Enterprise, GitLab Enterprise oder Bitbucket Server
  • -m, -module - auszuführendes Modul
  • -o, -option - Optionen (falls zutreffend)

Systeme (-s, -system)

  • github: GitHub Enterprise
  • gitlab: GitLab Enterprise
  • bitbucket: Bitbucket Server

Module (-m, -module)

  • listrepo: alle Repositories auflisten, die der aktuelle Benutzer sehen kann
  • searchrepo: nach einem bestimmten Repository suchen
  • searchcode: nach Code suchen, der den Suchbegriff enthält
  • searchfile: nach Dateinamen suchen, die den Suchbegriff enthalten
  • listsnippet: alle Snippets des aktuellen Benutzers auflisten
  • listrunner: alle GitLab-Runner auflisten, die dem aktuellen Benutzer zur Verfügung stehen
  • listgist: alle Gists des aktuellen Benutzers auflisten
  • listorg: alle Organisationen auflisten, denen der aktuelle Benutzer angehört
  • privs: Berechtigungen des aktuellen API-Tokens abrufen
  • addadmin: angegebenen Benutzer zur Admin-Rolle befördern
  • removeadmin: angegebenen Benutzer von der Admin-Rolle herabstufen
  • createpat: persönliches Zugriffstoken für den Zielbenutzer erstellen
  • listpat: persönliche Zugriffstoken für einen Zielbenutzer auflisten
  • removepat: persönliches Zugriffstoken für einen Zielbenutzer entfernen
  • createsshkey: SSH-Schlüssel für den aktuellen Benutzer erstellen
  • listsshkey: SSH-Schlüssel für den aktuellen Benutzer auflisten
  • removesshkey: SSH-Schlüssel für den aktuellen Benutzer entfernen
  • adminstats: Admin-Statistiken abrufen (Benutzer, Repositories, Organisationen, Gists)
  • protection: Branch-Schutzeinstellungen abrufen

Modul-Details-Tabelle

Die folgende Tabelle zeigt, wo jedes Modul unterstützt wird

Beispiele

Repositories auflisten

Anwendungsfall

Entdecken Sie Repositories, die in einem bestimmten SCM-System verwendet werden

Syntax

Geben Sie das Modul listrepo zusammen mit den relevanten Authentifizierungsinformationen und der URL an. Die Ausgabe enthält den Repository-Namen und die URL.

GitHub Enterprise

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

GitLab Enterprise

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

Bitbucket Server

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

Beispielausgabe```

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

Timestamp: 1/14/2022 8:30:47 PM

root@kitploit:~
                                Name | Visibility |                                                URL

root@kitploit:~
                        MaraudersMap |    Private | https://gitlab.hogwarts.local/hpotter/maraudersmap
                        testingStuff |   Internal | https://gitlab.hogwarts.local/adumbledore/testingstuff
                           Spellbook |   Internal |    https://gitlab.hogwarts.local/hpotter/spellbook
   findShortestPathToGryffindorSword |   Internal | https://gitlab.hogwarts.local/hpotter/findShortestPathToGryffindorSword
                              charms |     Public |      https://gitlab.hogwarts.local/hgranger/charms
                       Secret-Spells |   Internal | https://gitlab.hogwarts.local/adumbledore/secret-spells
                          Monitoring |   Internal | https://gitlab.hogwarts.local/gitlab-instance-10590c85/Monitoring
root@kitploit:~
### Repositories durchsuchen

#### Anwendungsfall

> *Suche nach Repositories anhand des Repository-Namens in einem bestimmten SCM-System*

#### Syntax

Geben Sie das Modul `searchrepo` und Ihre Suchkriterien im Befehlszeilenschalter `-o` an, zusammen mit allen relevanten Authentifizierungsinformationen und der URL. Dies gibt den passenden Repository-Namen und die URL aus.

##### GitHub Enterprise

Die GitHub-Repository-Suche ist eine „enthält“-Suche, bei der die eingegebene Zeichenfolge nach Repositories sucht, deren Namen Ihren Suchbegriff enthalten.

`SCMKit.exe -s github -m searchrepo -c userName:password -u https://github.something.local -o "some search term"`

`SCMKit.exe -s github -m searchrepo -c apikey -u https://github.something.local -o "some search term"`

##### GitLab Enterprise

Die GitLab-Repository-Suche ist eine „enthält“-Suche, bei der die eingegebene Zeichenfolge nach Repositories sucht, deren Namen Ihren Suchbegriff enthalten.

`SCMKit.exe -s gitlab -m searchrepo -c userName:password -u https://gitlab.something.local -o "some search term"`

`SCMKit.exe -s gitlab -m searchrepo -c apikey -u https://gitlab.something.local -o "some search term"`

##### Bitbucket Server

Die Bitbucket-Repository-Suche ist eine „beginnt mit“-Suche, bei der die eingegebene Zeichenfolge nach Repositories sucht, deren Namen mit Ihrem Suchbegriff beginnen.

`SCMKit.exe -s bitbucket -m searchrepo -c userName:password -u https://bitbucket.something.local -o "some search term"`

`SCMKit.exe -s bitbucket -m searchrepo -c apikey -u https://bitbucket.something.local -o "some search term"`

#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m searchrepo -c apiKey -u https://gitlab.hogwarts.local -o "spell"

==================================================
Module:         searchrepo
System:         gitlab
Auth Type:      API Key
Options:        spell
Target URL:     https://gitlab.hogwarts.local

Timestamp:      1/14/2022 8:32:30 PM
==================================================

                                    Name | Visibility |                                                URL
----------------------------------------------------------------------------------------------------------
                               Spellbook |   Internal |    https://gitlab.hogwarts.local/hpotter/spellbook
                           Secret-Spells |   Internal | https://gitlab.hogwarts.local/adumbledore/secret-spells

Codesuche

Anwendungsfall

Suche nach Code, der ein bestimmtes Schlüsselwort in einem bestimmten SCM-System enthält.

Syntax

Geben Sie das Modul searchcode und Ihre Suchkriterien im Befehlszeilenschalter -o an, zusammen mit allen relevanten Authentifizierungsinformationen und der URL. Dies gibt die URL zur passenden Codedatei sowie die Zeile im Code aus, die übereinstimmte.

GitHub Enterprise

Die GitHub-Codesuche ist eine „Enthält“-Suche, bei der die von Ihnen eingegebene Zeichenfolge nach Code sucht, der Ihren Suchbegriff in einer beliebigen Zeile enthält.

SCMKit.exe -s github -m searchcode -c userName:password -u https://github.something.local -o "some search term"

SCMKit.exe -s github -m searchcode -c apikey -u https://github.something.local -o "some search term"

GitLab Enterprise

Die GitLab-Codesuche ist eine „Enthält“-Suche, bei der die von Ihnen eingegebene Zeichenfolge nach Code sucht, der Ihren Suchbegriff in einer beliebigen Zeile enthält.

SCMKit.exe -s gitlab -m searchcode -c userName:password -u https://gitlab.something.local -o "some search term"

SCMKit.exe -s gitlab -m searchcode -c apikey -u https://gitlab.something.local -o "some search term"

Bitbucket Server

Die Bitbucket-Codesuche ist eine „Enthält“-Suche, bei der die von Ihnen eingegebene Zeichenfolge nach Code sucht, der Ihren Suchbegriff in einer beliebigen Zeile enthält.

SCMKit.exe -s bitbucket -m searchcode -c userName:password -u https://bitbucket.something.local -o "some search term"

SCMKit.exe -s bitbucket -m searchcode -c apikey -u https://bitbucket.something.local -o "some search term"

Beispielausgabe```

C:>SCMKit.exe -s gitlab -m searchcode -c username:password -u https://gitlab.hogwarts.local -o "api_key"

================================================== Module: searchcode System: gitlab Auth Type: Username/Password Options: api_key Target URL: https://gitlab.hogwarts.local

Timestamp: 1/14/2022 8:34:14 PM

[>] URL: https://gitlab.hogwarts.local/adumbledore/secret-spells/stuff.txt |_ API_KEY=abc123

Total number of items matching code search: 1

root@kitploit:~
### Dateien durchsuchen

#### Anwendungsfall

> *Suche nach Dateien in Repositorys, die einen bestimmten Suchbegriff im Dateinamen enthalten, in einem bestimmten SCM-System*

#### Syntax

Gib das Modul `searchfile` und deine Suchkriterien im Befehlszeilenschalter `-o` an, zusammen mit den relevanten Authentifizierungsinformationen und der URL. Dadurch wird die URL zu der passenden Datei in ihrem jeweiligen Repository ausgegeben.

##### GitHub Enterprise

Die GitLab-Dateisuche ist eine „contains“-Suche, bei der der eingegebene Suchbegriff nach Dateien sucht, deren Dateiname deinen Suchbegriff enthält.

`SCMKit.exe -s github -m searchfile -c userName:password -u https://github.something.local -o "some search term"`

`SCMKit.exe -s github -m searchfile -c apikey -u https://github.something.local -o "some search term"`

##### GitLab Enterprise

Die GitLab-Dateisuche ist eine „contains“-Suche, bei der der eingegebene Suchbegriff nach Dateien sucht, deren Dateiname deinen Suchbegriff enthält.

`SCMKit.exe -s gitlab -m searchfile -c userName:password -u https://gitlab.something.local -o "some search term"`

`SCMKit.exe -s gitlab -m searchfile -c apikey -u https://gitlab.something.local -o "some search term"`

##### Bitbucket Server

Die Bitbucket-Dateisuche ist eine „contains“-Suche, bei der der eingegebene Suchbegriff nach Dateien sucht, deren Dateiname deinen Suchbegriff enthält.

`SCMKit.exe -s bitbucket -m searchfile -c userName:password -u https://bitbucket.something.local -o "some search term"`

`SCMKit.exe -s bitbucket -m searchfile -c apikey -u https://bitbucket.something.local -o "some search term"`

#### Beispielausgabe```

C:\source\SCMKit\SCMKit\bin\Release>SCMKit.exe -s bitbucket -m searchfile -c apikey -u http://bitbucket.hogwarts.local:7990 -o jenkinsfile

==================================================
Module:         searchfile
System:         bitbucket
Auth Type:      API Key
Options:        jenkinsfile
Target URL:     http://bitbucket.hogwarts.local:7990

Timestamp:      1/14/2022 10:17:59 PM
==================================================


[>] REPO: http://bitbucket.hogwarts.local:7990/scm/~HPOTTER/hpotter
    [>] FILE: Jenkinsfile

[>] REPO: http://bitbucket.hogwarts.local:7990/scm/STUD/cred-decryption
    [>] FILE: subDir/Jenkinsfile

Total matching results: 2

Snippets auflisten

Anwendungsfall

Listet die Snippets auf, die dem aktuellen Benutzer in GitLab gehören.

Syntax

Geben Sie das Modul listsnippet sowie alle relevanten Authentifizierungsinformationen und die URL an.

GitLab Enterprise

SCMKit.exe -s gitlab -m listsnippet -c userName:password -u https://gitlab.something.local

SCMKit.exe -s gitlab -m listsnippet -c apikey -u https://gitlab.something.local

Beispielausgabe```

C:>SCMKit.exe -s gitlab -m listsnippet -c username:password -u https://gitlab.hogwarts.local

================================================== Module: listsnippet System: gitlab Auth Type: Username/Password Options: Target URL: https://gitlab.hogwarts.local

Timestamp: 1/14/2022 9:17:36 PM

root@kitploit:~
           Title |                                                                Raw URL

root@kitploit:~
    spell-script |                         https://gitlab.hogwarts.local/-/snippets/2/raw
root@kitploit:~
### Runner auflisten

#### Anwendungsfall

> *Liste alle GitLab-Runner auf, die dem aktuellen Benutzer in GitLab zur Verfügung stehen*

#### Syntax

Stellen Sie das Modul `listrunner` zusammen mit allen relevanten Authentifizierungsinformationen und der URL bereit. Wenn der Benutzer ein Administrator ist, können Sie alle Runner innerhalb der GitLab-Enterprise-Instanz auflisten, einschließlich gemeinsamer und Gruppen-Runner.

##### GitLab Enterprise

`SCMKit.exe -s gitlab -m listrunner -c userName:password -u https://gitlab.something.local`

`SCMKit.exe -s gitlab -m listrunner -c apikey -u https://gitlab.something.local`

#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m listrunner -c username:password -u https://gitlab.hogwarts.local

==================================================
Module:         listrunner
System:         gitlab
Auth Type:      Username/Password
Options:
Target URL:     https://gitlab.hogwarts.local

Timestamp:      1/25/2022 11:40:08 AM
==================================================

   ID |                 Name |                                      Repo Assigned
---------------------------------------------------------------------------------
    2 |        gitlab-runner | https://gitlab.hogwarts.local/hpotter/spellbook.git
    3 |        gitlab-runner | https://gitlab.hogwarts.local/hpotter/maraudersmap.git
    

Gists auflisten

Anwendungsfall

Gists auflisten, die dem aktuellen Benutzer in GitHub gehören

Syntax

Geben Sie das Modul listgist sowie alle relevanten Authentifizierungsinformationen und die URL an.

GitHub Enterprise

SCMKit.exe -s github -m listgist -c userName:password -u https://github.something.local

SCMKit.exe -s github -m listgist -c apikey -u https://github.something.local

Beispielausgabe```

C:>SCMKit.exe -s github -m listgist -c username:password -u https://github-enterprise.hogwarts.local

================================================== Module: listgist System: github Auth Type: Username/Password Options: Target URL: https://github-enterprise.hogwarts.local

Timestamp: 1/14/2022 9:43:23 PM

root@kitploit:~
                         Description | Visibility |                                                URL

root@kitploit:~
        Shell Script to Decode Spell |     public | https://github-enterprise.hogwarts.local/gist/c11c6bb3f47fe67183d5bc9f048412a1
        
root@kitploit:~
### Organisationen auflisten

#### Anwendungsfall

> *Liste alle Organisationen auf, zu denen der aktuelle Benutzer auf GitHub gehört*

#### Syntax

Stellen Sie das `listorg`-Modul sowie alle relevanten Authentifizierungsinformationen und die URL bereit.

##### GitHub Enterprise

`SCMKit.exe -s github -m listorg -c userName:password -u https://github.something.local`

`SCMKit.exe -s github -m listorg -c apiKey -u https://github.something.local`

#### Beispielausgabe```

C:\>SCMKit.exe -s github -m listorg -c username:password -u https://github-enterprise.hogwarts.local

==================================================
Module:         listorg
System:         github
Auth Type:      Username/Password
Options:
Target URL:     https://github-enterprise.hogwarts.local

Timestamp:      1/14/2022 9:44:48 PM
==================================================

                          Name |                                                URL
-----------------------------------------------------------------------------------
                      Hogwarts | https://github-enterprise.hogwarts.local/api/v3/orgs/Hogwarts/repos
                      

Get Privileges of API Token

Use Case

Ruft die zugewiesenen Berechtigungen für ein Zugriffstoken ab, das in einem bestimmten SCM-System verwendet wird.

Syntax

Geben Sie das Modul privs zusammen mit einem API-Schlüssel und einer URL an.

GitHub Enterprise

SCMKit.exe -s github -m privs -c apiKey -u https://github.something.local

GitLab Enterprise

SCMKit.exe -s gitlab -m privs -c apiKey -u https://gitlab.something.local

Example Output```

C:>SCMKit.exe -s gitlab -m privs -c apikey -u https://gitlab.hogwarts.local

================================================== Module: privs System: gitlab Auth Type: API Key Options: Target URL: https://gitlab.hogwarts.local

Timestamp: 1/14/2022 9:18:27 PM

root@kitploit:~
      Token Name |    Active? |            Privilege |                                                            Description

hgranger-api-token | True | api | Read-write for the complete API, including all groups and projects, the Container Registry, and the Package Registry. hgranger-api-token | True | read_user | Read-only for endpoints under /users. Essentially, access to any of the GET requests in the Users API. hgranger-api-token | True | read_api | Read-only for the complete API, including all groups and projects, the Container Registry, and the Package Registry. hgranger-api-token | True | read_repository | Read-only (pull) for the repository through git clone. hgranger-api-token | True | write_repository | Read-write (pull, push) for the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled.

root@kitploit:~
### Admin hinzufügen

#### Anwendungsfall

> *Einen normalen Benutzer in eine administrative Rolle in einem bestimmten SCM-System befördern*

#### Syntax

Geben Sie das `addadmin`-Modul sowie alle relevanten Authentifizierungsinformationen und die URL an. Geben Sie außerdem den Zielbenutzer an, dem Sie eine administrative Rolle zuweisen möchten.

##### GitHub Enterprise

`SCMKit.exe -s github -m addadmin -c userName:password -u https://github.something.local -o targetUserName`

`SCMKit.exe -s github -m addadmin -c apikey -u https://github.something.local -o targetUserName`

##### GitLab Enterprise

`SCMKit.exe -s gitlab -m addadmin -c userName:password -u https://gitlab.something.local -o targetUserName`

`SCMKit.exe -s gitlab -m addadmin -c apikey -u https://gitlab.something.local -o targetUserName`

##### Bitbucket Server

Nur die Authentifizierung mit Benutzername/Kennwort wird unterstützt, um Aktionen auszuführen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen.

`SCMKit.exe -s bitbucket -m addadmin -c userName:password -u https://bitbucket.something.local -o targetUserName`

#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m addadmin -c apikey -u https://gitlab.hogwarts.local -o hgranger

==================================================
Module:         addadmin
System:         gitlab
Auth Type:      API Key
Options:        hgranger
Target URL:     https://gitlab.hogwarts.local

Timestamp:      1/14/2022 9:19:32 PM
==================================================


[+] SUCCESS: The hgranger user was successfully added to the admin role.

Remove Admin

Anwendungsfall

Stufen Sie einen administrativen Benutzer in einem bestimmten SCM-System auf eine normale Benutzerrolle herab

Syntax

Geben Sie das removeadmin-Modul an, zusammen mit den relevanten Authentifizierungsinformationen und der URL. Geben Sie außerdem den Zielbenutzer an, dem Sie eine Administratorrolle entziehen möchten.

GitHub Enterprise

SCMKit.exe -s github -m removeadmin -c userName:password -u https://github.something.local -o targetUserName

SCMKit.exe -s github -m removeadmin -c apikey -u https://github.something.local -o targetUserName

GitLab Enterprise

SCMKit.exe -s gitlab -m removeadmin -c userName:password -u https://gitlab.something.local -o targetUserName

SCMKit.exe -s gitlab -m removeadmin -c apikey -u https://gitlab.something.local -o targetUserName

Bitbucket Server

Nur die Authentifizierung mit Benutzername/Passwort wird unterstützt, um Aktionen durchzuführen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen.

SCMKit.exe -s bitbucket -m removeadmin -c userName:password -u https://bitbucket.something.local -o targetUserName

Beispielausgabe```

C:>SCMKit.exe -s gitlab -m removeadmin -c username:password -u https://gitlab.hogwarts.local -o hgranger

================================================== Module: removeadmin System: gitlab Auth Type: Username/Password Options: hgranger Target URL: https://gitlab.hogwarts.local

Timestamp: 1/14/2022 9:20:12 PM

[+] SUCCESS: The hgranger user was successfully removed from the admin role.

root@kitploit:~
### Zugriffstoken erstellen

#### Anwendungsfall

> *Ein Zugriffstoken zur Verwendung in einem bestimmten SCM-System erstellen*

#### Syntax

Stellen Sie das `createpat`-Modul zusammen mit allen relevanten Authentifizierungsinformationen und der URL bereit. Geben Sie außerdem den Zielbenutzer an, für den Sie ein Zugriffstoken erstellen möchten.

##### GitLab Enterprise

Dies kann nur als Administrator durchgeführt werden. Sie geben den Benutzernamen an, für den Sie ein PAT erstellen möchten.

`SCMKit.exe -s gitlab -m createpat -c userName:password -u https://gitlab.something.local -o targetUserName`

`SCMKit.exe -s gitlab -m createpat -c apikey -u https://gitlab.something.local -o targetUserName`

##### Bitbucket Server

Erstellt ein PAT für den Benutzer, der sich gerade authentifiziert. In Bitbucket können Sie kein PAT für einen anderen Benutzer erstellen, selbst nicht als Administrator. Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Benutzername/Passwort-Authentifizierung unterstützt. Notieren Sie sich die PAT-ID, die nach der Erstellung angezeigt wird. Sie benötigen diese, wenn Sie das PAT in Zukunft entfernen müssen.

`SCMKit.exe -s bitbucket -m createpat -c userName:password -u https://bitbucket.something.local `

#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m createpat -c username:password -u https://gitlab.hogwarts.local -o hgranger

==================================================
Module:         createpat
System:         gitlab
Auth Type:      Username/Password
Options:        hgranger
Target URL:     https://gitlab.hogwarts.local

Timestamp:      1/20/2022 1:51:23 PM
==================================================

   ID |         Name |                          Token
-----------------------------------------------------
   59 | SCMKIT-AaCND |           R3ySx_8HUn6UQ_6onETx

[+] SUCCESS: The hgranger user personal access token was successfully added.


Zugriffstoken auflisten

Anwendungsfall

Zugriffstoken für einen Benutzer auf einem bestimmten SCM-System auflisten

Syntax

Geben Sie das listpat-Modul zusammen mit den relevanten Authentifizierungsinformationen und der URL an.

GitLab Enterprise

Admin-Rechte sind nur erforderlich, wenn Sie die PATs eines anderen Benutzers auflisten möchten. Ein regulärer Benutzer kann seine eigenen PATs auflisten.

SCMKit.exe -s gitlab -m listpat -c userName:password -u https://gitlab.something.local -o targetUser

SCMKit.exe -s gitlab -m listpat -c apikey -u https://gitlab.something.local -o targetUser

Bitbucket Server

Zugriffstoken für den aktuellen Benutzer auflisten. Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Authentifizierung über Benutzername/Passwort unterstützt.

SCMKit.exe -s bitbucket -m listpat -c userName:password -u https://bitbucket.something.local

Zugriffstoken für einen anderen Benutzer auflisten (erfordert Admin). Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Authentifizierung über Benutzername/Passwort unterstützt.

SCMKit.exe -s bitbucket -m listpat -c userName:password -u https://bitbucket.something.local -o targetUser

Beispielausgabe```

C:>SCMKit.exe -s gitlab -m listpat -c username:password -u https://gitlab.hogwarts.local -o hgranger

================================================== Module: listpat System: gitlab Auth Type: Username/Password Options: hgranger Target URL: https://gitlab.hogwarts.local

Timestamp: 1/20/2022 1:54:41 PM

ID | Name | Active? | Scopes

59 | SCMKIT-AaCND | True | api, read_repository, write_repository

root@kitploit:~
### Access Token entfernen

#### Anwendungsfall

> *Entfernen eines Access Tokens für einen Benutzer in einem bestimmten SCM-System*

#### Syntax

Stellen Sie das `removepat`-Modul zusammen mit den relevanten Authentifizierungsinformationen und der URL bereit. Geben Sie außerdem die PAT-ID des Zielbenutzers an, für die Sie ein Access Token entfernen möchten.

##### GitLab Enterprise

Erfordert nur Administratorrechte, wenn Sie das PAT eines anderen Benutzers entfernen möchten. Ein normaler Benutzer kann sein eigenes PAT entfernen. Sie müssen die zu entfernende PAT-ID angeben. Diese ID wurde Ihnen angezeigt, wenn Sie das PAT erstellt und auch, wenn Sie die PATs aufgelistet haben.

`SCMKit.exe -s gitlab -m removepat -c userName:password -u https://gitlab.something.local -o patID`

`SCMKit.exe -s gitlab -m removepat -c apikey -u https://gitlab.something.local -o patID`

##### Bitbucket Server

Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Benutzername/Kennwort-Authentifizierung unterstützt. Sie müssen die zu entfernende PAT-ID angeben. Diese ID wurde angezeigt, als Sie das PAT erstellt haben.

`SCMKit.exe -s bitbucket -m removepat -c userName:password -u https://bitbucket.something.local -o patID`

#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m removepat -c apikey -u https://gitlab.hogwarts.local -o 58

==================================================
Module:         removepat
System:         gitlab
Auth Type:      API Key
Options:        59
Target URL:     https://gitlab.hogwarts.local

Timestamp:      1/20/2022 1:56:47 PM
==================================================



[*] INFO: Revoking personal access token of ID: 59


[+] SUCCESS: The personal access token of ID 59 was successfully revoked.

SSH-Schlüssel erstellen

Anwendungsfall

Erstellen Sie einen SSH-Schlüssel zur Verwendung in einem bestimmten SCM-System

Syntax

Geben Sie das Modul createsshkey sowie alle relevanten Authentifizierungsinformationen und die URL an.

GitHub Enterprise

Erstellt einen SSH-Schlüssel für den aktuell authentifizierten Benutzer.

SCMKit.exe -s github -m createsshkey -c userName:password -u https://github.something.local -o "ssh public key"

SCMKit.exe -s github -m createsshkey -c apiToken -u https://github.something.local -o "ssh public key"

GitLab Enterprise

Erstellt einen SSH-Schlüssel für den aktuell authentifizierten Benutzer. Notieren Sie sich die SSH-Schlüssel-ID, die nach der Erstellung angezeigt wird. Sie benötigen diese, wenn Sie den SSH-Schlüssel später entfernen müssen.

SCMKit.exe -s gitlab -m createsshkey -c userName:password -u https://gitlab.something.local -o "ssh public key"

SCMKit.exe -s gitlab -m createsshkey -c apiToken -u https://gitlab.something.local -o "ssh public key"

Bitbucket Server

Erstellt einen SSH-Schlüssel für den aktuell authentifizierten Benutzer. Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Authentifizierung mit Benutzername/Kennwort unterstützt. Notieren Sie sich die SSH-Schlüssel-ID, die nach der Erstellung angezeigt wird. Sie benötigen diese, wenn Sie den SSH-Schlüssel später entfernen müssen.

SCMKit.exe -s bitbucket -m createsshkey -c userName:password -u https://bitbucket.something.local -o "ssh public key"

Beispielausgabe```

C:>SCMKit.exe -s bitbucket -m createsshkey -c username:password -u https://bitbucket.hogwarts.local -o "ssh-rsa..."

================================================== Module: createsshkey System: bitbucket Auth Type: Username/Password Options: ssh-rsa ... Target URL: http://bitbucket.hogwarts.local:7990

Timestamp: 2/7/2022 1:02:31 PM

SSH Key ID

root@kitploit:~
      16

[+] SUCCESS: The hpotter user SSH key was successfully added.

root@kitploit:~
### SSH-Schlüssel auflisten

#### Anwendungsfall

> *SSH-Schlüssel für einen Benutzer in einem bestimmten SCM-System auflisten*

#### Syntax

Stellen Sie das Modul `listsshkey` sowie alle relevanten Authentifizierungsinformationen und die URL bereit.

##### GitHub Enterprise

SSH-Schlüssel für den aktuellen Benutzer auflisten. Dies enthält die SSH-Schlüssel-IDs, die benötigt werden, wenn Sie einen SSH-Schlüssel entfernen möchten.

`SCMKit.exe -s github -m listsshkey -c userName:password -u https://github.something.local`

`SCMKit.exe -s github -m listsshkey -c apiToken -u https://github.something.local`

##### GitLab Enterprise

SSH-Schlüssel für den aktuellen Benutzer auflisten.

`SCMKit.exe -s gitlab -m listsshkey -c userName:password -u https://gitlab.something.local`

`SCMKit.exe -s gitlab -m listsshkey -c apiToken -u https://gitlab.something.local`


##### Bitbucket Server

SSH-Schlüssel für den aktuellen Benutzer auflisten. Nur die Authentifizierung mit Benutzername/Kennwort wird unterstützt, um Aktionen auszuführen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen.

`SCMKit.exe -s bitbucket -m listsshkey -c userName:password -u https://bitbucket.something.local`


#### Beispielausgabe```

C:\>SCMKit.exe -s gitlab -m listsshkey -u http://gitlab.hogwarts.local -c apiToken

==================================================
Module:         listsshkey
System:         gitlab
Auth Type:      API Key
Options:
Target URL:     https://gitlab.hogwarts.local

Timestamp:      2/7/2022 4:09:40 PM
==================================================

  SSH Key ID |             SSH Key Value |                Title
---------------------------------------------------------------
           9 | .....p50edigBAF4lipVZkAM= |         SCMKIT-RLzie
          10 | .....vGJLPGHiTwIxW9i+xAs= |         SCMKIT-muFGU
    

SSH-Schlüssel entfernen

Anwendungsfall

Einen SSH-Schlüssel für einen Benutzer in einem bestimmten SCM-System entfernen

Syntax

Stellen Sie das Modul removesshkey sowie die relevanten Authentifizierungsinformationen und die URL bereit. Zusätzlich müssen Sie die ID des zu entfernenden SSH-Schlüssels des Zielbenutzers angeben.

GitHub Enterprise

Sie müssen die ID des zu entfernenden SSH-Schlüssels angeben. Diese ID wird Ihnen angezeigt, wenn Sie SSH-Schlüssel auflisten.

SCMKit.exe -s github -m removesshkey -c userName:password -u https://github.something.local -o sshKeyID

SCMKit.exe -s github -m removesshkey -c apiToken -u https://github.something.local -o sshKeyID

GitLab Enterprise

Sie müssen die ID des zu entfernenden SSH-Schlüssels angeben. Diese ID wird angezeigt, wenn Sie den SSH-Schlüssel erstellen, und wird auch beim Auflisten der SSH-Schlüssel angezeigt.

SCMKit.exe -s gitlab -m removesshkey -c userName:password -u https://gitlab.something.local -o sshKeyID

SCMKit.exe -s gitlab -m removesshkey -c apiToken -u https://gitlab.something.local -o sshKeyID

Bitbucket Server

Für Aktionen, die nicht mit Repos oder Projekten in Bitbucket zusammenhängen, wird nur die Authentifizierung mit Benutzername/Passwort unterstützt. Sie müssen die ID des zu entfernenden SSH-Schlüssels angeben. Diese ID wird angezeigt, wenn Sie den SSH-Schlüssel erstellen, und wird auch beim Auflisten der SSH-Schlüssel angezeigt.

SCMKit.exe -s bitbucket -m removesshkey -c userName:password -u https://bitbucket.something.local -o sshKeyID

Beispielausgabe```

C:>SCMKit.exe -s bitbucket -m removesshkey -u http://bitbucket.hogwarts.local:7990 -c username:password -o 16

================================================== Module: removesshkey System: bitbucket Auth Type: Username/Password Options: 16 Target URL: http://bitbucket.hogwarts.local:7990

Timestamp: 2/7/2022 1:48:03 PM

[+] SUCCESS: The SSH key of ID 16 was successfully revoked.

root@kitploit:~
### Admin-Statistiken auflisten

#### Anwendungsfall

> *Admin-Statistiken in GitHub Enterprise auflisten*

#### Syntax

Stelle das `adminstats`-Modul zusammen mit den relevanten Authentifizierungsinformationen und der URL bereit. Für die Verwendung dieses Moduls ist Site-Admin-Zugriff in GitHub Enterprise erforderlich.

##### GitHub Enterprise

`SCMKit.exe -s github -m adminstats -c userName:password -u https://github.something.local`

`SCMKit.exe -s github -m adminstats -c apikey -u https://github.something.local`

#### Beispielausgabe```

C:\>SCMKit.exe -s github -m adminstats -c username:password -u https://github-enterprise.hogwarts.local

==================================================
Module:         adminstats
System:         github
Auth Type:      Username/Password
Options:
Target URL:     https://github-enterprise.hogwarts.local

Timestamp:      1/14/2022 9:45:50 PM
==================================================

     Admin Users |  Suspended Users |      Total Users
------------------------------------------------------
               1 |                0 |                5


     Total Repos |      Total Wikis
-----------------------------------
               4 |                0


      Total Orgs |   Total Team Members |      Total Teams
----------------------------------------------------------
               1 |                    0 |                0


   Private Gists |     Public Gists
-----------------------------------
               0 |                1
               

Branch-Schutz auflisten

Anwendungsfall

Branch-Schutzregeln in GitHub Enterprise auflisten

Syntax

Gib das Modul protection zusammen mit den relevanten Authentifizierungsinformationen und der URL an. Optional kannst du eine Zeichenfolge im Parameter options angeben, um passende Ergebnisse zurückzugeben, die in Repository-Namen enthalten sind.

GitHub Enterprise

SCMKit.exe -s github -m protection -c userName:password -u https://github.something.local

SCMKit.exe -s github -m protection -c apikey -u https://github.something.local

SCMKit.exe -s github -m protection -c apikey -u https://github.something.local -o reponame

Beispielausgabe```

C:>.\SCMKit.exe -u http://github.hogwarts.local -s github -c apiToken -m protection -o public-r

================================================== Module: protection System: github Auth Type: API Key Options: public-r Target URL: http://github.hogwarts.local

Timestamp: 8/29/2022 2:02:42 PM

root@kitploit:~
                 Repo |                    Branch |                                         Protection

root@kitploit:~
          public-repo |                       dev | Protected: True
                                                    Status checks must pass before merge:
                                                      Branch must be up-to-date before merge: True
                                                    Owner review required before merge: True
                                                    Approvals required before merge: 2
                                                    Protections apply to repo admins: True
          public-repo |                      main | Protected: False
root@kitploit:~
## Erkennung

Im Folgenden finden Sie statische Signaturen für die spezifische Verwendung dieses Tools im Standardzustand:

* Projekt-GUID - `{266C644A-69B1-426B-A47C-1CF32B211F80}`
  * Siehe [SCMKit-Yara-Regel](https://github.com/xforcered/scmkit/blob/HEAD/Detections/SCMKit.yar) in diesem Repository.
* User-Agent-String - `SCMKIT-5dc493ada400c79dd318abbe770dac7c`
  * Siehe [SCMKit-Snort-Regel](https://github.com/xforcered/scmkit/blob/HEAD/Detections/SCMKit.rules) in diesem Repository.
* Namen für Access Tokens und SSH-Schlüssel - Access Tokens und SSH-Schlüssel, die mit dem Tool erstellt werden, erhalten als Präfix den Namen `SCMKIT-`.

Hinweise zur Erkennung der vom Tool verwendeten Techniken finden Sie im X-Force-Red-[Blogbeitrag](https://securityintelligence.com/posts/abusing-source-code-management-systems).

## Referenzen
* Bitbucket-API-Dokumentation
  * https://developer.atlassian.com/server/bitbucket/reference/rest-api/
* Octokit-Dokumentation
  * https://octokitnet.readthedocs.io/en/latest/
  * https://github.com/octokit/octokit.net
* GitHub-API-Dokumentation
  * https://docs.github.com/en/rest/overview
* GitLab-API-Dokumentation
  * https://docs.gitlab.com/ee/api/api_resources.html
* Dokumentation des GitLabApiClient-NuGet-Pakets
  * https://github.com/nmklotas/GitLabApiClient
Tool herunterladen
BibliothekURLLizenz
Octokithttps://github.com/octokit/octokit.netMIT License
Fodyhttps://github.com/Fody/FodyMIT License
GitLabApiClienthttps://github.com/nmklotas/GitLabApiClientMIT License
Newtonsoft.Jsonhttps://github.com/JamesNK/Newtonsoft.JsonMIT License
AngriffsszenarioModulAdmin erforderlich?GitHub EnterpriseGitLab EnterpriseBitbucket Server
AufklärunglistrepoNeinXXX
AufklärungsearchrepoNeinXXX
AufklärungsearchcodeNeinXXX
AufklärungsearchfileNeinXXX
AufklärunglistsnippetNeinX
AufklärunglistrunnerNeinX
AufklärunglistgistNeinX
AufklärunglistorgNeinX
AufklärungprivsNeinXX
AufklärungprotectionNeinX
PersistenzlistsshkeyNeinXXX
PersistenzremovesshkeyNeinXXX
PersistenzcreatesshkeyNeinXXX
PersistenzlistpatNeinXX
PersistenzremovepatNeinXX
PersistenzcreatepatJa (nur GitLab Enterprise)XX
RechteausweitungaddadminJaXXX
RechteausweitungremoveadminJaXXX
AufklärungadminstatsJaX