Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
USBvalve — Expose USB activity on the fly | Kitploit
Ferramentas/GitHubGitHub/cecio/usbvalve
Embedded Systems SecurityDynamic Analysis (Sandboxing)ForensicsMalware AnalysisHardware Security
GitHubcecio/usbvalve

USBvalve

Expose USB activity on the fly

Ver Repositório
1.3k43há 4 mesesRevisado 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

logotipo, paisagem, texto escuro, fundo transparente

[!NOTE] USBvalve Versão 1.0.0

Foi feita uma reescrita completa do aplicativo:

  • mudou-se do ambiente Arduino IDE, agora o código é escrito para o Pi Pico SDK
  • as dependências de bibliotecas externas foram bastante reduzidas
  • o suporte a host USB para dispositivos Low Speed agora é mais robusto (ATTiny85, EvilCrow, etc.)
  • hardware e funcionalidades estão quase inalterados, veja as notas abaixo para detalhes

Exponha a atividade USB em tempo real

Os dois modelos O Relógio 1.2

Tenho certeza de que, como eu, você já foi solicitado a colocar seu pendrive em um dispositivo desconhecido... e então a dúvida:

o que aconteceu com o meu pobre pendrive, nos bastidores? Roubando meus arquivos? Criptografando-os? Ou apenas instalando um malware? Com o USBvalve você pode descobrir isso em segundos: construído com hardware comercial super barato, você pode testar rapidamente qualquer atividade do sistema de arquivos USB e entender o que está acontecendo antes que seja tarde demais!

Com o USBvalve você pode ter um feedback imediato sobre o que acontece com o drive; a tela mostrará se o falso sistema de arquivos construído no dispositivo é acessado, lido ou gravado:

Autoteste Readme

e a partir da versão 0.8.0 você também pode usá-lo como Host USB para detectar dispositivos BADUSB:

HID

Este é um exemplo do depurador BADUSB disponível na porta serial:

Se você preferir vídeos, também pode dar uma olhada na minha Apresentação no Insomni'hack

USBvalve Watch

A partir da versão 0.15.0, uma nova versão Pi Pico Watch é suportada. Para compilar a nova versão, você precisa descomentar a linha #define PIWATCH no início do código. O hardware é uma placa de relógio e display TFT de 1,28 polegadas baseada em RP2040. Você pode encontrar mais informações aqui. Isso também é totalmente compatível com o Waveshare RP2040-LCD-1.28.

Estrutura do Repositório

docs: documentação sobre o projeto, com uma apresentação onde você pode ver todos os recursos

firmware: firmwares pré-compilados para o Raspberry Pi Pico. Você pode simplesmente usá-los e gravá-los na placa. Temos várias versões diferentes, para OLEDs de 32 ou 64 linhas, para Pico 1 ou Pico2, Pi Pico Watch, etc.

PCB: arquivo Gerber se você quiser imprimir a PCB personalizada. Não é obrigatório; você pode usar a sua própria ou montá-la em uma breadboard

src e data: fontes, se você quiser modificar e compilar o firmware você mesmo

utils: alguns utilitários que você pode usar para criar um FS personalizado

pictures: imagens e recursos usados neste documento

STL: arquivos STL para o invólucro. Nas pastas 1.1 e 1.2 há invólucros completos (obrigado a WhistleMaster). Nas pastas 1.2_64 e 1.2_64_simple há invólucros para a tela 128x64 (obrigado a rtmq0227). Se você quiser algo mais leve para proteger o LCD, pode optar pelo USBvalve_sliding_cover.stl.

Construa o USBvalve

Lista de peças

Se você quiser construir o seu, você precisa de:

  • Um Raspberry Pi Pico 1 ou 2 (ou outra placa baseada em RP2040)
  • uma tela OLED I2C 128x64 ou 128x32 (SSD1306)
  • (opcional) uma PCB USBvalve ou uma breadboard
  • (opcional) um espaçador impresso em 3D para isolar a tela da placa (https://www.thingiverse.com/thing:4748043), mas você pode usar um pedaço de fita isolante no lugar

Notas sobre BOOTSEL e versão >= 1.0.0

Nas versões 0.x.x, o BOOTSEL era usado para redefinir o dispositivo ou imprimir o número de eventos HID (pressionar > 2s). A verificação (polling) do BOOTSEL estava criando alguns problemas para a detecção de BADUSB, então isso foi removido na versão 1.0.0 e substituído pelas duas opções a seguir:

  • solde um botão entre GP0 e GND (pads 1 e 3, veja a foto abaixo para ver um exemplo) para ter as mesmas funções
  • use os comandos r (reset) e h (eventos HID) no monitor serial

Em PCB você também encontrará uma versão 1.3 da placa, com alguns furos nos pads 1 e 3 para facilitar a montagem do botão. Mas, como você pode ver, também pode usar sua versão antiga.

Se você não estiver usando as funções de BADUSB ou se preferir ter menos cobertura na detecção, mas manter o uso do BOOTSEL, também estou fornecendo um firmware criado com bootsel habilitado (veja a pasta e os releases).

Instruções de montagem

Graças a Tz1rf, também temos dois ótimos vídeos: um explicando o processo de montagem passo a passo, e outro mostrando como carregar o firmware e usar a ferramenta.

Quase todo o trabalho é feito diretamente na placa pelo software, então você só precisa organizar a conexão com o OLED para a saída.

A partir da versão 0.8.0 do firmware, o USBvalve pode detectar dispositivos HID (usados para detectar BADUSB). Isso requer uma porta USB adicional funcionando como Host. Se você não estiver interessado nisso, pode usar as instruções antigas na pasta docs e usar a versão 1.1 da PCB. Caso contrário, vá em frente com a versão 1.2 da PCB (temos versão para USB-A ou USB-B, veja a pasta).

Com a PCB USBvalve

  • solde uma porta USB fêmea na área USBH. Isso é para a versão A, mas também há uma versão para USB Micro-B se você preferir
  • coloque o Raspberry Pi Pico na serigrafia na parte frontal
  • você não precisa soldar todos os pinos. Apenas os seguintes:
    • D4 e D5 (lado esquerdo)
    • D14 e D15 (lado esquerdo)
    • GND (lado direito, terceiro pino a partir do topo)
    • GND (lado direito, terceiro pino a partir da base)
    • 3v3_OUT (lado direito)
    • VBUS (lado direito)
    • os 3 pinos DEBUG na parte inferior: SWCLK, GND e SWDIO
  • coloque o espaçador impresso em 3D ou um pedaço de fita nas partes do OLED que possam tocar o Raspberry
  • solde o OLED (com um conector header) no espaço de 4 pinos

Alguns OLEDs têm os pinos GND e VCC invertidos, então construí a PCB para ser compatível com ambas as versões:

Por exemplo, se o seu OLED tem GND no PIN1 e VCC no PIN2 assim:

Você precisa colocar um ponto de solda nesses dois pads na parte de trás da PCB:

Caso contrário, você deve fazer o oposto e colocar a solda nos outros PADs:

Sem a PCB USBvalve

Pico Pi

Se você estiver usando uma breadboard ou apenas fiação, tudo o que precisa fazer é garantir a conexão dos pinos corretos à tela OLED e à porta USB Host.

O mapeamento é o seguinte:

  • PIN6 do Pi --> OLED SDA
  • PIN7 do Pi --> OLED SCL
  • PIN19 do Pi --> D+ do USB Host
  • PIN20 do Pi --> D- do USB Host
  • PIN23 (GND) do Pi --> GND do USB Host
  • PIN38 (GND) do Pi --> OLED GND
  • PIN36 (3V3OUT) do Pi --> OLED VCC
  • PIN40 (VBUS) do Pi --> VCC do USB Host

Se você quiser usar as funções DEBUG, também pode colocar um conector header nos 3 pinos SWD na parte inferior da placa.

Com a PCB USBpipe

[!CAUTION] Esta PCB é para makers experientes em eletrônica NÃO USE SE NÃO TIVER CERTEZA DE QUE CONSEGUE LIDAR COM ELA!

[!NOTE] R7 e R8 não estão realmente conectados a nada. Eles foram adicionados para fins de depuração do circuito. Por isso, eles não aparecem na BOM.

USBpipe PCB USBpipe

USBpipe é uma PCB dedicada para este projeto.

Você pode encontrar tudo o que precisa na pasta ./PCB/USBpipe/.

Frente Traseira

Gravar Firmware

Para gravar o firmware, siga estes passos:

  • Conecte o Raspberry Pi Pico com o cabo USB, mantendo o botão BOOTSEL pressionado (o grande botão branco na placa)
  • solte o botão
  • você verá um novo drive no sistema, chamado RPI-RP2 (em ambientes Linux, pode ser necessário montá-lo manualmente)
  • copie o arquivo de firmware adequado (com extensão uf2) para a pasta, dependendo do OLED que você usou
  • aguarde alguns segundos até a pasta montada desaparecer

Pronto!

Anti-Detecção

Não sei se algum dia será o caso, mas você pode querer personalizar o firmware para evitar a detecção feita por malware ciente do USBvalve :-)

Reuni a maioria das variáveis que você pode querer modificar nesta seção do usb_config.h (veja o Dockerfile abaixo para reconstruir)

root@kitploit:~
// USB anti-detection settings
//
// Set USB IDs strings and numbers, to avoid possible detections.
// Remember that you can cusotmize FAKE_DISK_BLOCK_NUM as well
// for the same reason. Also DISK_LABEL in ramdisk.h can be changed.
//
// You can see here for inspiration: https://the-sz.com/products/usbid/
//
// Example:
//             0x0951 0x16D5    VENDORID_STR: Kingston   PRODUCTID_STR: DataTraveler
//
#define USB_VENDORID       0x0951
#define USB_PRODUCTID      0x16D5
#define USB_DESCRIPTOR     "DataTraveler"
#define USB_MANUF          "Kingston"
#define USB_SERIAL         "123456789A"
#define USB_VENDORID_STR   "Kingston"        // Up to 8 chars
#define USB_PRODUCTID_STR  "DataTraveler"    // Up to 16 chars
#define USB_VERSION_STR    "1.0"             // Up to 4 chars

Compilando seu firmware

Obviamente, você também pode compilar seu próprio firmware. Para compilar, você precisa do Raspberry Pi Pico SDK e deste repositório.

Instruções básicas de recompilação:

root@kitploit:~
export PICO_SDK_PATH=</path/to/pico-sdk>

git clone --recursive https://github.com/cecio/USBvalve.git
cd USBvalve
mkdir build && cd build
cmake -DPICO_BOARD=pico ..   # or pico2 for standard build
make -j$(nproc)
# Output: build/src/USBvalve.uf2

Se você quiser recriar um novo sistema de arquivos falso, talvez queira dar uma olhada na pasta utils, onde coloquei alguns utilitários para criar um novo.

Dockerfile

Se você quiser compilar seu próprio firmware, depois de personalizá-lo, forneço um Dockerfile que cria um ambiente de compilação completo e compila o firmware.

Execute os seguintes comandos na pasta principal USBvalve para compilar:

root@kitploit:~
# To Build:
#       docker build -t usbvalve-sdk -f Dockerfile.sdk .
#
# To Run (default: pico, SSD1306 OLED 128x32):
#       docker run --rm -v $PWD:/mnt usbvalve-sdk
#
# Options (via environment variables):
#       BOARD=pico|pico2          Board target (default: pico)
#       OLED_HEIGHT=32|64         OLED display height (default: 32)
#       PIWATCH=1                 Use GC9A01 round TFT instead of SSD1306
#       USE_BOOTSEL=1             Enable BOOTSEL button (disrupts Low Speed USB)
#
# Examples:
#       docker run --rm -e BOARD=pico2 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e PIWATCH=1 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e BOARD=pico2 -e OLED_HEIGHT=64 -v $PWD:/mnt usbvalve-sdk

O firmware será colocado com extensão uf2 na pasta USBvalve_out.

Contribua

Se você tem ideias ou melhorias em mente, encorajo você a abrir uma issue para que possamos melhorar o projeto juntos! Obrigado!

Suporte

Se você tiver alguma dúvida ou precisar de suporte, pode abrir uma Issue aqui ou entrar em contato comigo no Twitter/X @red5heep

Versões da comunidade

A comunidade criou alguns forks implementando suporte para outras placas ou outras modificações. Obrigado a todos que contribuíram para o desenvolvimento do USBvalve. Abaixo, uma lista não oficial/incompleta/sem suporte:

  • USBvalve-tbfa-Mod

AVISO DE SEGURANÇA

[!WARNING] Recebi muitas perguntas sobre USBvalve e dispositivos USB killer. USBvalve não foi feito para testar esses dispositivos; ele não tem nenhum tipo de isolamento ou proteção. Portanto, se você suspeitar que está lidando com um desses dispositivos, teste-o com outra coisa, NÃO com USBvalve, ou você pode danificar o dispositivo, a si mesmo ou objetos próximos a você.

Baixar ferramenta