Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AutoGadgetFS — Test USB reso facile | Kitploit
Strumenti/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHacking HardwarePenetration Testing
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Test USB reso facile

Vedi RepositorySito web
12323215 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Donazioni Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Indice

  1. Cos'è AutoGadgetFS ?

  2. Requisiti

  3. La Configurazione

    a. Solo test del dispositivo

    b. Configurazione minima agfs in the middle

    c. Configurazione completa agfs in the middle con supporto debug

  4. Supporto classi di dispositivi USB

  5. Funzionalità

  6. RoadMap

  7. Installazione

    a. Linux

    b. Raspberry Pi Zero con WIFI

  8. Tutorial di AutoGadgetFS

  9. Screenshot

  10. Playlist Youtube

  11. Slack

  12. Supportato da

  13. Offrimi un caffè ☕️

  14. Contattami

  15. Vuoi contribuire ?


Cos'è AutoGadgetFS ?

AutoGadgetFS è un framework open source che consente agli utenti di valutare dispositivi USB e i relativi host/driver/software senza una conoscenza approfondita del protocollo USB. Lo strumento è scritto in Python3 e utilizza RabbitMQ e accesso WiFi per permettere ai ricercatori di condurre valutazioni remote della sicurezza USB da qualsiasi parte del mondo. Sfruttando ConfigFS, AutoGadgetFS consente agli utenti di clonare ed emulare dispositivi rapidamente, eliminando la necessità di approfondire i dettagli di ogni implementazione. Il framework permette inoltre agli utenti di creare i propri fuzzer basati su di esso.


Requisiti:

  • 💻 Macchina host con Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero con supporto WIFI
  • 🎯 Opzioni macchina target:
    • Macchina virtuale
    • Macchina standalone
  • 🔌 2 cavi micro USB
  • 🔱 Dispositivo USB target
  • 🐞 Debugger hardware (Opzionale)

La Configurazione:

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

### Supporto per classi di dispositivi USB:

[✔️] Dispositivi USB HID completamente supportati (Man in the middle)

[⚠️] Test solo dispositivo .. Tutti i dispositivi USB (NO Man in the middle)

[⏳] Versioni future... Tutti i dispositivi USB (Man in the middle)

---

<a name="Caps"/>

### Funzionalità:

1. Trova, seleziona e collega a un dispositivo USB con facilità.
1. Emula qualsiasi dispositivo USB HID .
1. Esegue lo sniffing AGFS in the middle per dispositivi HID ( salva la comunicazione su disco ).
1. Sniffing del dispositivo ( Qualsiasi dispositivo ).
1. Fuzzer multipli consentono di Fuzz un dispositivo o un host.
1. Fuzzer casuali ( con pacchetti di lunghezza fissa o casuale ).
1. Fuzzer intelligenti che apprendono dalle comunicazioni USB precedenti.
1. Describe Fuzzer per dire al Fuzzer quali byte Fuzz lasciando il resto del pacchetto invariato.
1. Gadget Fuzzer.
1. Fuzzer sequenziale.
1. Enumeratore di trasferimenti di controllo.
1. Riproduzione di pacchetti da un file.
1. Riproduzione di pacchetti da una cattura USBLyzer salvata.
1. Modo visivo di presentare i pacchetti per facilitare il reverse engineering della comunicazione.
1. Avvisi per dispositivo in modalità DFU, o se il dispositivo perde informazioni.
1. Il dispositivo USB e l'host possono essere ovunque su Internet.
1. Monitora cambiamenti improvvisi dell'interfaccia.

---

<a name="Road"/>

### RoadMap:

1. Sniffa le richieste di trasferimento di controllo verso un dispositivo e rispondi ad esse.
1. MITM ed emula tutti i tipi di dispositivi.
1. Interfaccia basata su console/QT.
1. Più supporto per interfacce/endpoint su RPI zero W.
1. Supporto per più schede come la greatfet.
1. Passare a una scheda personalizzata.
1. Lavorare per far sì che raspberry pi abbia pieno supporto per l'emulazione di dispositivi usb con tutte le interfacce.
1. correlare i pacchetti inviati e ricevuti tramite numeri di sequenza.

---

<a name="Installation"/>

### Installazione:

<a name="Linux"/>

### Macchina Linux:

* Nota: WSL/WSL2 non è supportato a causa di problemi con il pass-through USB.

* Installa Python3, ipython3 ,git, pip e rabbitMQ server

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

* Clona il repository

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

* Installa i requisiti

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

* Downgrade prompt toolkit per una migliore esperienza ipython:

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

* Abilita l'interfaccia web per rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ to reach the web interface
    ```

* accedi all'interfaccia web con le credenziali *guest:guest*
  * NOTA: se non stai installando rabbitMQ su `localhost` aggiungi il seguente utente e accedi con esso:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Carica il file di configurazione di rabbitMQ
    * Nella scheda overview scorri fino in fondo per importare definizioni
    * Carica il file che si trova in: *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Testa l'installazione

    ```bash
    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:
Scarica lo strumento