Study how Cobalt Strike's UDC2 protocol spec works in an open source implementation.
Load an existing UDC2 module, such as the ICMP one, into Adaptix C2 for authorized testing.
Extend the beacon agent or listener extenders to support additional UDC2 modules.
Port the OpenUDC2 approach to another C2 framework with a similar plugin design.
| codextf2/openudc2 | peng-zhihui/arduino-boost | adtyahac/acrobat-editor | |
|---|---|---|---|
| Stars | 55 | 56 | 53 |
| Language | C++ | C++ | C++ |
| Last pushed | — | 2012-09-24 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | hard | easy | moderate |
| Complexity | 5/5 | 2/5 | 2/5 |
| Audience | developer | vibe coder | general |
Figures from each repo's GitHub metadata at analysis time.
Requires an existing Adaptix C2 install plus a separate UDC2 module (like icmp-udc2) to test against, no built-in encryption per the README.
OpenUDC2 is an open source, proof-of-concept implementation of a protocol specification called UDC2, which was originally introduced by the commercial security tool Cobalt Strike. UDC2 lets a Cobalt Strike operator plug in custom communication channels, called user-defined command and control, so that the traffic between an implant and its controller can use different transport methods. This project's goal is to let open source command and control frameworks read and use the same UDC2 modules that the Cobalt Strike community already builds, rather than each framework needing its own incompatible plugin format. The proof of concept is built specifically against Adaptix C2, an open source command and control framework, but the author states it does not rely on anything Adaptix-specific and is meant to be portable to other frameworks that support a similar custom agent and listener design. It is implemented as two Adaptix C2 extensions: one is a fork of Adaptix's default beacon agent with added support for the OpenUDC2 protocol, and the other is a listener component that mimics how a Cobalt Strike UDC2 listener behaves. The README is explicit that this proof of concept does not include any additional encryption of its own and that real encryption should be added before any live use. To try it, a user loads both extenders into Adaptix C2, downloads an existing UDC2 module such as the ICMP based one published by Cobalt Strike, creates a UDC2 listener, starts the corresponding server, and generates a beacon that embeds the matching UDC2 module. This project is aimed at security researchers and red team tool developers who already work with C2 frameworks like Adaptix C2 and Cobalt Strike and want to study or extend interoperability between open source and commercial UDC2 style channel plugins in an authorized testing context.
A proof-of-concept open source implementation of Cobalt Strike's UDC2 protocol, built as two extensions for the Adaptix C2 framework.
Mainly C++. The stack also includes C++, Adaptix C2.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.