
Um sistema simples e extensível de beaconing C&C.
O repositório C2 busca fornecer uma implementação prática das ideias contidas no Red Team Infrastructure Wike em https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki. Em particular, este repositório fornece dois pacotes Go, um para beaconers e outro para downloaders. Além disso, o repositório fornece implants de exemplo que usam esses beaconers e downloaders. Finalmente, o repositório contém servidores DNS e HTTP de backend para C2 e informações de configuração para construir servidores redirectors de frontend.
A pasta implants tem dois implants que mostram como usar os pacotes beaconer e downloader. Esses implants podem ser usados como referência para construir seus próprios implants. A ideia geral é selecionar um beaconer e um downloader e envolvê-los em um loop com algum tipo de mecanismo de temporização para controlar a frequência com que o implant fará beacon.
Para criar novos beaconers e downloaders, você deve construir uma struct que satisfaça a interface apropriada. Os diretórios beaconer e downloader contêm exemplos de HTTP e DNS.
O diretório servers contém um servidor DNS e um servidor HTTP que podem ser usados como servidor backend para os vários beacons e downloaders. Esses servidores não foram projetados com uso em produção, mas podem ser usados em produção se necessário. Além disso, a pasta servers contém um arquivo de payload, que pode ser construído usando go build -o payload.bin payload.go. Os servidores esperam encontrar um arquivo payload.bin no diretório atual, que será servido aos downloaders e executado no cliente.
A pasta docs contém informações de configuração necessárias para construir redirectors de frontend para o sistema C2. A configuração permite que o tráfego C2 seja redirecionado para o servidor C2 com base em critérios específicos e envia todo o outro tráfego para um servidor benigno.
Não sou um especialista em C2. Tenho lido o Red Team Infrastructure Wiki e decidi construir uma implementação prática. Dito isso, adoraria receber pull requests para novos beaconers e downloaders. Se você não se sentir confortável escrevendo o código, informe quais técnicas de beacon ou downloader você gostaria de implementar abrindo uma issue.