Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
AutoGadgetFS — USB-Testen leicht gemacht | Kitploit
Tools/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHardware-HackingPenetrationstests
GitHubehabhussein/autogadgetfs

AutoGadgetFS

USB-Testen leicht gemacht

Repository anzeigenWebseite
1232321vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ethereum-Spenden : 0xA919e40ddB0563918dDc174320D91992e0048477

Inhaltsverzeichnis

  1. Was ist AutoGadgetFS ?

  2. Anforderungen

  3. Das Setup

    a. Nur Gerätetest

    b. Minimales agfs-in-der-Mitte-Setup

    c. Vollständiges agfs-in-der-Mitte-Setup mit Debugging-Unterstützung

  4. Unterstützung für USB-Geräteklassen

  5. Fähigkeiten

  6. Fahrplan

  7. Installation

    a. Linux

    b. Raspberry Pi Zero mit WLAN

  8. AutoGadgetFS-Tutorial

  9. Bildschirmfotos

  10. Youtube-Playlist

  11. Slack

  12. Unterstützt von

  13. Kauf mir einen Kaffee ☕️

  14. Kontaktiere mich

  15. Möchtest du beitragen ?


Was ist AutoGadgetFS ?

AutoGadgetFS ist ein Open-Source-Framework, das es Benutzern ermöglicht, USB-Geräte und deren zugehörige Hosts/Treiber/Software ohne tiefgehende Kenntnisse des USB-Protokolls zu bewerten. Das Tool ist in Python3 geschrieben und nutzt RabbitMQ und WLAN-Zugriff, um Forschern die Durchführung von fernen USB-Sicherheitsbewertungen von überall auf der Welt zu ermöglichen. Durch die Nutzung von ConfigFS erlaubt AutoGadgetFS Benutzern, Geräte schnell zu klonen und zu emulieren, wodurch die Notwendigkeit entfällt, sich tief in die Details jeder Implementierung einzuarbeiten. Das Framework ermöglicht es Benutzern auch, eigene Fuzzer darauf aufbauend zu erstellen.


Anforderungen:

  • 💻 Host-Rechner mit Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero mit WLAN-Unterstützung
  • 🎯 Optionen für Zielmaschine:
    • Virtuelle Maschine
    • Eigenständiger Rechner
  • 🔌 2 x USB-Micro-Kabel
  • 🔱 Ziel-USB-Gerät
  • 🐞 Hardware-Debugger (Optional)

Das Setup:

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

### Unterstützung der USB-Geräteklasse:

[✔️] USB-HID-Geräte vollständig unterstützt (Man-in-the-Middle)

[⚠️] Nur Gerätetests .. Alle USB-Geräte (kein Man-in-the-Middle)

[⏳] Zukünftige Versionen... Alle USB-Geräte (Man-in-the-Middle)

---

<a name="Caps"/>

### Fähigkeiten:

1. Ein USB-Gerät einfach finden, auswählen und daran anschließen.
1. Jedes USB-HID-Gerät emulieren.
1. AGFS-Man-in-the-Middle-Sniffing für HID-Geräte durchführen (Kommunikation auf Festplatte speichern).
1. Geräte-Sniffing (jedes Gerät).
1. Mehrere Fuzzer ermöglichen das Fuzzing eines Geräts oder eines Hosts.
1. Zufällige Fuzzer (mit Paketen fester oder zufälliger Länge).
1. Intelligente Fuzzer, die aus früheren USB-Kommunikationen lernen.
1. Describe-Fuzzer, um dem Fuzzer mitzuteilen, welche Bytes gefuzzt werden sollen, während der Rest des Pakets gleich bleibt.
1. Gadget-Fuzzer.
1. Sequenzieller Fuzzer.
1. Control-Transfer-Enumerator.
1. Wiedergabe von Paketen aus einer Datei.
1. Wiedergabe von Paketen aus einem gespeicherten USBLyzer-Mitschnitt.
1. Visuelle Darstellung von Paketen zur einfachen Reverse-Engineering der Kommunikation.
1. Warnungen für Geräte im DFU-Modus oder wenn das Gerät Informationen preisgibt.
1. USB-Gerät und Host können sich überall im Internet befinden.
1. Überwachung plötzlicher Schnittstellenänderungen.

---

<a name="Road"/>

### Fahrplan:

1. Sniffen von Control-Transfer-Anfragen an ein Gerät und Antworten darauf.
1. MITM und Emulation aller Gerätetypen.
1. Konsolen-/QT-basierte Oberfläche.
1. Mehr Schnittstellen-/Endpunktunterstützung auf dem RPI Zero W.
1. Unterstützung weiterer Boards wie dem GreatFET.
1. Umstellung auf ein benutzerdefiniertes Board.
1. Arbeiten daran, dass der Raspberry Pi volle Unterstützung für USB-Geräteemulation mit allen Schnittstellen bietet.
1. Korrelation von gesendeten und empfangenen Paketen über Sequenznummern.

---

<a name="Installation"/>

### Installation:

<a name="Linux"/>

### Linux-Rechner:

* Hinweis: WSL/WSL2 wird aufgrund von Problemen mit USB-Durchleitung nicht unterstützt.

* Installieren Sie Python3, ipython3, git, pip und rabbitMQ-Server

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

* Klonen Sie das Repository

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

* Installieren Sie die Abhängigkeiten

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

* Downgrade von prompt-toolkit für eine bessere ipython-Erfahrung:

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

* Aktivieren Sie die Weboberfläche für rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ um zur Weboberfläche zu gelangen
    ```

* Melden Sie sich mit den Anmeldedaten *guest:guest* an der Weboberfläche an.
  * HINWEIS: Wenn Sie rabbitMQ nicht auf `localhost` installieren, fügen Sie den folgenden Benutzer hinzu und melden Sie sich damit an:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Laden Sie die rabbitMQ-Konfigurationsdatei hoch
    * Scrollen Sie im Reiter "Overview" nach unten, um Definitionen zu importieren
    * Laden Sie die Datei hoch, die sich in: *rabbitMQbrokerconfig/rabbitmq-Config.json* befindet

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

* Testen Sie die 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:

        ```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")
        ```
Tool herunterladen