
Integrazione C2 esterna di Cobalt Strike con Azure Servicebus, traffico C2 tramite Azure Servicebus
Integrazione C2 esterna di Cobalt Strike con Azure Servicebus, traffico C2 tramite Azure Servicebus

Il binario DotNetCore CobaltBus che si integra con ExternalC2 di CobaltStrike, creerà un database SQLite locale per tenere traccia di più beacon. I messaggi in arrivo a CobaltBus verranno catturati e scritti nel database. I nomi del database "CobaltBus.db" e "CobaltBus-log.db" verranno creati nella directory da cui viene eseguito CobaltBus.dll. Quando un binario Beacon viene eseguito, invierà un messaggio "INITIALIZE" alla coda baseQueueName, con un BeaconId e un Pipename generati casualmente. Il gestore CobaltBus catturerà questo, creerà e si sposterà nelle due nuove code basate sul BeaconId inviato, richiederà lo shellcode stager da CobaltStrike e lo rispedirà indietro nella nuova coda come messaggio "INJECT". Da qui, il progetto Beacon inietta lo shellcode catturato in memoria e stabilisce una connessione con il beacon di CobaltStrike tramite il nome della pipe generato. Quando un comando viene emesso da CobaltBus, viene inviato nella coda rispettiva del beacon e quindi nel nome della pipe del beacon.
L'attuale flusso di messaggi presenta diversi difetti che dovrebbero essere risolti prima di considerare l'utilizzo in operazioni reali. Consideralo un POC sporco. Se solo ci fosse un esperto di mouse e C2 che potesse renderlo sicuro da usare....
Un grande ringraziamento al lavoro svolto da @ryHanson https://github.com/ryhanson/ExternalC2