
Integración de C2 externo de Cobalt Strike con Azure Servicebus, tráfico C2 a través de Azure Servicebus
Integración de C2 Externo de Cobalt Strike con Azure Servicebus, tráfico C2 a través de Azure Servicebus

El binario DotNetCore de CobaltBus que se integra con ExternalC2 de CobaltStrike, creará una base de datos Sqlite local para realizar un seguimiento de múltiples beacons. Los mensajes entrantes a CobaltBus se capturarán y escribirán en la base de datos. Las bases de datos con nombres "CobaltBus.db" y "CobaltBus-log.db" se crearán en el directorio desde el que se ejecuta CobaltBus.dll. Una vez que se ejecuta un binario Beacon, enviará un mensaje "INITIALIZE" a la cola baseQueueName, con un BeaconId y Pipename generados aleatoriamente. El manejador de CobaltBus capturará esto, creará y se moverá a las dos nuevas colas basadas en el BeaconId enviado, solicitará shellcode de stager de CobaltStrike y lo enviará de vuelta a la nueva cola como un mensaje "INJECT". A partir de aquí, el proyecto Beacon inyecta el shellcode capturado en la memoria y establece una conexión con el beacon de CobaltStrike a través del nombre de pipe generado. Cuando se emite un comando desde CobaltBus, se envía a la cola respectiva del beacon y al nombre de pipe del beacon.
El flujo de mensajes actual tiene múltiples fallos que deberían solucionarse antes de considerar su uso en operaciones reales. Considere esto como un POC sucio. Si tan solo hubiera un experto en ratón y C2 que pudiera hacerlo seguro de usar....
Crédito principal al trabajo realizado por @ryHanson https://github.com/ryhanson/ExternalC2