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

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

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

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

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

Категории

Все категории
Loading categories
umap2 — Umap2 is the second revision of NCC Group's python based USB host security assessment tool. | Kitploit
Инструменты/GitHubGitHub/nccgroup/umap2
Embedded Systems SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingPenetration TestingHardware SecurityHardware & IoT Security
GitHubnccgroup/umap2

umap2

Umap2 is the second revision of NCC Group's python based USB host security assessment tool.

Репозиторий
282824 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Umap2

Umap2 — вторая ревизия инструмента NCC Group на Python для оценки безопасности USB-хостов.

Эта ревизия будет содержать все функции, которые поддерживались в первой ревизии:

  • umap2emulate - эмуляция USB-устройств
  • umap2scan - сканирование USB-хоста на предмет поддержки устройств
  • umap2detect - определение ОС USB-хоста (ещё не реализовано)
  • umap2fuzz - фаззинг USB-хоста

В этой ревизии появятся некоторые дополнительные возможности:

  • для фаззинга USB-хоста в качестве движка используется kitty
  • Umap2 содержит не только исполняемые скрипты, но и устанавливается как пакет и может использоваться в качестве библиотеки

Umap2 разрабатывается командами NCC Group и Cisco SAS.

Предупреждение: umap2 всё ещё является экспериментальным, инструментом стадии альфа. API, имена исполняемых файлов и т. д., вероятно, будут изменены в ближайшем будущем. Используйте на свой страх и риск.

Поддержка

  • IRC: #umap2 на Freenode <https://webchat.freenode.net/?channels=umap2>_

Установка

Поскольку это очень ранняя версия, Umap2 пока недоступен на pypi, вместо этого установите его через pip напрямую из github:

::

root@kitploit:~
$ pip install git+https://github.com/nccgroup/umap2.git#egg=umap2

Версии Python

Umap2 по большей части совместим с python2/3. Однако скрипт фаззинга (umap2kitty) работает только на python2.

"Мягкие" зависимости

Зависимости Umap2 перечислены в setup.py и будут установлены вместе с umap2, однако есть пара вещей, которые вы, возможно, захотите сделать, чтобы добавить поддержку некоторых устройств:

Mass Storage

root@kitploit:~

1. Требуется образ диска с именем **stick.img** в текущем рабочем каталоге

MTP
~~~

1. Требуется папка/файл с именем **mtp_fs** в текущем каталоге.
2. Требуется python-пакет pymtpdevice. Этого пакета сейчас нет на pypi,
   но его можно скачать и установить отсюда:
   https://github.com/BinyaminSharet/Mtp

Оборудование
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  — рекомендуемое оборудование для Umap2.
  Umap2 разрабатывался на его основе, и с ним вы получите наибольшую поддержку.
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` поддерживается на RPi
- **GadgetFS** поддерживается частично.
  Эта поддержка очень экспериментальная (даже больше, чем остальная часть Umap2)
  и ограниченная.
  
  - BeagleboneBlack, начиная с ядра Linux 4.4.9, с пропатченным драйвером
    gadgetfs
  - RaspberryPi Zero W, начиная с ядра Linux 4.12.0-rc3+, которое не требует
    патчей
  - Поскольку 4.12.0-rc3+ не требует патчей, возможно, есть и другие устройства,
    которые можно поддерживать; если вы знаете о таком устройстве или внесли изменения,
    чтобы заставить его работать на других устройствах, сообщите нам.

Если вам интересно, прочитайте **gadget/README.rst** для получения дополнительной информации.

Использование
-----

Эмуляция устройств

Основная функциональность Umap2 — эмуляция USB-устройства. Вы можете эмулировать одно из существующих устройств (используйте umap2list, чтобы увидеть доступные устройства):

::

root@kitploit:~
$ umap2emulate -P fd:/dev/ttyUSB0 -C mass_storage

или эмулировать собственное устройство:

::

root@kitploit:~
$ umap2emulate -P fd:/dev/ttyUSB0 -C ~/my_mass_storage.py

Подробное руководство по добавлению вашего устройства будет добавлено в ближайшее время, а пока вы можете посмотреть на устройства umap2 в каталоге umap2/dev/

Сканирование поддержки устройств

root@kitploit:~

Umap2 может попытаться определить, какие типы USB-устройств
поддерживаются хостом.
Это делается путём кратковременной эмуляции каждого устройства,
реализованного в Umap2,
и проверки, было ли отправлено специфичное для устройства сообщение.

::

    $ umap2scan -P fd:/dev/ttyUSB0

Сканирование поддержки вендор-специфичных устройств

В дополнение к сканированию поддержки различных классов устройств, Umap2 может сканировать хост на предмет поддержки вендор-специфичных устройств.

Вендор-специфичное сканирование помогает выявить вендор-специфичные драйверы, доступные на хосте.

Это можно сделать с помощью текущей базы VID-PID Umap2 (всё ещё в процессе разработки), или другого файла в том же формате:

::

root@kitploit:~
$ umap2vsscan -P fd:/dev/ttyUSB0 -d $UMAP2_DIR/data/vid_pid_db.py

Или сканируя определённый диапазон vid-pid - в этом примере - сканирование всех комбинаций VID от 0x1001 до 0x1004 и PID от 0x0000 до 0xffff:

::

root@kitploit:~
$ umap2vsscan -P fd:/dev/ttyUSB0 -s 1001-1004:0000-ffff

Любые патчи/дополнения к файлу vid_pid_db.py приветствуются!

Фаззинг

root@kitploit:~

Подробное руководство по фаззингу с использованием Umap2 можно найти в 
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_

Фаззинг с Umap2 состоит из трёх шагов,
которые в будущем могут быть объединены в один скрипт.

1. Выясните порядок сообщений
   для хоста, который вы хотите фаззить, и
   USB-устройства, которое вы эмулируете:

   ::

        $ umap2stages -P fd:/dev/ttyUSB0 -C keyboard -s keyboard.stages

2. Запустите фаззер kitty в отдельной оболочке,
   и передайте ему этапы, сгенерированные на шаге 1.

   ::

        $ umap2kitty -s keyboard.stages

3. Запустите эмуляцию клавиатуры umap2 в режиме фаззинга

   ::

        $ umap2fuzz -P fd:/dev/ttyUSB0 -C keyboard

После выполнения шага 3 начнётся сеанс фаззинга.

Примечание о фаззинге MTP
++++++++++++++++++++++

Хотя umap2 может использоваться для эмуляции и обнаружения MTP-устройств
(см. раздел "Мягкие зависимости" в этом README),
в настоящее время он не фаззит уровень MTP.
Для фаззинга уровня MTP
вы можете использовать фаззер, встроенный в библиотеку MTP.
Мы планируем поддержать фаззинг MTP напрямую из umap2 в будущих релизах.

Определение ОС хоста

TBD

Устранение неполадок

Если у вас возникли проблемы с Umap2, обратитесь к разделу устранения неполадок <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

Вам понадобятся SPI-Py https://github.com/lthiery/SPI-Py и библиотеки GPIO для Python. Используйте phy rd

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