Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AutoGadgetFS — Testes USB simplificados | Kitploit
Ferramentas/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHacking de HardwareTestes de Penetração
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Testes USB simplificados

Ver RepositórioSite
1232321há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Doações Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Tabela de Conteúdos

  1. O que é AutoGadgetFS?

  2. Requisitos

  3. A Configuração

    a. Apenas teste de dispositivo

    b. Configuração mínima de agfs no meio

    c. Configuração completa de agfs no meio com suporte a depuração

  4. Suporte a classes de dispositivos USB

  5. Capacidades

  6. Roteiro

  7. Instalação

    a. Linux

    b. Raspberry Pi Zero com WIFI

  8. Tutorial do AutogadgetFS

  9. Capturas de tela

  10. Playlist do Youtube

  11. Slack

  12. Suportado por

  13. Compre-me um café ☕️

  14. Contate-me

  15. Quer contribuir?


O que é AutoGadgetFS?

AutoGadgetFS é um framework de código aberto que permite aos usuários avaliar dispositivos USB e seus hosts/drivers/software associados sem um conhecimento aprofundado do protocolo USB. A ferramenta é escrita em Python3 e utiliza RabbitMQ e acesso WiFi para permitir que pesquisadores realizem avaliações remotas de segurança USB de qualquer lugar do mundo. Ao aproveitar o ConfigFS, o AutoGadgetFS permite que os usuários clonem e emulem dispositivos rapidamente, eliminando a necessidade de se aprofundar nos detalhes de cada implementação. O framework também permite que os usuários criem seus próprios fuzzers sobre ele.


Requisitos:

  • 💻 Máquina host executando Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero com suporte WIFI
  • 🎯 Opções de máquina alvo:
    • Máquina Virtual
    • Máquina autônoma
  • 🔌 2 cabos USB micro
  • 🔱 Dispositivo USB alvo
  • 🐞 Depurador de hardware (Opcional)

A Configuração:

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

### Suporte para classes de dispositivos USB:

[✔️] Dispositivos USB HID totalmente suportados (Homem no meio)

[⚠️] Teste apenas de dispositivo .. Todos os dispositivos USB (SEM Homem no meio)

[⏳] Futuros lançamentos... Todos os dispositivos USB (Homem no meio)

---

<a name="Caps"/>

### Capacidades:

1. Encontre, Selecione e Anexe a um dispositivo USB com facilidade.
1. Emule qualquer dispositivo USB HID.
1. Realize a captura AGFS no meio para dispositivos HID (salve a comunicação em disco).
1. Captura de dispositivo (Qualquer dispositivo).
1. Vários Fuzzers permitem que você faça Fuzz em um dispositivo ou host.
1. Fuzzers aleatórios (com pacotes de comprimento fixo ou aleatório).
1. Fuzzers inteligentes que aprendem com comunicações USB anteriores.
1. Fuzzer Descritivo para dizer ao Fuzzer quais bytes fuzzificar, deixando o restante do pacote inalterado.
1. Gadget Fuzzer.
1. Fuzzer Sequencial.
1. Enumerador de transferência de controle.
1. Reprodução de pacotes a partir de um arquivo.
1. Reprodução de pacotes a partir de uma captura USBLyzer salva.
1. Forma visual de apresentar pacotes para facilitar a engenharia reversa da comunicação.
1. Alertas para dispositivo em modo DFU, ou se o dispositivo vazar informações.
1. Dispositivo USB e host podem estar em qualquer lugar na internet.
1. Monitorar mudanças repentinas de interface.

---

<a name="Road"/>

### Roteiro:

1. Capturar requisições de transferência de controle para um dispositivo e responder a elas.
1. MITM e emular todos os tipos de dispositivos.
1. Interface baseada em Console/QT.
1. Mais suporte a Interfaces/endpoints no RPI zero W.
1. Suporte a mais placas como a greatfet.
1. Migrar para uma placa personalizada.
1. Trabalhar para que o raspberry pi tenha suporte completo para emulação de dispositivos USB com todas as interfaces.
1. correlacionar pacotes enviados e recebidos via números de sequência.

---

<a name="Installation"/>

### Instalação:

<a name="Linux"/>

### Máquina Linux:

* Nota: WSL/WSL2 não é suportado devido a problemas com passagem de USB.

* Instale Python3, ipython3, git, pip e servidor rabbitMQ

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

* Clone o repositório

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

* Instale os requisitos

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

* Faça o downgrade do prompt toolkit para melhor experiência no ipython:

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

* Habilite a interface web para rabbitMQ

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

* Faça login na interface web com as credenciais *guest:guest*
  * NOTA: se você não estiver instalando rabbitMQ no `localhost` adicione o seguinte usuário e faça login com ele:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Faça upload do arquivo de configuração do rabbitMQ
    * Na aba de visão geral, role até o final para importar definições
    * Faça upload do arquivo encontrado em: *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Teste a instalação

    ```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:
Baixar ferramenta