USB Army Knife – a ferramenta definitiva de acesso físico para testadores de penetração e red teamers.
🚀 USB Army Knife v2 está a ser preparada — e vai ser uma besta
Após dois anos de desenvolvimento ativo na v1, a v2 está planeada para transformar a USB Army Knife numa plataforma completa de red team no seu bolso. Um grande anúncio está para breve neste outono, mas ainda assim queria dar uma antevisão:
Grande parte deste trabalho já está concluído e tenho estado ocupado a trabalhar com hardware suficientemente potente para executar esta nova plataforma. O que é claro é que o dongle que deu início a este projeto não conseguirá lidar com as funcionalidades mais recentes da V2. Mas eu, por mim, adoro o seu formato. O que tenho a certeza é que a v2 fará da UAK uma pequena pen que se programa a si mesma, escolhe o seu alvo, controla o dispositivo, ouve a sala e talvez até consiga falar com as suas irmãs...
Compacta e versátil, este dispositivo impressiona com as suas extensas capacidades, incluindo ataques USB HID, emulação de armazenamento em massa, personificação de dispositivos de rede e exploits de WiFi/Bluetooth (graças à nossa versão fork do ESP32 Marauder).
Controlo total sobre como e quando os seus payloads são executados. Ligue e execute, deixe para trás e acione via WiFi, execute num temporizador ou construa uma interface digna de Hollywood. Gira e implementa os seus ataques sem esforço usando apenas um telemóvel através de uma interface web Bootstrap fácil de usar.
Quer mais? Implemente o agente e execute comandos mesmo quando a máquina está bloqueada. A trabalhar através da interface serial, o egress é extremamente difícil de detetar. Pode até ver o ecrã da vítima através da ligação WiFi dedicada do dispositivo.
Equipe-se com a USB Army Knife e eleve o seu kit de acesso local para o próximo nível.
"O seu dispositivo é maligno. Você está a fazer o mal." - Mr. Peoples via X
Existe um problema com ataques de acesso físico/USB nos dias de hoje. Por si só, cada ataque não fornece solução suficiente para cumprir a maioria dos objetivos.
O que era necessário era uma plataforma de acesso físico que permitisse a um intruso adequado aproveitar o melhor de cada ataque e contornar os respetivos problemas com outro ataque. Idealmente, esta plataforma seria tão barata e encoberta que perder uma não seria um problema.
Foi por isso que decidi criar a USB Army Knife.
Este projeto implementa uma variedade de ataques baseados num dongle USB/WiFi/BT facilmente dissimulável. Os ataques incluem o envio de BadUSB (comandos USB HID usando DuckyScript), aparecer como dispositivos de armazenamento em massa, aparecer como dispositivos de rede USB e realizar ataques WiFi e Bluetooth com o ESP32 Marauder. Os ataques são implementados usando uma linguagem semelhante a Ducky que provavelmente já conhece e adora. Esta linguagem foi aumentada com uma série de comandos personalizados e até com toda a capacidade do ESP32 Marauder (melhorada). Os ataques incluem:
| Nome | Descrição |
|---|---|
| Armazenamento Encoberto | Exemplo que mostra como se fazer passar por dois dispositivos de armazenamento em massa USB diferentes. Na primeira vez que o dispositivo é ligado, aparece com o conteúdo completo do cartão micro SD. Em todas as tentativas subsequentes, aparece uma unidade 'benigna' diferente. |
| Barra de Progresso | As imagens são apresentadas no ecrã LCD do dispositivo mostrando uma barra de progresso. Ótimo para ataques estilo Hollywood ou se quiser um indicador visual para mostrar que um ataque foi implementado. |
| Derradeiro RickRoll | Injeta teclas para apresentar o famoso vídeo rickroll, mas também usa o ESP32 Marauder para transmitir a letra via WiFi. |
| PCAP Ethernet USB | Transforma o dispositivo num adaptador de rede USB e recolhe um PCAP dos primeiros segundos de tráfego de rede. |
| Implementar o agente serial | Implementa o agente se ainda não estiver instalado e envia comandos através da porta serial. A saída dos comandos pode ser vista na interface web |
| Controlar o ecrã | Implementa o agente; o agente inclui um pequeno servidor VNC. Agora o ecrã pode ser visto através da interface web |
| Interface Simples | Uma interface simples mas poderosa para selecionar scripts/imagens e executá-los usando o botão de hardware. Mostra como pode construir interações de interface complexas de forma simples. |
| Transmitir áudio do microfone via WiFi | O M5Stack AtomS3U tem um microfone que pode transmitir via WiFi. |
| Bloquear instantaneamente máquinas Linux | Implementa um sistema de ficheiros defeituoso que faz com que máquinas Linux com automontagem entrem em pânico. |
| Hardware | Suportado | Links de Compra |
|---|---|---|
LilyGo T-Dongle S3 (Recomendado)![]() | A LilyGo T-Dongle S3 é uma placa de desenvolvimento ESP32-S3 em forma de pen USB. Apresenta um ecrã LCD a cores, botão físico, adaptador de cartão micro SD oculto/encoberto (dentro do conetor USB-A), bem como um adaptador SPI. Tem 16MB de flash. É baseada no chipset ESP32-S3, o que lhe permite alojar uma estação WiFi e suportar uma variedade de ataques WiFi e Bluetooth. É incrivelmente barata! Existem duas versões deste dispositivo, com e sem ecrã. Apenas a versão com ecrã foi testada. | |
Evil Crow Cable Wind ![]() | A Evil Crow Cable Wind é um cabo USB malicioso implantado com um ESP32-S3 escondido no interior, disponível em algumas variações diferentes. Uma extremidade pode ser usada para ataques USB ativos enquanto a outra se destina a carregar um dispositivo. O seu design único torna-a um dos dispositivos mais encobertos capazes de executar a USB Army Knife. Por esta razão, o dispositivo não tem ecrã, cartão SD, LEDs nem um bom botão de hardware (existe um no interior que requer o uso de um íman). Em vez de um cartão SD, a memória flash é usada para armazenar ficheiros. NOTA Embora seja possível executar um ponto de acesso sem fios nestes dispositivos, a unidade pode ficar muito quente. Para contrariar isto, a USB Army Knife suporta limitação térmica e desligará o WiFi se o dispositivo estiver a sobreaquecer. Para evitar completamente este problema, deve ligar-se a uma rede sem fios existente (em vez de alojar um ponto de acesso) ou desativar o WiFi; assim o dispositivo não sobreaquece. Este dispositivo tem instruções de instalação específicas |
Primeiro, consulte a wiki para um guia passo a passo e todo o tipo de conselhos para começar.
Existem duas opções para colocar o firmware da USB Army Knife no seu dispositivo:
Os dispositivos baseados em ESP-S2 têm suporte WiFi, mas não têm interface web. Os ataques são geridos através de ficheiros DuckyScript. Os dispositivos RP2040 não têm capacidade ESP32 Marauder
Não há razão para a USB Army Knife não poder também operar em modo host USB. Esse é o mesmo modo em que um computador funciona. Desta forma, a USB Army Knife pode emitir comandos como se fosse um computador. Como a maioria dos smartphones suporta PTP (protocolo de transferência de imagens), isto significa que, em teoria, poderia ligar uma USB Army Knife (com um adaptador USB) a um telemóvel e fazer com que ela extraísse as fotos.O Espressif tem documentação para o modo host USB e também código de exemplo. Eles não têm um exemplo para o protocolo PTP. Você pode coletar um PCAP do seu telefone usando PTP com o USB PCAP e há até um dissector para o WireShark
Contribuições são bem-vindas! Por favor, faça um fork do repositório e envie um pull request.
Se você tiver alguma dúvida ou sugestão, sinta-se à vontade para entrar em contato conosco:
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
| CDROM/NIC USB Malicioso | Finja ser uma NIC USB que requer um driver de um dispositivo CDROM que aparece quando liga a NIC. |
| Usar diferentes layouts de teclado | Suporte automaticamente diferentes layouts de teclado sem reescrever os seus payloads |
T-Watch S3 ![]() | A T-Watch S3 é uma plataforma de smartwatch com imenso hardware no interior, incluindo ecrã, WiFi, relógio de tempo real, microfone, acelerómetro, infravermelhos, feedback háptico e um transceiver LoRa. Grande parte disto já é suportado pela plataforma USB Army Knife. A coroa do relógio funciona como botão e existe uma porta mini USB para carregamento / ataques HID. Como o relógio é baseado no chipset ESP32-S3, pode alojar uma estação WiFi e suportar uma variedade de ataques WiFi e Bluetooth. Crucialmente, não tem ranhura para cartão SD e a memória flash é usada para armazenar ficheiros. Como tal, os scripts de ataque e quaisquer resultados estão limitados a ~10MB. A gravação (flashing) desta plataforma é um pouco mais complexa; consulte a Wiki para orientações sobre como colocar o seu dispositivo a funcionar. Este dispositivo tem instruções de instalação específicas |
Waveshare ESP32-S3 1.47inch ![]() | Este dispositivo é semelhante em design, tamanho e funcionalidades à LilyGo T-Dongle S3 e usa o mesmo chipset. É claramente uma placa de desenvolvimento, pois não vem com caixa e tem circuitos expostos na parte inferior. Onde este dispositivo supera a T-Dongle S3 é no ecrã muito grande e de alta qualidade e em 8MB adicionais de RAM. |
M5Stack AtomS3U ![]() | Esta é uma placa de desenvolvimento ESP32-S3 com duas interfaces externas na parte traseira. Não tem ecrã nem cartão SD, mas tem um LED e um botão. Em vez de um cartão SD, a memória flash é usada para armazenar ficheiros. Incomum, também contém um microfone digital e um LED IR que atualmente não são suportados. Para colocar o dispositivo em modo de gravação (boot), mantenha premido RESET (o botão na lateral do dispositivo) até um LED verde acender. |
ESP32 Udisk ![]() | O dispositivo mais básico que pode executar o código da USB Army Knife é um chip ESP32-S2 ligado a uma porta USB. Frequentemente encontra estes dispositivos vendidos em invólucros muito semelhantes à T-Dongle S3 e tendem a ser anunciados em sites como o AliExpress como jailbreaks de Playstation 4 sob o nome 'USB Dongle Udisk for P4'. Estes dispositivos não têm RAM, ecrã, cartão SD, Bluetooth, LEDs nem um bom botão de hardware. Em vez de um cartão SD, a memória flash é usada para armazenar ficheiros pequenos. Estes dispositivos são incrivelmente baratos e costumam ser bons a executar payloads HID+WiFi (como o rick roll). Aviso São demasiado limitados para executar o servidor web. Ao comprar estes dispositivos, tenha cuidado, pois podem ser facilmente confundidos com um dispositivo de aspeto muito semelhante que inclui um chipset CH343P e sem botão de reset. Certifique-se de que o dispositivo que compra tem um botão que possa ser pressionado com um clipe de papel. Garanta que grava este dispositivo com a configuração Generic-ESP32-S2. |
Pocket-Dongle-S3 ![]() | Dispositivo de aspeto muito semelhante à LilyGo T-Dongle S3, mas com um formato diferente de cartão SD e botão. O dispositivo não tem LED nem ranhura de interface QWIIC. Internamente, este dispositivo usa a interface de cartão SD mais antiga, pelo que espere velocidades de transferência lentas. |
ESP32 Key ![]() | Muito semelhante ao ESP32 UDisk (consulte essa descrição para uma lista do que não consegue fazer), este é um ESP32-S2 numa placa de circuito. É provavelmente o dispositivo mais barato que consegue, ainda que com dificuldade, executar a USB Army Knife e tem um preço à altura. Terá de manter premido o botão ao ligá-lo para colocar o dispositivo em modo de gravação. Garanta que grava este dispositivo com a configuração Generic-ESP32-S2. |
Waveshare-ESP32-GEEK ![]() | ESP32-GEEK é uma placa de desenvolvimento projetada pela Waveshare. Tem USB-A, ecrã LCD de 1,14 polegadas, um cartão SD e portas externas (SWD, UART e I2C); não tem LED. Mantenha premido o botão ao ligá-lo para colocar o dispositivo em modo de gravação. Este dispositivo tem alguns problemas com cartões SD (compatibilidade e baixa velocidade). Pode ser necessário usar partições de 8GB e experimentar algumas marcas de cartões para encontrar algo compatível (eu encontrei um cartão Kingston de 64GB com uma partição de 9GB que funcionou — a sua experiência pode variar). |
Waveshare-RP2040-GEEK ![]() | RP2040-GEEK é uma placa de desenvolvimento projetada pela Waveshare. Tem USB-A, ecrã LCD de 1,14 polegadas, um cartão SD e portas externas (SWD, UART e I2C). Esta placa não executa o chipset ESP32. O modo ethernet USB (NCM) e a utilização de todo o disco SD não são atualmente suportados. O ESP32 Marauder não pode funcionar neste dispositivo! No Windows, também pode ser necessário configurar este dispositivo para usar um driver WinUSB através do Zadig. Mantenha premido o botão ao ligá-lo para colocar o dispositivo em modo de gravação. |