Using Go to implement CobaltStrike's Beacon
This project is for learning protocol analysis and reverse engineering only, if someone's rights have been violated, please contact me to remove the project, and the last DO NOT USE IT ILLEGALLY
How to play
- Setup the teamserver and start a http lisenter, the teamserver will generate the file
- Compile the BeaconTool with Jetbrains Idea, use command
java -jar BeaconTool.jarto convert java keystore to PEM format.
- Replace the RSA key pair in the file
cmd/config/config.go(the RSA private key is not required, I wrote it in the code just for the record)
- Compile the geacon whatever platform you want to run: for example, use the command
export GOOS="darwin" && export GOARCH="amd64" && go build cmd/main.goto compile an executable binary running on MacOS.
- Having fun ! PR and issue is welcome ;)
- Geacon has just been tested on CobaltStrike 3.14 and only support default c2profile, so many hardcode in the project and I will not try to implement more C2profile support at this moment.
- Thanks for @xxxxxyyyy's PR, And now Geacon supports CobaltStrike 4.0, please checkout the branch
- Geacon's branch
mastersupports CobaltStrike 4.1, currently available functions include: executing commands, uploading, downloading, file browser, switching the current working directory, and exiting the current process.
- Geacon only focuses on protocol analysis, but if you want to experience more features, you can use another project of our partners, check out CrossC2 now!
To be continued, I will update as soon as I have time ...
Support CobaltStrike 4.x
Fix the OS icon issue in session table
String encoding issue