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)
- Décompression dans Exegol :
unzip hx-frappes-captives.zip->usb.pcap+README.txt(confirme boot HID 8 octets). - 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).
- Extraction des rapports :
tshark -r usb.pcap -Y 'usb.capdata' -T fields -e usb.capdata - 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
| capdata | mod | key | -> |
|---|---|---|---|
| 020015 | Shift | 0x15 r | R |
| 02001a | Shift | 0x1a w | W |
| 02001b | Shift | 0x1b x | X |
| 02002f | Shift | 0x2f [ | { |
| 09 15 04 13 13 08 16 | f r a p p e s | frappes | |
| 02002d | Shift | 0x2d - | _ |
| 15 08 06 12 11 16 17 0c 17 18 08 08 1d | r e c o n s t i t u e e z | reconstitueez | |
| 00002a | 0x2a Backspace | retire z -> reconstituee | |
| 000016 | 0x16 s | s -> reconstituees | |
| 020030 | Shift | 0x30 ] | } |
| 000028 | 0x28 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) : lezerroné est conservé et lesajouté 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}