Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
adaptix-serverless-c2 — Plugin de transport C2 serverless pour AdaptixC2 v1.2 utilisant AWS Lambda + DynamoDB comme infrastructure de relais. | Kitploit
Outils/GitHubGitHub/stillbigjosh/adaptix-serverless-c2
Sécurité de l'Infrastructure CloudFrameworks de Tests d'IntrusionFrameworks d'ExploitationMécanismes de PersistanceScripting et AutomatisationSécurité ServerlessPost-ExploitationSécurité Cloud
Commandement et Contrôle
Red Teaming
Développement de Charges Utiles
GitHubstillbigjosh/adaptix-serverless-c2

adaptix-serverless-c2

Plugin de transport C2 serverless pour AdaptixC2 v1.2 utilisant AWS Lambda + DynamoDB comme infrastructure de relais.

Voir le dépôt
304102il y a 7 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Adaptix Serverless C2

Topologie du C2 serverless

Plugin de transport C2 serverless pour AdaptixC2 v1.2 utilisant AWS Lambda + DynamoDB comme infrastructure de relais. Le trafic de l'agent apparaît comme du HTTPS sortant vers des points de terminaison AWS, ne nécessitant aucun port entrant ni IP publique sur le serveur C2.

Architecture

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

Flux de données :

  1. L'agent Kharon envoie un check-in chiffré via HTTPS vers l'URL de la fonction Lambda
  2. Lambda stocke les données brutes dans la table DynamoDB inbound
  3. Lambda interroge la table outbound pendant jusqu'à 8 secondes (comble le décalage asynchrone pour l'enregistrement)
  4. Si une réponse existe, Lambda la renvoie et la marque comme livrée
  5. Le plugin listener AdaptixC2 interroge la table DynamoDB inbound pour les enregistrements non traités
  6. Le listener analyse le protocole wire Kharon (chiffré avec LokyCrypt), enregistre/met à jour l'agent
  7. Lorsque l'opérateur émet des commandes, le listener les chiffre au format Kharon et les stocke dans outbound
  8. Au prochain check-in, Lambda renvoie la réponse à l'agent

Composants

ComposantCheminObjectif
Agent Kharonagent/Implant Kharon embarqué (source C++)
Terraformdeploy/aws/Infrastructure Lambda + DynamoDB + IAM + KMS
Relais Lambdadeploy/aws/lambda/Proxy HTTP-vers-DynamoDB sans état avec interrogation sortante
Plugin listenerlistener/Plugin AdaptixC2, interrogation DynamoDB, pont de protocole Kharon
Configurations Kharonkharon/Enregistrement des commandes AXS et configuration pour les extenders agent/listener
Patchspatches/Patchs du code source AdaptixC2 pour le support BeaconServerless
Profilsprofiles/Profil HTTP Malleable pour l'URL Lambda
Scriptsscripts/Installation, compilation, déploiement, désinstallation

Prérequis

  • Compte AWS avec identifiants configurés (aws configure)
  • Terraform >= 1.5.0
  • Go >= 1.23 (le plugin listener nécessite un GOEXPERIMENT correspondant au binaire du serveur)
  • AdaptixC2 v1.2 installé
  • clang++ avec cibles mingw : apt install clang lld
  • Assembleur NASM : apt install nasm
  • objcopy : apt install binutils-mingw-w64-x86-64

Configuration du compte AWS

1. Créer un utilisateur IAM pour le déploiement

Dans la console AWS :

  1. Allez dans IAM > Users > Create user
  2. Nommez-le adaptix-deployer
  3. Sélectionnez Attach policies directly
  4. Attachez ces politiques gérées par AWS :
    • AmazonDynamoDBFullAccess
    • AWSLambda_FullAccess
    • IAMFullAccess
    • CloudWatchLogsFullAccess
  5. Ajoutez une politique inline pour KMS :
    • Cliquez sur Add permissions > Create inline policy > JSON
    • Collez : {"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"kms:*","Resource":"*"}]}
    • Nommez-la KMSFullAccess
  6. Créez l'utilisateur, puis allez dans Security credentials > Create access key
  7. Choisissez Command Line Interface (CLI)
  8. Enregistrez l'Access Key ID et la Secret Access Key

2. Configurer AWS CLI

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

Vérifier :

aws sts get-caller-identity

Installation

Étape 1 : Déployer l'infrastructure 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"

Étape 2 : Installer le plugin dans AdaptixC2

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

Ce script va :

  1. Sauvegarder votre répertoire dist/ (certificats, base de données, profil)
  2. Appliquer les correctifs source pour la prise en charge du connecteur BeaconServerless
  3. Détecter les indicateurs GOEXPERIMENT à partir du binaire du serveur
  4. Compiler le plugin d'écoute (.so) avec les indicateurs correspondants
  5. Recompiler le serveur AdaptixC2 et les extenders
  6. Restaurer vos fichiers sauvegardés (certificats, base de données, profil)
  7. Installer le plugin d'écoute serverless + les configurations de l'extender Kharon
  8. Créer/mettre à jour le service systemd
  9. Redémarrer AdaptixC2

Étape 3 : Configurer l'écouteur dans l'interface graphique

  1. Connectez-vous à l'interface web d'AdaptixC2
  2. Accédez à Listeners et créez un nouvel écouteur BeaconServerless
  3. Définissez Lambda URL sur l'URL de fonction de l'étape 1
  4. Définissez Relay API Key (doit correspondre à relay_api_key dans votre terraform.tfvars)
  5. Ajustez éventuellement : AWS Region, Poll Interval (par défaut 5s), TTL Hours (par défaut 24)
  6. Téléversez le profil malléable depuis profiles/lambda_default.json
  7. Démarrez l'écouteur

Étape 4 : Générer et exécuter la charge utile

  1. Dans l'interface graphique, générez un agent Kharon en sélectionnant l'écouteur BeaconServerless
  2. Choisissez le format (Exe, Dll, Svc) et l'architecture (x64)
  3. Exécutez la charge utile sur la cible
  4. L'agent devrait se signaler en quelques secondes

Configuration

Variables Terraform (deploy/aws/terraform.tfvars)

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

Paramètres du listener (interface graphique AdaptixC2)

ChampDescriptionValeur par défaut
AWS RegionRégion où l'infrastructure est déployéeus-east-1
Lambda URLURL de la fonction issue de la sortie Terraform(requis)
Relay API KeyDoit correspondre au relay_api_key de Terraform(facultatif)
Inbound TableTable DynamoDB pour les check-ins des agentsadaptix-inbound
Outbound TableTable DynamoDB pour les réponses du serveuradaptix-outbound
Poll IntervalFréquence de vérification de DynamoDB (secondes)5
TTL HoursExpiration des enregistrements DynamoDB24

Détails techniques clés

Protocole réseau Kharon

L'agent Kharon utilise un protocole binaire personnalisé sur HTTP :

  • Nouvel agent (enregistrement) : [36-byte UUID][encrypted_checkin_data][16-byte LokyCrypt key]
  • Agent connecté (GetTask) : [36-byte UUID][encrypted_payload] (pas de clé finale)
  • !Agent connecté (écrasement de clé) : Lorsque la charge utile est petite, la clé de 16 octets à TotalLen-16 chevauche la zone de l'UUID. Pour un paquet de 44 octets, la clé commence à l'offset 28, écrasant les octets 28-35 de l'UUID et toutes les données chiffrées.

Le listener détecte les trois formats et les traite correctement.

Boucle de polling sortante Lambda

Télécharger l’outil