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

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

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

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

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

Категории

Все категории
Loading categories
AutoGadgetFS — Тестирование USB стало простым | Kitploit
Инструменты/GitHubGitHub/ehabhussein/autogadgetfs
ФаззингАппаратный ХакингТестирование на Проникновение
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Тестирование USB стало простым

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

Популярное

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

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

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

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

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

Пожертвования Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Содержание

  1. Что такое AutoGadgetFS ?

  2. Требования

  3. Настройка

    a. Только тестирование устройства

    b. Минимальная настройка agfs посередине

    c. Полная настройка agfs посередине с поддержкой отладки

  4. Поддержка классов USB-устройств

  5. Возможности

  6. План развития

  7. Установка

    a. Linux

    b. Raspberry Pi Zero с WIFI

  8. Руководство по AutoGadgetFS

  9. Скриншоты

  10. Плейлист на YouTube

  11. Slack

  12. Поддержка

  13. Купи мне кофе ☕️

  14. Связь со мной

  15. Хотите внести вклад ?


Что такое AutoGadgetFS ?

AutoGadgetFS — это фреймворк с открытым исходным кодом, который позволяет пользователям оценивать USB-устройства и связанные с ними хосты/драйверы/программное обеспечение без глубоких знаний протокола USB. Инструмент написан на Python3 и использует RabbitMQ и Wi-Fi доступ, чтобы исследователи могли проводить удаленные оценки безопасности USB из любой точки мира. Используя ConfigFS, AutoGadgetFS позволяет пользователям быстро клонировать и эмулировать устройства, устраняя необходимость углубляться в детали каждой реализации. Фреймворк также позволяет пользователям создавать собственные фуззеры на его основе.


Требования:

  • 💻 Хост-машина с Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero с поддержкой WIFI
  • 🎯 Варианты целевой машины:
    • Виртуальная машина
    • Автономная машина
  • 🔌 2 кабеля USB micro
  • 🔱 Целевое USB-устройство
  • 🐞 Аппаратный отладчик (опционально)

Настройка:

```bash Device testing only:

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/devtest.jpeg" width="450" height="187" /></div>

<a name="MMITM"/>```bash
Minimal agfs in the middle setup:

```bash Complete agfs in the middle setup with debugging support:

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/scenario2.jpeg"/></div>

---

<a name="Usbdev"/>

### Поддержка классов USB-устройств:

[✔️] USB HID-устройства полностью поддерживаются (человек посередине)

[⚠️] Тестирование только устройства.. Все USB-устройства (без человека посередине)

[⏳] Будущие релизы... Все USB-устройства (человек посередине)

---

<a name="Caps"/>

### Возможности:

1. Легко находить, выбирать и подключаться к USB-устройству.
1. Эмулировать любое USB HID-устройство.
1. Выполнять AGFS с перехватом трафика для HID-устройств (сохранять обмен данными на диск).
1. Отслеживание устройств (любых устройств).
1. Несколько фаззеров позволяют фаззить устройство или хост.
1. Случайные фаззеры (с пакетами фиксированной или случайной длины).
1. Умные фаззеры, обучающиеся на предыдущих USB-коммуникациях.
1. Описательный фаззер, указывающий, какие байты фаззить, оставляя остальную часть пакета без изменений.
1. Фаззер гаджетов.
1. Последовательный фаззер.
1. Перечислитель управляющих передач.
1. Воспроизведение пакетов из файла.
1. Воспроизведение пакетов из сохранённого захвата USBLyzer.
1. Визуальное представление пакетов для упрощения обратного проектирования обмена данными.
1. Оповещения о режиме DFU устройства или утечке информации с устройства.
1. USB-устройство и хост могут находиться где угодно в интернете.
1. Мониторинг внезапных изменений интерфейсов.

---

<a name="Road"/>

### Дорожная карта:

1. Перехватывать запросы управляющих передач к устройству и отвечать на них.
1. MITM и эмуляция всех типов устройств.
1. Интерфейс на основе консоли/QT.
1. Поддержка большего количества интерфейсов/конечных точек на RPI zero W.
1. Поддержка большего количества плат, таких как greatfet.
1. Переход на собственную плату.
1. Доведение Raspberry Pi до полной поддержки эмуляции USB-устройств со всеми интерфейсами.
1. Связывание отправленных и полученных пакетов по порядковым номерам.

---

<a name="Installation"/>

### Установка:

<a name="Linux"/>

### На Linux-машине:

* Примечание: WSL/WSL2 не поддерживается из-за проблем с пробросом USB.

* Установите Python3, ipython3, git, pip и сервер rabbitMQ

    ```bash
    sudo apt install python3 ipython3 git python3-pip rabbitmq-server dfu-util
    sudo service rabbitmq-server start
    ```

* Клонируйте репозиторий

    ```bash
    git clone https://github.com/ehabhussein/AutoGadgetFS
    cd AutoGadgetFS
    ```

* Установите зависимости

    ```bash
    sudo -H pip3 install -r requirements.txt
    ```

* Понизьте версию prompt toolkit для лучшего опыта работы с ipython:

    ```bash
    sudo python3 -m pip install prompt-toolkit~=2.0
    ```

* Включите веб-интерфейс для rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ для доступа к веб-интерфейсу
    ```

* Войдите в веб-интерфейс с учётными данными *guest:guest*
  * ПРИМЕЧАНИЕ: если вы устанавливаете rabbitMQ не на `localhost`, добавьте следующего пользователя и входите с ним:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Загрузите файл конфигурации rabbitMQ
    * На вкладке overview прокрутите вниз до "import definitions"
    * Загрузите файл, расположенный в: *rabbitMQbrokerconfig/rabbitmq-Config.json*

    ```bash
    sudo service rabbitmq-server restart
    ```

* Проверьте установку

    ```python
    sudo ipython3
    
    Python 3.7.7 (default, Apr  1 2020, 13:48:52)
    Type 'copyright', 'credits' or 'license' for more information
    IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

    In [1]: import libagfs

    In [2]: x = libagfs.agfs()

    ***************************************
    AutoGadgetFS: USB testing made easy
    ***************************************
    Enter IP address of the rabbitmq server: 127.0.0.1
  
    In [3]: exit

    sudo `python3` agfsconsole.py
    
    ***************************************
    AutoGadgetFS: USB testing made easy
    ***************************************
    Enter IP address of the rabbitmq server: 127.0.0.1
    Give your project a name?!:
    ```   ```

* Patch Pyusb langID ( Not needed unless you get pyusb errors for langID ):
  * Edit the file `/usr/local/lib/python3/dist-packages/usb/util.py`
    * make changes to the `def get_string` method to look like below:

        ```python
        if 0 == len(langids):
            return "Error Reading langID"
            #raise ValueError("The device has no langid")
        if langid is None:
            langid = langids[0]
        elif langid not in langids:
            return "Error Reading langID"
            #raise ValueError("The device does not support the specified langid")
        ```

    * If you prefer to use `patch` apply the following patch to the file: `AutoGadgetFS/pyusb_patches/pyusb_langid.patch`

---

<a name="Rasp"/>

### Raspberry Pi Zero W:
Скачать инструмент