Integrating C2s
The elements of Zuthaka are instances over implemented abstract classes that define the general behavior of a C2.
Class Handlers
Class handlers are the core of every new Zuthaka integration. These represent the base functionality and contract given by the integration. The attributes defined in the class handler frame the representation exposed in the web interface and the functions implemented in the class shape the service behavior.
Implementing C2 Type Class handler connections:
Attributes and Options Descriptions
The attributes "name", "description", "documentation", and a list of "registered_options" is mandatory for the correct function of Zuthaka. This helps guide the user through the steps necessary to use the specific implementation.
from ..c2 import C2, Listener, ListenerType, Launcher, LauncherType, Options, OptionDesc
class TemplateC2Type(C2):
# all this information is given to the user when using the interface
name = 'template_c2'
description = 'this is an example C2'
documentation = 'https://super.awesome.c2/docs/'
registered_options = [
OptionDesc(
name='url',
description='Url of the corresponding API',
example='https://127.0.0.1:31337',
field_type='string',
required=True
),
OptionDesc(
name='username',
description='user owner of the API',
example='pucara',
field_type='string',
required=True
),
OptionDesc(
name='password',
description='Url of the corresponding API',
example='p4ssw0rd',
field_type='string',
required=True
),
]
...
The descriptions of the integration helps to populate the user interface, for a guided experience.

Behavior Abstract Methods
The behavior is defined through the implementation of abstract methods with an specific "contract".
health check method: is_alive
A good practice to implement "is_alive" is to query the API for a given response. For REST APIs, generating a token is a good way to guarantee the C2 is processing the requests given through the handler.
Implementing Listener Type Class
The Listeners are the services awaiting for connections from different Agents and generally delivering the instructions to be executed by them.
Listener Types are integrated with a similar logic that responds to the C2 API to handle Listeners.
Attributes and Options Descriptions
Behavior Abstract Methods
Listeners must be able to be created and destroyed.
The creation or elimination of elements requires a consistency check by the class handler. This allows Zuthaka to catch at an early stage any consistency problem with the infrastructure handled.
Implementing Launcher Type Class
The Launchers represent the capabilities of a given C2 to encapsulate the implant for later execution on the victim's machine.
Attributes and Options Descriptions
Behavior Abstract Methods
Implementing Agent Type Class
Agents are controlled victim's machines. The integration of Agents on Zuthaka allows the user to manage the computer through the UI.
Behavior Abstract Methods
Last updated
Was this helpful?