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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
AutoGadgetFS — Pruebas USB simplificadas | Kitploit
Herramientas/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHacking de HardwarePruebas de Penetración
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Pruebas USB simplificadas

Ver RepositorioSitio web
1232319hace 5 añosRevisado 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

Donaciones en Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Tabla de Contenidos

  1. ¿Qué es AutoGadgetFS?

  2. Requisitos

  3. La Configuración

    a. Solo pruebas de dispositivo

    b. Configuración mínima de agfs en el medio

    c. Configuración completa de agfs en el medio con soporte de depuración

  4. Soporte de clases de dispositivos USB

  5. Capacidades

  6. Hoja de Ruta

  7. Instalación

    a. Linux

    b. Raspberry Pi Zero con WiFi

  8. Tutorial de AutoGadgetFS

  9. Capturas de Pantalla

  10. Lista de Reproducción de YouTube

  11. Slack

  12. Apoyado por

  13. Invítame un café ☕️

  14. Contáctame

  15. ¿Quieres contribuir?


¿Qué es AutoGadgetFS?

AutoGadgetFS es un marco de trabajo de código abierto que permite a los usuarios evaluar dispositivos USB y sus hosts/controladores/software asociados sin necesidad de un conocimiento profundo del protocolo USB. La herramienta está escrita en Python3 y utiliza RabbitMQ y acceso WiFi para permitir a los investigadores realizar evaluaciones de seguridad USB remotas desde cualquier lugar del mundo. Al aprovechar ConfigFS, AutoGadgetFS permite a los usuarios clonar y emular dispositivos rápidamente, eliminando la necesidad de profundizar en los detalles de cada implementación. El marco también permite a los usuarios crear sus propios fuzzers sobre él.


Requisitos:

  • 💻 Máquina anfitriona ejecutando Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero con soporte WiFi
  • 🎯 Opciones de máquina objetivo:
    • Máquina virtual
    • Máquina independiente
  • 🔌 2 cables USB micro
  • 🔱 Dispositivo USB objetivo
  • 🐞 Depurador de hardware (Opcional)

La Configuración:

```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"/>

### Soporte de clase de dispositivo USB:

[✔️] Dispositivos USB HID completamente soportados (Hombre en el medio)

[⚠️] Solo pruebas de dispositivo .. Todos los dispositivos USB (Sin Hombre en el medio)

[⏳] Próximas versiones... Todos los dispositivos USB (Hombre en el medio)

---

<a name="Caps"/>

### Capacidades:

1. Encontrar, seleccionar y adjuntar a un dispositivo USB con facilidad.
1. Emular cualquier dispositivo USB HID.
1. Realizar AGFS en modo de intercepción (sniffing) para dispositivos HID (guardar comunicación en disco).
1. Sniffing de dispositivos (cualquier dispositivo).
1. Múltiples fuzzers que permiten fuzzear un dispositivo o un host.
1. Fuzzers aleatorios (con paquetes de longitud fija o aleatoria).
1. Fuzzers inteligentes que aprenden de comunicaciones USB anteriores.
1. Fuzzer de descripción: indicar al fuzzer qué bytes fuzzear, dejando el resto del paquete igual.
1. Gadget Fuzzer.
1. Fuzzer secuencial.
1. Enumerador de transferencias de control.
1. Reproducción de paquetes desde un archivo.
1. Reproducción de paquetes desde una captura USBLyzer guardada.
1. Forma visual de presentar paquetes para facilitar la ingeniería inversa de la comunicación.
1. Alertas para dispositivo en modo DFU, o si el dispositivo filtra información.
1. El dispositivo USB y el host pueden estar en cualquier lugar de internet.
1. Monitorizar cambios repentinos de interfaz.

---

<a name="Road"/>

### Hoja de ruta:

1. Sniffear solicitudes de transferencia de control a un dispositivo y responderlas.
1. MITM y emular todo tipo de dispositivos.
1. Interfaz basada en consola/QT.
1. Soporte de más interfaces/endpoints en la RPI zero W.
1. Soporte de más placas como la greatfet.
1. Migrar a una placa personalizada.
1. Trabajar para que la Raspberry Pi tenga soporte completo para emulación de dispositivos USB con todas las interfaces.
1. Correlacionar paquetes enviados y recibidos mediante números de secuencia.

---

<a name="Installation"/>

### Instalación:

<a name="Linux"/>

### Máquina Linux:

* Nota: WSL/WSL2 no es compatible debido a problemas con el paso de USB.

* Instalar Python3, ipython3, git, pip y el servidor rabbitMQ

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

* Clonar el repositorio

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

* Instalar los requisitos

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

* Degradar prompt toolkit para una mejor experiencia con ipython:

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

* Habilitar la interfaz web para rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ para acceder a la interfaz web
    ```

* Iniciar sesión en la interfaz web con las credenciales *guest:guest*
  * NOTA: si no está instalando rabbitMQ en `localhost`, agregue el siguiente usuario e inicie sesión con él:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Subir el archivo de configuración de rabbitMQ
    * En la pestaña de resumen, desplácese hasta el final para importar definiciones
    * Suba el archivo ubicado en: *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Probar la instalación

    ```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")
        ```
Descargar herramienta