This is an open source implementation of the UDC2 spec used in Cobalt Strike. The goal of this project is to enable open source C2 frameworks to support existing (and hopefully future) open source UDC2 modules developed by the Cobalt Strike community.
While this PoC is implemented for Adaptix C2 as a PoC, it does not depends on any Adaptix C2 specific features. It is meant to be easily portable to any other C2 with a custom agent+listener spec.
This PoC is implemented as a pair of Adaptix C2 extenders:
- beacon_agent - is just a fork of the default Adaptix C beacon with support for the OpenUDC2 protocol
- open_udc2_listener - is the listener that mimics the Cobalt Strike UDC2 listener This PoC does not implement any additional encryption - do implement strong encryption before live use
If you haven't already, download a UDC2 to test with e.g. icmp-udc2
- Load both extenders
- Create a UDC2 listener
- Start the UDC2 server (e.g. the default ICMP one)
- Generate a beacon from the UDC2 listener and embed the corresponding UDC2 BOF
- profit!
idk just dont start a nuclear war with my code thx. i am not responsible for what you do with my code.
- Cobalt Strike 4.12: Fix Up, Look Sharp! - official announcement introducing UDC2
- udc2-vs - official UDC2 BOF template/spec
- icmp-udc2 - official ICMP UDC2 channel implementation