Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
facedancer — Реализуйте собственное USB-устройство на Python с поддержкой аппаратного периферийного устройства, такого как Cynthion или GreatFET | Kitploit
Инструменты/GitHubGitHub/greatscottgadgets/facedancer
Безопасность встроенных системСниффинг и анализ пакетовОбратная инженерияФаззингАппаратный ХакингУтилиты и фреймворкиБезопасность оборудования и IoTRed Teaming
GitHubgreatscottgadgets/facedancer

facedancer

Реализуйте собственное USB-устройство на Python с поддержкой аппаратного периферийного устройства, такого как Cynthion или GreatFET

1.0k154114 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

Facedancer 3.0

Этот репозиторий содержит следующее поколение программного обеспечения Facedancer. Происходя от оригинального Facedancer на базе GoodFET, этот репозиторий предоставляет модуль Python, обеспечивающий расширенную поддержку Facedancer — включая поддержку нескольких плат и некоторые весьма значительные новые возможности.

Документация проекта

Документация Facedancer размещена на Read the Docs. Исходные тексты документации находятся в папке docs/.

Установка

Установите этот пакет следующей командой:

pip install facedancer

После этого вы можете импортировать пакет facedancer как обычно:

$ python
>>> import facedancer

Где мои скрипты?

Facedancer 3.0 — это полностью переписанное с нуля ядро эмуляции, и оно не поддерживает устаревшие скрипты.

Если вы используете скрипты или учебные материалы, которые зависят от возможностей или API, устаревших в v3.0.x, вы можете установить последний выпуск v2.9.x Facedancer с помощью:

pip install "facedancer<=3"

Устаревшие апплеты и примеры можно найти в ветке v2.9.x.

Что такое Facedancer?

Платы Facedancer — это простые аппаратные устройства, которые действуют как USB-контроллеры с «удалённым управлением». С соответствующим программным обеспечением вы можете использовать эти платы для быстрой и лёгкой эмуляции USB-устройств — и для фаззинга USB-хост-контроллеров!

Этот конкретный репозиторий программного обеспечения в настоящее время позволяет легко создавать эмуляции USB-устройств на Python. Управление достаточно детализировано, чтобы вы могли вызывать всевозможные некорректные поведения USB. :)

Для получения дополнительной информации см.:

  • Пост в блоге Трэвиса Гудспида о Facedancer
  • Facedancer 21, оригинальная поддерживаемая плата

USBProxy 'Nouveau' и анализ протоколов

Основная новая возможность более новой кодовой базы Facedancer — это способность выполнять MITM (Meddler-In-The-Middle) для USB-соединений — заменяя один из оригинальных проектов авторов USBProxy. Это открывает целую новую область применений — включая анализ протоколов и манипуляцию USB-пакетами в реальном времени — и особенно полезно, когда вы не контролируете программное обеспечение, работающее на целевом устройстве (например, на встраиваемых системах или игровых консолях).

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

Эта возможность завершена, но не помешало бы больше документации. Pull request'ы приветствуются. :)

Как мне использовать этот репозиторий?

Сначала вам, вероятно, захочется задать переменную окружения BACKEND, которая сообщает программному обеспечению, какой тип платы Facedancer вы хотите использовать. Если эта переменная не задана, программное обеспечение попытается угадать за вас на основе того, что подключено. Оно не всегда делает наилучшие предположения, так что вам, вероятно, лучше задать её самостоятельно.

Далее вам, вероятно, захочется посмотреть один из примеров или один из готовых скриптов. Примеры с новым синтаксисом находятся в examples. Основные скрипты Facedancer со «старым» синтаксисом находятся в legacy-applets.

Например:

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

Какие платы в настоящее время поддерживаются?

  • Cynthion USB Test Instrument (BACKEND=cynthion)
  • GreatFET One (BACKEND=greatfet)
  • Плата NXP LPC4330 Xplorer. (BACKEND=greatfet)
  • Бейдж CCCamp 2015 rad1o с загружаемым GreatFET (BACKEND=greatfet)
  • Все Facedancer на базе GoodFET, включая распространённый Facedancer21 (BACKEND=goodfet)
  • Платы RPi + Max3241 Raspdancer (BACKEND=raspdancer)
  • Платы HydraDancer и HydraUSB3 (BACKEND=hydradancer)

Обратите внимание, что аппаратные ограничения не позволяют платам MAX3420/MAX3421 эмулировать более сложные устройства — существуют ограничения на количество/тип конечных точек, которые можно настроить. Платы LPC4330 — такие как GreatFET — имеют меньше ограничений.

По аналогичной причине платы MAX3420/MAX3421 (BACKEND=goodfet или BACKEND=raspdancer) в настоящее время не могут использоваться в качестве MITM-устройств USBProxy-nv. Все современные платы (BACKEND=greatfet, BACKEND=hydradancer) должны быть полностью функциональны.

Обратите внимание, что платы HydraDancer и HydraUSB3 (BACKEND=hydradancer) в настоящее время не поддерживают режим хоста. Также учтите, что фактически FaceDancer 3.0 не работает на Windows (некоторые проблемы в pyusb...) и только на GNU/Linux

Какие платы могут быть поддержаны в ближайшее время?

  • Любой компьютер с Linux и поддержкой gadgetfs (например, Pi Zero или Beaglebone Black)
  • Всё, что поддерживает USB-over-IP.

Какие возможности вы планируете добавить?

Дорожная карта находится в разработке, но в дополнение к поддержке нескольких плат этот репозиторий в конечном итоге станет домом для некоторых классных новых возможностей, включая:

  • Эмуляцию высокоскоростных («USB 2.0») устройств на устройствах с PHY USB 2.0.
  • Генерацию контроллеров USB-устройств на лету в gateware.

Кто виноват в этом?

Есть много людей, которых можно винить за великолепие этого репозитория, включая:

  • Kate Temkin (@ktemkin)
  • Travis Goodspeed (@travisgoodspeed)
  • Sergey Bratus (@sergeybratus)
  • Dominic Spill (@dominicgs)
  • Michael Ossmann (@michaelossmann)
  • Mikaela Szekely (@Qyriad)
  • всех, чьё имя появляется в истории git :)

Вклад?

... всегда приветствуется. Присылайте нам PR!

Скачать инструмент