Infraestructura propuesta

Para la solución de Command & Control, proponemos un diseño que permita extender la infraestructura y nos permita extender las funcionalidades en la medida en que definamos.

Estructura del proyecto

├── agent
│   ├── app
│   │   ├── agent.go
│   │   ├── command.go
│   │   ├── file.go
│   │   └── proto.go
│   ├── build
│   │   └── x64-darwin
│   ├── comm
│   │   ├── client.go
│   │   ├── dh.go
│   │   ├── dummy_auth.go
│   │   ├── http.go
│   │   ├── sym.go
│   │   └── udp.go
│   ├── config.go
│   ├── config.json
│   ├── config_placeholder.bin
│   ├── cryptoutil
│   │   ├── dh
│   │   │   └── main.go
│   │   └── sym
│   │       └── main.go
│   ├── main.go
│   ├── Makefile
│   └── types.go
├── cli
│   ├── cli.py
│   └── requirements.txt
├── launcher
├── malon_lp
│   ├── malon_lp
│   │   ├── admin
│   │   │   ├── __init__.py
│   │   │   ├── json_encoder.py
│   │   │   ├── listener_manager.py
│   │   │   ├── __main__.py
│   │   │   └── render_launcher.py
│   │   ├── crypto
│   │   │   ├── dh.py
│   │   │   ├── __init__.py
│   │   │   └── sym.py
│   │   ├── database
│   │   │   ├── __init__.py
│   │   │   ├── models.py
│   │   ├── __init__.py
│   │   ├── listener
│   │   │   ├── handler
│   │   │   │   ├── api.py
│   │   │   │   ├── dh.py
│   │   │   │   ├── dummy_auth.py
│   │   │   │   ├── __init__.py
│   │   │   │   └── sym.py
│   │   │   ├── __init__.py
│   │   │   ├── listener
│   │   │   │   ├── http_listener.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── udp_listener.py
│   │   │   │   ├── unenc_http_listener.py
│   │   │   │   └── unenc_udp_listener.py
│   │   ├── __main__.py
│   ├── render_launcher
│   │   ├── config_placeholder.bin
│   │   ├── x64-darwin
│   │   ├── x64-linux
│   │   └── x64-windows
│   ├── requirements.txt
│   └── test.db
└── README.md

API Handler

Esta abstracción es la encargada de consultar por una interfaz web REST por tareas ("tasks") pendientes a ser ejecutadas por los agentes

Listener

El propósito de la abstracción de Listener, es exponer los servicios que son adjuntados a las interfaces del servidor. Deben únicamente establecer el protocolo por el cual los mensajes van a ser transmitidos.

Client (Agente)

La interfaz de Cliente es utilizada para definir los mecanismos por los cuales los mensajes son enviados al servidor

Modelos Admin

Comportamiento del agente

Recorrido de una request y una response

Encriptado

No encriptado

Caso particular de una Task

Última actualización