
Integração do C2 Externo do Cobalt Strike com Azure Servicebus, tráfego C2 via Azure Servicebus
Integração do Cobalt Strike External C2 com Azure Servicebus, tráfego C2 via Azure Servicebus

O binário DotNetCore do CobaltBus que se integra com o ExternalC2 do CobaltStrike criará um banco de dados Sqlite local para rastrear múltiplos beacons. As mensagens recebidas pelo CobaltBus serão capturadas e escritas no banco de dados. Os bancos de dados com nomes "CobaltBus.db" e "CobaltBus-log.db" serão criados no diretório onde CobaltBus.dll está sendo executado. Quando um binário Beacon é executado, ele enviará uma mensagem "INITIALIZE" para a fila baseQueueName, com um BeaconId e PipeName gerados aleatoriamente. O manipulador do CobaltBus então capturará isso, criará e moverá para as duas novas filas com base no BeaconId enviado, solicitará shellcode do stager do CobaltStrike e o enviará de volta pela nova fila como uma mensagem "INJECT". A partir daqui, o projeto Beacon injeta o shellcode capturado na memória e estabelece uma conexão com o beacon do CobaltStrike através do nome do pipe gerado. Quando um comando é emitido do CobaltBus, ele é enviado pela fila respectiva do beacon para o nome do pipe do beacon.
O fluxo de mensagens atual tem várias falhas que precisariam ser corrigidas antes que eu considerasse usar isso em operações reais. Considere isso um POC sujo. Se ao menos houvesse um especialista em mouse e C2 que pudesse tornar isso seguro para uso....
Crédito principal ao trabalho feito por @ryHanson https://github.com/ryhanson/ExternalC2