Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
AutoGadgetFS — Tests USB simplifiés | Kitploit
Outils/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHacking MatérielTests d'Intrusion
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Tests USB simplifiés

Voir le dépôtSite web
1232321il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Dons Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Table des matières

  1. Qu'est-ce qu'AutoGadgetFS ?

  2. Prérequis

  3. Configuration

    a. Test de périphérique uniquement

    b. Configuration minimale agfs au milieu

    c. Configuration complète agfs au milieu avec support de débogage

  4. Support des classes de périphériques USB

  5. Capacités

  6. Feuille de route

  7. Installation

    a. Linux

    b. Raspberry Pi Zero avec WIFI

  8. Tutoriel AutogadgetFS

  9. Captures d'écran

  10. Playlist Youtube

  11. Slack

  12. Soutenu par

  13. Offrez-moi un café ☕️

  14. Contactez-moi

  15. Vous voulez contribuer ?


Qu'est-ce qu'AutoGadgetFS ?

AutoGadgetFS est un framework open source qui permet aux utilisateurs d'évaluer les périphériques USB et leurs hôtes/pilotes/logiciels associés sans connaissance approfondie du protocole USB. L'outil est écrit en Python3 et utilise RabbitMQ et l'accès WiFi pour permettre aux chercheurs de réaliser des évaluations de sécurité USB à distance depuis n'importe où dans le monde. En exploitant ConfigFS, AutoGadgetFS permet aux utilisateurs de cloner et d'émuler rapidement des périphériques, éliminant ainsi le besoin de creuser dans les détails de chaque implémentation. Le framework permet également aux utilisateurs de créer leurs propres fuzzers par-dessus.


Prérequis :

  • 💻 Machine hôte exécutant Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero avec support WiFi
  • 🎯 Options de la machine cible :
    • Machine virtuelle
    • Machine autonome
  • 🔌 2 câbles USB micro
  • 🔱 Périphérique USB cible
  • 🐞 Débogueur matériel (Optionnel)

Configuration :

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

### Prise en charge des classes de périphériques USB :

[✔️] Périphériques USB HID entièrement pris en charge (Homme du milieu)

[⚠️] Test de périphérique uniquement .. Tous les périphériques USB (PAS d'Homme du milieu)

[⏳] Futures versions... Tous les périphériques USB (Homme du milieu)

---

<a name="Caps"/>

### Capacités :

1. Trouver, sélectionner et se connecter facilement à un périphérique USB.
1. Émuler n'importe quel périphérique USB HID.
1. Effectuer une écoute AGFS en mode intermédiaire pour les périphériques HID (enregistrer la communication sur le disque).
1. Écoute de périphérique (tout périphérique).
1. Plusieurs fuzzers vous permettent de fuzzer un périphérique ou un hôte.
1. Fuzzers aléatoires (avec paquets de longueur fixe ou aléatoire).
1. Fuzzers intelligents qui apprennent des communications USB précédentes.
1. Describe Fuzzer pour indiquer au Fuzzer quels octets fuzzer tout en laissant le reste du paquet identique.
1. Gadget Fuzzer.
1. Sequential Fuzzer.
1. Énumérateur de transfert de contrôle.
1. Rejeu de paquets depuis un fichier.
1. Rejeu de paquets depuis une capture USBLyzer sauvegardée.
1. Présentation visuelle des paquets pour faciliter la rétro-ingénierie de la communication.
1. Alertes pour périphérique en mode DFU, ou si le périphérique fuit des informations.
1. Le périphérique USB et l'hôte peuvent être n'importe où sur Internet.
1. Surveiller les changements soudains d'interface.

---

<a name="Road"/>

### Feuille de route :

1. Écouter les requêtes de transfert de contrôle vers un périphérique et y répondre.
1. MITM et émuler tous les types de périphériques.
1. Interface basée sur console/QT.
1. Plus de support d'interfaces/points de terminaison sur le RPI zero W.
1. Prendre en charge plus de cartes comme le greatfet.
1. Passer à une carte personnalisée.
1. Travailler pour que le raspberry pi ait un support complet pour l'émulation de périphériques USB avec toutes les interfaces.
1. Corréler les paquets envoyés et reçus via les numéros de séquence.

---

<a name="Installation"/>

### Installation :

<a name="Linux"/>

### Machine Linux :

* Remarque : WSL/WSL2 n'est pas pris en charge en raison de problèmes de passage USB.

* Installer Python3, ipython3, git, pip et le serveur rabbitMQ

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

* Cloner le dépôt

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

* Installer les dépendances

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

* Rétrograder prompt toolkit pour une meilleure expérience ipython :

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

* Activer l'interface web pour rabbitMQ

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

* Se connecter à l'interface web avec les identifiants *guest:guest*
  * REMARQUE : si vous n'installez pas rabbitMQ sur `localhost`, ajoutez l'utilisateur suivant et connectez-vous avec :
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Téléverser le fichier de configuration rabbitMQ
    * Dans l'onglet overview, faites défiler vers le bas pour importer les définitions
    * Téléversez le fichier trouvé dans : *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Tester l'installation

    ```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:
Télécharger l’outil