Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
adaptix-serverless-c2 — Plugin de transporte C2 serverless para AdaptixC2 v1.2 que utiliza AWS Lambda + DynamoDB como infraestructura de retransmisión. | Kitploit
Herramientas/GitHubGitHub/stillbigjosh/adaptix-serverless-c2
Seguridad de Infraestructura en la NubeFrameworks de Pruebas de PenetraciónFrameworks de ExploitsMecanismos de PersistenciaScripting y AutomatizaciónSeguridad ServerlessPost-ExplotaciónSeguridad en la Nube
Comando y Control
Red Teaming
Desarrollo de Payloads
GitHubstillbigjosh/adaptix-serverless-c2

adaptix-serverless-c2

Plugin de transporte C2 serverless para AdaptixC2 v1.2 que utiliza AWS Lambda + DynamoDB como infraestructura de retransmisión.

Ver Repositorio
19310hace 6 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Adaptix Serverless C2

Topología de C2 sin servidor

Plugin de transporte C2 sin servidor para AdaptixC2 v1.2 que utiliza AWS Lambda + DynamoDB como infraestructura de retransmisión. El tráfico del agente aparece como HTTPS saliente hacia endpoints de AWS, sin requerir puertos entrantes ni IPs públicas en el servidor C2.

Arquitectura

Kharon Agent (target)
    |
    | HTTPS GET/POST (outbound only, randomly alternated)
    v
AWS Lambda Function URL (stateless relay)
    |
    | Store inbound / Poll outbound (up to 8s)
    v
DynamoDB (inbound + outbound tables)
    ^
    | Poll every 5 seconds
    |
Listener Plugin (inside AdaptixC2)
    |
    | TsAgent API + TsExtenderData (key persistence)
    v
AdaptixC2 Teamserver + UI

Flujo de datos:

  1. El agente Kharon envía un check-in cifrado vía HTTPS a la URL de la función Lambda
  2. Lambda almacena los datos sin procesar en la tabla inbound de DynamoDB
  3. Lambda consulta la tabla outbound durante hasta 8 segundos (salva la brecha asíncrona para el registro)
  4. Si existe una respuesta, Lambda la devuelve y la marca como entregada
  5. El plugin de listener de AdaptixC2 consulta la tabla inbound de DynamoDB en busca de registros no procesados
  6. El listener analiza el protocolo de comunicación de Kharon (cifrado con LokyCrypt), registra/actualiza el agente
  7. Cuando el operador emite comandos, el listener los cifra en formato Kharon y los almacena en outbound
  8. En el siguiente check-in, Lambda devuelve la respuesta al agente

Componentes

ComponenteRutaPropósito
Agente Kharonagent/Implante Kharon incluido (código fuente C++)
Terraformdeploy/aws/Infraestructura Lambda + DynamoDB + IAM + KMS
Relay Lambdadeploy/aws/lambda/Proxy sin estado de HTTP a DynamoDB con sondeo saliente
Plugin de listenerlistener/Plugin de AdaptixC2, sondeo de DynamoDB, puente de protocolo Kharon
Configuraciones de Kharonkharon/Registro de comandos AXS y configuración para extensores de agente/listener
Parchespatches/Parches del código fuente de AdaptixC2 para soporte de BeaconServerless
Perfilesprofiles/Perfil HTTP maleable para la URL de Lambda
Scriptsscripts/Instalación, compilación, despliegue, desinstalación

Requisitos previos

  • Cuenta de AWS con credenciales configuradas (aws configure)
  • Terraform >= 1.5.0
  • Go >= 1.23 (el plugin de listener requiere que GOEXPERIMENT coincida con el binario del servidor)
  • AdaptixC2 v1.2 instalado
  • clang++ con objetivos mingw: apt install clang lld
  • Ensamblador NASM: apt install nasm
  • objcopy: apt install binutils-mingw-w64-x86-64

Configuración de la cuenta de AWS

1. Crear un usuario IAM para el despliegue

En la consola de AWS:

  1. Vaya a IAM > Users > Create user
  2. Nómbrelo adaptix-deployer
  3. Seleccione Attach policies directly
  4. Adjunte estas políticas administradas de AWS:
    • AmazonDynamoDBFullAccess
    • AWSLambda_FullAccess
    • IAMFullAccess
    • CloudWatchLogsFullAccess
  5. Añada una política en línea para KMS:
    • Haga clic en Add permissions > Create inline policy > JSON
    • Pegue: {"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"kms:*","Resource":"*"}]}
    • Nómbrela KMSFullAccess
  6. Cree el usuario, luego vaya a Security credentials > Create access key
  7. Elija Command Line Interface (CLI)
  8. Guarde el Access Key ID y el Secret Access Key

2. Configurar la CLI de AWS

aws configure
# AWS Access Key ID: <paste access key>
# AWS Secret Access Key: <paste secret key>
# Default region: us-east-1
# Default output format: json

Verifique:

aws sts get-caller-identity

Instalación

Paso 1: Desplegar la infraestructura de AWS

# Build the Lambda relay binary (cross-compiled for Amazon Linux)
./scripts/build_relay.sh

# Deploy Lambda + DynamoDB + IAM with Terraform
./scripts/deploy_infra.sh

# Note the Lambda Function URL from the output, e.g.:
# lambda_function_url = "https://xxxxx.lambda-url.us-east-1.on.aws"

Paso 2: Instalar el plugin en AdaptixC2

./scripts/install.sh /path/to/AdaptixC2

Este script hará lo siguiente:

  1. Hacer una copia de seguridad de su directorio dist/ (certificados, base de datos, perfil)
  2. Aplicar parches al código fuente para el soporte del conector BeaconServerless
  3. Detectar los indicadores GOEXPERIMENT del binario del servidor
  4. Compilar el plugin de listener (.so) con los indicadores coincidentes
  5. Recompilar el servidor AdaptixC2 y los extensores
  6. Restaurar sus archivos respaldados (certificados, base de datos, perfil)
  7. Instalar el plugin de listener sin servidor + las configuraciones del extensor Kharon
  8. Crear/actualizar el servicio systemd
  9. Reiniciar AdaptixC2

Paso 3: Configurar el listener en la GUI

  1. Inicie sesión en la interfaz web de AdaptixC2
  2. Vaya a Listeners y cree un nuevo listener BeaconServerless
  3. Establezca Lambda URL con la URL de la función del Paso 1
  4. Establezca Relay API Key (debe coincidir con relay_api_key en su terraform.tfvars)
  5. Opcionalmente ajuste: Región de AWS, Intervalo de sondeo (predeterminado 5s), Horas de TTL (predeterminado 24)
  6. Cargue el perfil maleable desde profiles/lambda_default.json
  7. Inicie el listener

Paso 4: Generar y ejecutar el payload

  1. En la GUI, genere un agente Kharon seleccionando el listener BeaconServerless
  2. Elija el formato (Exe, Dll, Svc) y la arquitectura (x64)
  3. Ejecute el payload en el objetivo
  4. El agente debería registrarse en cuestión de segundos

Configuración

Variables de Terraform (deploy/aws/terraform.tfvars)

region        = "us-east-1"
function_name = "adaptix-relay"
relay_api_key = "your-secret-key-here"
tags = {
  Project = "adaptix-serverless"
}

Configuración del listener (GUI de AdaptixC2)

CampoDescripciónPredeterminado
Región de AWSRegión donde se despliega la infraestructuraus-east-1
Lambda URLURL de la función desde la salida de Terraform(obligatorio)
Relay API KeyDebe coincidir con relay_api_key de Terraform(opcional)
Tabla de entradaTabla DynamoDB para los check-ins del agenteadaptix-inbound
Tabla de salidaTabla DynamoDB para las respuestas del servidoradaptix-outbound
Intervalo de sondeoCon qué frecuencia consultar DynamoDB (segundos)5
Horas de TTLExpiración de los registros de DynamoDB24

Detalles técnicos clave

Protocolo de comunicación de Kharon

El agente Kharon utiliza un protocolo binario personalizado sobre HTTP:

  • Agente nuevo (registro): [36-byte UUID][encrypted_checkin_data][16-byte LokyCrypt key]
  • Agente conectado (GetTask): [36-byte UUID][encrypted_payload] (sin clave al final)
  • Agente !Connected (key stomping): Cuando el payload es pequeño, la clave de 16 bytes en TotalLen-16 se superpone en el área del UUID. Para un paquete de 44 bytes, la clave comienza en el desplazamiento 28, sobrescribiendo los bytes 28-35 del UUID y todos los datos cifrados.

El listener detecta los tres formatos y los maneja correctamente.

Bucle de sondeo saliente de Lambda

Descargar herramienta