← tous les write-ups
forensicusbhidctfhexagone· 2 min de lecture

Frappes Captives

Lux

Catégorie / mécanisme

Capture USB (usb.pcap, format Linux usbmon mmap) des rapports d'interruption-IN d'un clavier USB HID en boot protocol. Chaque rapport fait 8 octets : [modificateur, réservé, keycode1..keycode6]. Il faut mapper les usage IDs HID (page clavier 0x07) vers des caractères, appliquer les modificateurs Shift, et rejouer les Backspace pour obtenir la saisie finale corrigée.

Étapes

Phase 1 — hors-ligne (aucune requête réseau)

  1. Décompression dans Exegol : unzip hx-frappes-captives.zip -> usb.pcap + README.txt (confirme boot HID 8 octets).
  2. Un seul périphérique dans la capture (device_address 7, endpoint 0x81, IN) : pas de second clavier leurre. Frames 1-2 = descripteurs (bDescriptorType 0x03 = HID). 60 paquets, 29 appuis (frames impaires = key-down, paires = relâchement tout-à-zéro).
  3. Extraction des rapports : tshark -r usb.pcap -Y 'usb.capdata' -T fields -e usb.capdata
  4. Décodage avec decode_hid.py (table usage ID, Shift=bit 0x02/0x20 -> majuscule/symbole, Backspace 0x2a dépile le buffer, Enter 0x28 ignoré).

Trace HID -> caractères

capdatamodkey->
020015Shift0x15 rR
02001aShift0x1a wW
02001bShift0x1b xX
02002fShift0x2f [{
09 15 04 13 13 08 16f r a p p e sfrappes
02002dShift0x2d -_
15 08 06 12 11 16 17 0c 17 18 08 08 1dr e c o n s t i t u e e zreconstitueez
00002a0x2a Backspaceretire z -> reconstituee
0000160x16 ss -> reconstituees
020030Shift0x30 ]}
0000280x28 Enter(validation)

Saisie brute : RWX{frappes_reconstitueez + s} puis correction. Saisie finale (après Backspace rejoué) : RWX{frappes_reconstituees} ("frappes reconstituées").

Leurre écarté (piège AI-trap, -50 pts)

  • RWX{frappes_reconstitueezs} — saisie brute si on ignore le Backspace (0x2a) : le z erroné est conservé et le s ajouté derrière. C'est exactement le piège de l'énoncé. Le flag correct est la saisie après correction.
  • Pas de second device/leurre matériel : une seule interface clavier dans la capture.

Source KB

knowledge/hacktricks/src/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/usb-keystrokes.md (format boot HID 8 octets, extraction usb.capdata via tshark, décodage stateful, gestion Shift/AltGr et rejeu des corrections).

Reproduction

# dans Exegol (exegol-harness)
unzip hx-frappes-captives.zip -d extracted/
tshark -r extracted/usb.pcap -Y 'usb.capdata' -T fields -e usb.capdata \
  | python3 -I decode_hid.py
# -> FINAL : RWX{frappes_reconstituees}
Markdown supporté · Ctrl+Entrée pour publierSe connecter pour publier

chargement de la discussion…