Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
facedancer — Implementa tu propio dispositivo USB en Python, compatible con un periférico de hardware como Cynthion o GreatFET | Kitploit
Herramientas/GitHubGitHub/greatscottgadgets/facedancer
Seguridad de Sistemas EmbebidosSniffing y Análisis de PaquetesIngeniería InversaFuzzingHacking de HardwareUtilidades y FrameworksSeguridad de Hardware e IoTRed Teaming
GitHubgreatscottgadgets/facedancer

facedancer

Implementa tu propio dispositivo USB en Python, compatible con un periférico de hardware como Cynthion o GreatFET

1.0k15411hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Facedancer 3.0

Este repositorio alberga la próxima generación del software Facedancer. Descendiente del Facedancer original basado en GoodFET, este repositorio proporciona un módulo de Python que ofrece soporte ampliado para Facedancer -- incluyendo soporte para múltiples placas y algunas características nuevas bastante significativas.

Documentación del proyecto

La documentación de Facedancer está disponible en Read the Docs. Las fuentes de documentación sin procesar están en la carpeta docs/.

Instalación

Instala este paquete con el siguiente comando:

pip install facedancer

Después de eso puedes importar el paquete facedancer como de costumbre:

$ python
>>> import facedancer

¿Dónde están mis scripts?

Facedancer 3.0 es una reescritura desde cero del núcleo de emulación original y no soporta scripts heredados.

Si estás usando scripts o materiales de formación que dependen de características o APIs obsoletas en v3.0.x, puedes instalar la última versión v2.9.x de Facedancer con:

pip install "facedancer<=3"

Los applets y ejemplos heredados se pueden encontrar en la rama v2.9.x.

¿Qué es un Facedancer?

Las placas Facedancer son dispositivos de hardware simples que actúan como controladores USB "controlados remotamente". Con el software adecuado, puedes usar estas placas para emular dispositivos USB de forma rápida y sencilla -- ¡y para hacer fuzzing de controladores USB host!

Este repositorio de software en particular actualmente te permite crear fácilmente emulaciones de dispositivos USB en Python. El control es lo suficientemente detallado como para que puedas provocar todo tipo de comportamientos USB incorrectos. :)

Para más información, consulta:

  • La publicación del blog de Travis Goodspeed sobre Facedancer
  • El Facedancer 21, la placa originalmente soportada

USBProxy 'Nouveau' y análisis de protocolos

Una característica nueva importante de la base de código más reciente de Facedancer es la capacidad de hacer MITM (Meddler-In-The-Middle) en conexiones USB -- reemplazando uno de los proyectos originales de los autores, USBProxy. Esto abre todo un nuevo abanico de aplicaciones -- incluyendo el análisis de protocolos y la manipulación en vivo de paquetes USB -- y es especialmente útil cuando no controlas el software que se ejecuta en el dispositivo objetivo (por ejemplo, en sistemas embebidos o consolas de videojuegos).

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

Esta característica está completa, pero podría usar más documentación. Las pull requests son bienvenidas. :)

¿Cómo uso este repositorio?

Primero, probablemente querrás establecer la variable de entorno BACKEND, que permite al software saber qué tipo de placa Facedancer te gustaría usar. Si esta variable no está establecida, el software intentará adivinarlo por ti según lo que esté conectado. No siempre hace las mejores conjeturas, así que probablemente sea mejor que la establezcas tú mismo.

A continuación, probablemente querrás echar un vistazo a uno de los ejemplos, o a uno de los scripts predefinidos. Los ejemplos con la nueva sintaxis se encuentran en examples. Los scripts principales de Facedancer con la sintaxis "antigua" se encuentran en legacy-applets.

Por ejemplo:

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

¿Qué placas están soportadas actualmente?

  • El Cynthion USB Test Instrument (BACKEND=cynthion)
  • El GreatFET One (BACKEND=greatfet)
  • La placa NXP LPC4330 Xplorer. (BACKEND=greatfet)
  • La insignia rad1o del CCCamp 2015 con GreatFET l0adable (BACKEND=greatfet)
  • Todos los Facedancers basados en GoodFET, incluyendo el común Facedancer21 (BACKEND=goodfet)
  • Placas RPi + Max3241 Raspdancer (BACKEND=raspdancer)
  • Placas HydraDancer y HydraUSB3 (BACKEND=hydradancer)

Ten en cuenta que las restricciones de hardware impiden que las placas MAX3420/MAX3421 emulen dispositivos más complejos -- hay limitaciones en el número/tipo de endpoints que se pueden configurar. Las placas LPC4330 -- como la GreatFET -- tienen menos limitaciones.

Por una razón similar, las placas MAX3420/MAX3421 (BACKEND=goodfet o BACKEND=raspdancer) actualmente no pueden usarse como dispositivos MITM USBProxy-nv. Todas las placas modernas (BACKEND=greatfet, BACKEND=hydradancer) deberían ser totalmente funcionales.

Ten en cuenta que las placas HydraDancer y HydraUSB3 (BACKEND=hydradancer) actualmente no soportan el modo host. Ten en cuenta que el FaceDancer 3.0 actual no funciona en Windows (algunos problemas en pyusb...) y solo en GNU/Linux

¿Qué placas podrían soportarse pronto?

  • Cualquier computadora Linux con soporte para gadgetfs (por ejemplo, la Pi Zero o Beaglebone Black)
  • Cualquier cosa que soporte USB-over-IP.

¿Qué características planeas añadir?

La hoja de ruta está en desarrollo, pero además del soporte para múltiples placas, este repositorio eventualmente albergará algunas características nuevas interesantes, incluyendo:

  • Emulación de dispositivos de alta velocidad ("USB 2.0") en dispositivos con PHYs USB 2.0.
  • Generación al vuelo de controladores de dispositivos USB en gateware.

¿De quién es la culpa?

Hay mucha gente a la que culpar por la maravilla que es este repositorio, incluyendo:

  • Kate Temkin (@ktemkin)
  • Travis Goodspeed (@travisgoodspeed)
  • Sergey Bratus (@sergeybratus)
  • Dominic Spill (@dominicgs)
  • Michael Ossmann (@michaelossmann)
  • Mikaela Szekely (@Qyriad)
  • cualquiera cuyo nombre aparezca en el historial de git :)

¿Contribuciones?

... siempre son bienvenidas. ¡Envíanos una PR!

Descargar herramienta