whatisgithub

What is openudc2?

codextf2/openudc2 — explained in plain English

Analysis updated 2026-05-18

55C++Audience · developerComplexity · 5/5Setup · hard

In one sentence

A proof-of-concept open source implementation of Cobalt Strike's UDC2 protocol, built as two extensions for the Adaptix C2 framework.

Mindmap

mindmap
  root((OpenUDC2))
    What it does
      UDC2 protocol implementation
      Adaptix C2 extenders
      Beacon and listener
    Tech stack
      C++
      Adaptix C2
    Use cases
      Study UDC2 protocol
      Load UDC2 modules
      Extend C2 interop
    Audience
      Security researchers
      Red team developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how Cobalt Strike's UDC2 protocol spec works in an open source implementation.

USE CASE 2

Load an existing UDC2 module, such as the ICMP one, into Adaptix C2 for authorized testing.

USE CASE 3

Extend the beacon agent or listener extenders to support additional UDC2 modules.

USE CASE 4

Port the OpenUDC2 approach to another C2 framework with a similar plugin design.

What is it built with?

C++Adaptix C2

How does it compare?

codextf2/openudc2peng-zhihui/arduino-boostadtyahac/acrobat-editor
Stars555653
LanguageC++C++C++
Last pushed2012-09-24
MaintenanceDormant
Setup difficultyhardeasymoderate
Complexity5/52/52/5
Audiencedevelopervibe codergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires an existing Adaptix C2 install plus a separate UDC2 module (like icmp-udc2) to test against, no built-in encryption per the README.

So what is it?

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.

Copy-paste prompts

Prompt 1
Explain what the UDC2 protocol is and how this project implements it for Adaptix C2.
Prompt 2
Walk me through loading the beacon_agent and open_udc2_listener extenders in Adaptix C2.
Prompt 3
What does the README say about encryption, and what would I need to add before any real use?
Prompt 4
Summarize the two Adaptix C2 extender components this project provides and what each does.

Frequently asked questions

What is openudc2?

A proof-of-concept open source implementation of Cobalt Strike's UDC2 protocol, built as two extensions for the Adaptix C2 framework.

What language is openudc2 written in?

Mainly C++. The stack also includes C++, Adaptix C2.

How hard is openudc2 to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is openudc2 for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.