TinySniffer est un sniffer USB basé sur le SBC NanoPi Neo Air alimenté par Allwinner H3, conçu pour capturer les paquets USB 1.x et 2.0 à distance, et dont les données capturées sont compatibles avec le populaire outil d’analyse de paquets Wireshark.
Wireshark peut déjà être utilisé pour capturer des paquets USB par lui-même et j’ai rétro-conçu une solution de capture vidéo USB de cette façon dans le passé, mais cette méthode présente certaines limitations, par exemple, elle ne capture pas certains paquets USB de bas niveau, auquel cas un sniffer USB matériel comme Total Phase Beagle USB, le PhyWhisperer USB ou le tinySniffer est nécessaire.

Le port micro USB OTG du NanoPi NEO Air SBC est connecté à l’ordinateur hôte et la société a ajouté un port USB 2.0 Type-A connecté à l’interface USB sur l’en-tête GPIO pour connecter un périphérique testé tel qu’un clavier USB, une clé Ethernet USB, une imprimante USB, etc.

Après avoir configuré le Wi-Fi, l’utilisateur peut accéder à distance à l’outil de capture USB tinySniffer en se rendant sur le site Web https://www.usb7.net/ et en sélectionnant Mes appareils. Une fenêtre de terminal s’ouvrira dans votre navigateur et vous pourrez capturer des paquets avec la commande sniff
sniff@tinySniffer:~$ sniff -h Utilisation : sniff [-h] [-i] [-u UPLOAD_FILENAME] [-s] [-r] [-R] [-F [FILTERS]]tinySniffer démarre la capture USB lorsque : 1) tinySniffer (avec un périphérique USB branché) est connecté à l’hôte USB (cela allume tinySniffer) (enregistrer dans un nouveau fichier) 2) le périphérique USB est débranché puis rebranché sur tinySniffer (enregistrer dans un nouveau fichier) 3) exécutez « sniffer.py -r » pour redémarrer la capture USB et enregistrer dans un nouveau fichier 4) exécutez « sniffer.py -R » pour émuler le débranchement/rebranchement du périphérique USB, redémarre la capture USB et enregistre dans un nouveau fichier arguments optionnels : -h, –help affiche ce message d’aide et quitte -i, –info affiche les informations de capture USB -u UPLOAD_FILENAME, –upload UPLOAD_FILENAME arrête la capture USB et télécharge le fichier capturé -s, –stop arrête la capture USB -r, –restart redémarre la capture USB et enregistre dans un nouveau fichier -R, –RESTART émule le débranchement/rebranchement du périphérique USB, redémarre la capture USB et enregistre dans un nouveau fichier -F [FILTERS]–FILTRES [FILTERS]
définir un filtre de capture, prendre en charge plusieurs filtres, séparés par « , » doit être utilisé avec l’argument -r ou -R pour redémarrer la capture USB les filtres de capture pris en charge sont : URB_ISO_OUT, URB_ISO_IN, URB_BULK_OUT, URB_BULK_IN exemples : sniff -F URB_ISO_OUT,URB_ISO_IN -r sniff -F URB_BULK_OUT -R sniff -F URB_ISO_OUT,URB_ISO_IN,URB_BULK_OUT,URB_BULK_IN -R sniff -F -R # ceci permet d’effacer les filtres de capture
|
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
sniff@tinySniffer:~$ sniff -h Utilisation : renifler [-h] [-i] [-u UPLOAD_FILENAME] [-s] [-r] [-R] [-F [FILTERS]] tinySniffer démarre la capture USB lorsque : 1) tinySniffer (avec périphérique USB branché) est connecté à l’hôte USB (cela allume tinySniffer) (enregistrer dans un nouveau fichier) 2) le périphérique USB est débranché et rebranché sur tinySniffer (enregistrer dans un nouveau fichier) 3) exécutez « sniffer.py -r » pour redémarrer la capture USB et enregistrer dans un nouveau fichier 4) exécutez « sniffer.py -R » pour émuler le débranchement/rebranchement du périphérique USB, redémarrer la capture USB et enregistrer dans un nouveau fichier arguments optionnels : -h, –help affiche ce message d’aide et quitte -i, –info affiche les informations de capture USB -u TÉLÉCHARGER_NOM_FICHIER, –upload TÉLÉCHARGER_NOM_FICHIER arrêter la capture USB et télécharger le fichier capturé -s, –stop arrête la capture USB -r, –restart redémarrer la capture USB et enregistrer dans un nouveau fichier -R, –RESTART émule le débranchement/rebranchement du périphérique USB, redémarre la capture USB et enregistre dans un nouveau fichier -F [FILTERS]–FILTRES [FILTERS] définir un filtre de capture, prendre en charge plusieurs filtres, séparés par « , » doit être utilisé avec l’argument -r ou -R pour redémarrer la capture USB les filtres de capture pris en charge sont : URB_ISO_OUT, URB_ISO_IN, URB_BULK_OUT, URB_BULK_IN exemples: renifler -F URB_ISO_OUT,URB_ISO_IN -r renifler -F URB_BULK_OUT -R renifler -F URB_ISO_OUT, URB_ISO_IN, URB_BULK_OUT, URB_BULK_IN -R sniff -F -R # ceci permet d’effacer les filtres de capture |
Vous pouvez les copier sur votre ordinateur et les analyser dans Wireshark. Comme il s’agit d’une solution logicielle, je ne pense pas qu’elle capture tous les paquets USB (y compris ceux de bas niveau), et le principal avantage de la solution est l’accès à distance. Vous trouverez plus de détails dans la documentation.

Notez que le tinySniffer exécute la distribution Linux tinyDebian que nous avons mentionnée pour la première fois dans un article, un SBC NanoPi NEO Air modifié avec un module WiFi double bande de la même société. Ni le système d’exploitation tinyDebian ni la commande sniff ne semblent être open source, vous ne pouvez donc pas répliquer ce sniffer USB si vous possédez déjà une carte NanoPi NEO Air.
Le tinySniffer coûte un prix important par rapport aux 23 $ demandés pour le NanoPi Air NEO car il est vendu 199 $ sur Tindie, un prix similaire aux solutions de capture USB basées sur FPGA.
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
NanoPi Zero2 Mini routeur WiFi, ordinateur portable Fast GigE, 1 Go/2 Go de RAM LPDDR4X Rockchip RK3528A SoC, décodeur 4K H265/H264, port Ethernet Gigabit pour passerelle intelligente IoT (2 Go avec
