Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
facedancer — Implémentez votre propre périphérique USB en Python, pris en charge par un périphérique matériel tel que Cynthion ou GreatFET | Kitploit
Outils/GitHubGitHub/greatscottgadgets/facedancer
Sécurité des Systèmes EmbarquésSniffing et Analyse de PaquetsRétro-ingénierieFuzzingHacking MatérielUtilitaires et FrameworksSécurité Matériel et IoTRed Teaming
GitHubgreatscottgadgets/facedancer

facedancer

Implémentez votre propre périphérique USB en Python, pris en charge par un périphérique matériel tel que Cynthion ou GreatFET

1.0k15411il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

Facedancer 3.0

Ce dépôt héberge la prochaine génération du logiciel Facedancer. Descendant du Facedancer original basé sur GoodFET, ce dépôt fournit un module Python qui offre une prise en charge étendue de Facedancer -- incluant la prise en charge de plusieurs cartes et quelques nouvelles fonctionnalités assez significatives.

Documentation du projet

La documentation de Facedancer est disponible sur Read the Docs. Les sources brutes de la documentation se trouvent dans le dossier docs/.

Installation

Installez ce paquet avec la commande suivante :

pip install facedancer

Ensuite, vous pouvez importer le paquet facedancer comme d'habitude :

$ python
>>> import facedancer

Où sont mes scripts ?

Facedancer 3.0 est une réécriture complète du cœur d'émulation d'origine et ne prend pas en charge les scripts hérités.

Si vous utilisez des scripts ou du matériel de formation qui dépendent de fonctionnalités ou d'API dépréciées dans v3.0.x, vous pouvez installer la dernière version v2.9.x de Facedancer avec :

pip install "facedancer<=3"

Les applets et exemples hérités se trouvent dans la branche v2.9.x.

Qu'est-ce qu'un Facedancer ?

Les cartes Facedancer sont de simples dispositifs matériels qui agissent comme des contrôleurs USB « télécommandés ». Avec le logiciel approprié, vous pouvez utiliser ces cartes pour émuler rapidement et facilement des périphériques USB -- et pour fuzzer les contrôleurs hôtes USB !

Ce dépôt logiciel particulier vous permet actuellement de créer facilement des émulations de périphériques USB en Python. Le contrôle est suffisamment fin pour que vous puissiez provoquer toutes sortes de mauvais comportements USB. :)

Pour plus d'informations, voir :

  • Le billet de blog de Travis Goodspeed sur Facedancer
  • Le Facedancer 21, la carte prise en charge d'origine

USBProxy 'Nouveau' et analyse de protocole

Une nouvelle fonctionnalité majeure de la base de code Facedancer plus récente est la capacité de faire du MITM (Meddler-In-The-Middle) sur les connexions USB -- remplaçant l'un des projets originaux des auteurs, USBProxy. Cela ouvre tout un nouveau domaine d'applications -- incluant l'analyse de protocole et la manipulation en direct des paquets USB -- et est particulièrement utile lorsque vous ne contrôlez pas le logiciel s'exécutant sur le périphérique cible (par exemple sur des systèmes embarqués ou des consoles de jeux).

                 +-----------------------------------------------------------------------+
+------------+   |  +--------------------------------+   +---------------------------+   |  +--------------+
|            |   |  |                                |   |                           |   |  |              |
|  PROXIED   |   |  |         HOST COMPUTER          |   |    FACEDANCER DEVICE      |   |  |  TARGET USB  |
|   DEVICE   <------>  running Facedancer software   <--->  acts as USB-Controlled   <------>     HOST     |
|            |   |  |                                |   |      USB Controller       |   |  |              |
|            |   |  |                                |   |                           |   |  |              |
+------------+   |  +--------------------------------+   +---------------------------+   |  +--------------+
                 |                                                                       |
                 |                    MITM Setup (HOST + FACEDANCER)                     |
                 +-----------------------------------------------------------------------+

Cette fonctionnalité est complète, mais mériterait plus de documentation. Les pull requests sont les bienvenues. :)

Comment utiliser ce dépôt ?

Tout d'abord, vous voudrez probablement définir la variable d'environnement BACKEND, qui permet au logiciel de savoir quel type de carte Facedancer vous souhaitez utiliser. Si cette variable n'est pas définie, le logiciel essaiera de deviner pour vous en fonction de ce qui est connecté. Il ne fait pas toujours les meilleures suppositions, donc vous avez probablement intérêt à la définir vous-même.

Ensuite, vous voudrez probablement consulter l'un des exemples, ou l'un des scripts prêts à l'emploi. Les exemples dans la nouvelle syntaxe se trouvent sous examples. Les scripts Facedancer principaux dans la « ancienne » syntaxe se trouvent dans legacy-applets.

Par exemple :

export BACKEND=greatfet
./examples/rubber-ducky.py

Quelles cartes sont actuellement prises en charge ?

  • Le Cynthion USB Test Instrument (BACKEND=cynthion)
  • Le GreatFET One (BACKEND=greatfet)
  • La carte NXP LPC4330 Xplorer. (BACKEND=greatfet)
  • Le badge rad1o du CCCamp 2015 avec GreatFET l0adable (BACKEND=greatfet)
  • Tous les Facedancers basés sur GoodFET, y compris le Facedancer21 courant (BACKEND=goodfet)
  • Les cartes RPi + Max3241 Raspdancer (BACKEND=raspdancer)
  • Les cartes HydraDancer et HydraUSB3 (BACKEND=hydradancer)

Notez que les restrictions matérielles empêchent les cartes MAX3420/MAX3421 d'émuler des périphériques plus complexes -- il y a une limitation sur le nombre/type de points de terminaison qui peuvent être configurés. Les cartes LPC4330 -- telles que le GreatFET -- ont moins de limitations.

Pour une raison similaire, les cartes MAX3420/MAX3421 (BACKEND=goodfet ou BACKEND=raspdancer) ne peuvent actuellement pas être utilisées comme périphériques MITM USBProxy-nv. Toutes les cartes modernes (BACKEND=greatfet, BACKEND=hydradancer) devraient être pleinement fonctionnelles.

Notez que les cartes HydraDancer et HydraUSB3 (BACKEND=hydradancer) ne prennent actuellement pas en charge le mode hôte. Notez que le FaceDancer 3.0 actuel ne fonctionne pas sous Windows (quelques problèmes avec pyusb...) et uniquement sous GNU/Linux

Quelles cartes pourraient être prises en charge prochainement ?

  • Tout ordinateur Linux avec prise en charge de gadgetfs (par exemple le Pi Zero ou le Beaglebone Black)
  • Tout ce qui prend en charge USB-over-IP.

Quelles fonctionnalités prévoyez-vous d'ajouter ?

La feuille de route est en cours d'élaboration, mais en plus de la prise en charge multi-cartes, ce dépôt accueillera à terme quelques nouvelles fonctionnalités intéressantes, notamment :

  • L'émulation de périphériques haut débit (« USB 2.0 ») sur les appareils dotés de PHY USB 2.0.
  • La génération à la volée de contrôleurs de périphériques USB dans le gateware.

À qui la faute ?

Il y a beaucoup de personnes à blâmer pour l'excellence de ce dépôt, notamment :

  • Kate Temkin (@ktemkin)
  • Travis Goodspeed (@travisgoodspeed)
  • Sergey Bratus (@sergeybratus)
  • Dominic Spill (@dominicgs)
  • Michael Ossmann (@michaelossmann)
  • Mikaela Szekely (@Qyriad)
  • toute personne dont le nom apparaît dans l'historique git :)

Contributions ?

... sont toujours les bienvenues. Envoyez-nous une PR !

Télécharger l’outil