Script¶
Stentor comprend un moteur de script CNA/Sleep complet pour automatiser les opérations, étendre les fonctionnalités et créer des flux de travail personnalisés. CNA (Cobalt Strike's Aggressor Script) permet aux opérateurs d'étendre la plateforme avec des commandes de beacon personnalisées, d'automatiser les chaînes post-exploitation, de réagir aux événements de beacon, de personnaliser l'interface utilisateur avec des menus contextuels et de créer des flux de travail d'engagement scriptés, le tout via un puissant moteur de script côté serveur.
Démarrage rapide
# hello.cna -- your first Stentor script
println("Hello from Stentor CNA!");
on beacon_initial {
bsleep($1, 30, 20);
blog($1, "Auto-configured by hello.cna");
}
Chargez-le : Console de script > load /path/to/hello.cna
Dans cette rubrique¶
- Guide linguistique -- Syntaxe du langage de veille, types de données, variables, opérateurs, flux de contrôle, fonctions, fermetures, tableaux, hachages, opérations de chaîne et chargement de scripts.
- Référence de fonction -- Référence complète de plus de 300 fonctions CNA organisées par catégorie : commandes de beacon (167 fonctions
b*), requêtes de modèle de données, assistants de dialogue/interface utilisateur, formatage de sortie, génération de payload, manipulation PE, et plus encore. - Hooks & Events -- Plus de 24 hooks pour remplacer le comportement par défaut (techniques d'injection, génération de payload, sortie d'artefact) et plus de 57 événements pour l'automatisation réactive (cycle de vie des beacons, activité de l'opérateur, minuteries de battement de cœur).
- Mode sans tête -- Exécutez le moteur CNA de Stentor sans l'interface graphique pour les engagements automatisés, les pipelines CI/CD, les opérations planifiées et les flux de travail scriptés.
Aperçu des fonctionnalités¶
| Capacité | Description | Exemple |
|---|---|---|
| Commandes personnalisées | Ajoutez des commandes de console de beacon avec alias | alias getsecrets { bhashdump($1); } |
| Automatisation des événements | Réagissez aux enregistrements de beacons et aux événements du cycle de vie | on beacon_initial { bsleep($1, 30, 20); } |
| Personnalisation de l'interface utilisateur | Ajouter des menus contextuels, des sous-menus et des séparateurs | popup beacon_top { item "Quick Scan" { ... } } |
| Crochets de payload | Personnaliser la génération de payload et la sortie d'artefacts | set EXECUTABLE_ARTIFACT_GENERATOR { ... } |
| Contrôle des injections | Remplacer le comportement d'injection de processus | set PROCESS_INJECT_SPAWN { ... } |
| Commandes de la console | Enregistrer les commandes interactives de la console de script | command report { println(beacons()); } |
| Raccourcis clavier | Lier les raccourcis clavier aux actions de script | bind Ctrl+H { println("help"); } |
| Opérations sans tête | Scripts d'engagement automatisés sans interface utilisateur | Mode CLI agscript |
Comment ça marche¶
Le moteur CNA de Stentor implémente un interpréteur de sommeil complet côté serveur, écrit en Go :
- Lexer -- Tokenise le code source de l'AIIC
- Parser -- Construit un arbre de syntaxe abstraite (AST)
- Validateur sémantique – Vérifie les fonctions non définies et les problèmes de variables avant l'exécution.
- Évaluateur – Exécute l'AST avec une prise en charge complète du langage de veille.
- Registre – Stocke tous les enregistrements de mots clés (alias, événements, hooks, popups, commandes, liaisons) par script
Les scripts sont chargés, analysés, validés et exécutés de manière atomique. Une fois déchargées, toutes les inscriptions de ce script sont proprement supprimées sans affecter les autres scripts.