GitRAT is a fileless Remote Access Tool using GitHub repository for running commands and storing outputs. The inspiration behind this project stems from the prevalent practice within many organizations to permit connections to any GitHub repository. This project only serves as a Proof-of-Concept that GitHub can be abused; it is by no means a refined project.
- GitRAT is strictly for Educational purposes only.
- Should this project ever be abused, the following behaviors may be used for detection
- Multiple Connections to 2 Github Repositories from a single process
- Multiple Cmd/shell instances launched from a process connecting to 2 Github Repositories
- Alternatively, extracting the tokens from the executables then saving them in any public repository would disable them.
- Please create an issue on this repository for any question or concern
- Create two Repositories in Github: one will be used for pushing command and one will be used for storing the command output.
- Create two fine-grained Tokens, one for each repository. The command token should have read access to the content of the command repository while the output token should have both read and write access to the content of the output repository.
- Create empty file
commandin the command repo andoutin the output repo. - Edit the
config.gofile - Build the project
- edit the
commandfile in the command repo to enter the desired command - check the
outfile in the output repo for the output of the command if the command has one