USB Army Knife – l'outil ultime d'accès physique pour les testeurs d'intrusion et les red teamers.
🚀 USB Army Knife v2 est en préparation — et ce sera une bête
Après deux ans de développement actif sur la v1, la v2 est prévue pour transformer le USB Army Knife en une véritable plateforme red-team dans votre poche. Une grande annonce arrive cet automne, mais je voulais déjà vous donner un aperçu :
Une grande partie de ce travail est maintenant terminée et j'ai été occupé à travailler avec du matériel suffisamment puissant pour faire tourner cette nouvelle plateforme. Ce qui est clair, c'est que le dongle qui a lancé ce projet ne pourra pas gérer les nouvelles fonctionnalités de la V2. Mais j'adore personnellement son facteur de forme. Ce dont je suis sûr, c'est que la v2 fera de UAK un petit stick unique qui se scripte lui-même, choisit sa cible, contrôle l'appareil, écoute la pièce, et peut-être même communique avec ses congénères...
Compact et polyvalent, cet appareil frappe fort avec ses capacités étendues, notamment les attaques USB HID, l'émulation de stockage de masse, l'usurpation de périphériques réseau et les exploits WiFi/Bluetooth (grâce à notre version forkée de ESP32 Marauder).
Contrôle total sur la manière et le moment où vos payloads sont exécutés. Branchez et exécutez, laissez derrière vous et déclenchez via WiFi, lancez sur une minuterie ou construisez une interface digne d'Hollywood. Gérez et déployez vos attaques sans effort à l'aide d'un simple téléphone grâce à une interface web Bootstrap conviviale.
Vous en voulez plus ? Déployez l'agent et exécutez des commandes même lorsque la machine est verrouillée. Travailler via l'interface série rend l'exfiltration extrêmement difficile à détecter. Vous pouvez même visualiser l'écran de la victime via la connexion WiFi dédiée de l'appareil.
Équipez-vous du USB Army Knife et élevez votre boîte à outils d'accès local au niveau supérieur.
"Votre appareil est diabolique. Vous faites le mal." - Mr. Peoples via X
Il existe un problème avec les attaques par accès physique/USB aujourd'hui. Prises individuellement, chaque attaque ne fournit pas une solution suffisante pour atteindre la plupart des objectifs.
Ce qui était nécessaire, c'était une plateforme d'accès physique permettant à un malfaiteur compétent de prendre le meilleur de chaque attaque et de contourner leurs problèmes respectifs avec une autre attaque. Idéalement, cette plateforme serait si bon marché et discrète que d'en perdre une ne poserait pas de problème.
C'est pourquoi j'ai décidé de créer le USB Army Knife.
Ce projet implémente une variété d'attaques basées sur un dongle USB/WiFi/BT facilement dissimulable. Les attaques incluent l'envoi de BadUSB (commandes USB HID utilisant DuckyScript), l'apparition en tant que périphériques de stockage de masse, l'apparition en tant que périphériques réseau USB, et la réalisation d'attaques WiFi et Bluetooth avec ESP32 Marauder. Les attaques sont déployées à l'aide d'un langage de type Ducky que vous connaissez probablement déjà et appréciez. Ce langage a été enrichi d'une multitude de commandes personnalisées et même de l'ensemble des capacités d'ESP32 Marauder (améliorées). Les attaques incluent :
| Nom | Description |
|---|---|
| Stockage discret | Exemple montrant comment se faire passer pour deux périphériques de stockage de masse USB différents. La première fois que l'appareil est branché, il apparaît avec le contenu complet de la carte micro SD. Lors des tentatives suivantes, un autre lecteur 'bénin' apparaît. |
| Barre de progression | Des images sont affichées sur l'écran LCD de l'appareil montrant une barre de progression. Idéal pour les attaques de style Hollywood ou si vous voulez un indicateur visuel montrant qu'une attaque a été déployée. |
| Ultimate RickRoll | Injectez des frappes clavier pour afficher la célèbre vidéo rickroll mais utilise également ESP32 Marauder pour diffuser les paroles via WiFi. |
| USB Ethernet PCAP | Transforme l'appareil en adaptateur réseau USB et collecte un PCAP des premières secondes du trafic réseau. |
| Déployer l'agent série | Déploie l'agent s'il n'est pas déjà installé et envoie des commandes via le port série. La sortie des commandes peut être consultée dans l'interface web |
| Contrôler l'écran | Déploie l'agent, l'agent inclut un minuscule serveur VNC. L'écran peut désormais être visualisé via l'interface web |
| Interface simple | Une interface simple mais puissante pour sélectionner des scripts/images et les exécuter à l'aide du bouton matériel. Montre comment construire facilement des interactions d'interface complexes. |
| Diffuser l'audio du micro via WiFi | Le M5Stack AtomS3U possède un microphone que vous pouvez diffuser via WiFi. |
| Faire planter instantanément les machines Linux | Déployez un système de fichiers corrompu qui fait planter les machines Linux qui montent automatiquement. |
| Matériel | Pris en charge | Liens d'achat |
|---|---|---|
LilyGo T-Dongle S3 (Recommandé)![]() | Le LilyGo T-Dongle S3 est une carte de développement ESP32-S3 en forme de clé USB. Il dispose d'un écran LCD couleur, d'un bouton physique, d'un adaptateur de carte micro SD caché/dissimulé (à l'intérieur du connecteur USB-A) ainsi que d'un adaptateur SPI. Il dispose de 16 Mo de flash. Il est basé sur le chipset ESP32-S3 qui lui permet d'héberger une station WiFi ainsi que de prendre en charge une gamme d'attaques WiFi et Bluetooth. Il est incroyablement bon marché ! Il existe deux versions de cet appareil, avec et sans écran. Seule la version avec écran a été testée. | |
Evil Crow Cable Wind ![]() | Le Evil Crow Cable Wind est un câble USB malveillant implanté avec un ESP32-S3 caché à l'intérieur, il existe en plusieurs variantes. Une extrémité peut être utilisée pour des attaques USB actives tandis que l'autre est destinée à charger un appareil. Son design unique en fait l'un des appareils les plus discrets capables de faire tourner USB Army Knife. Pour cette raison, l'appareil n'a pas d'écran, de carte SD, de LED ni de bon bouton matériel (il y en a un à l'intérieur qui nécessite l'utilisation d'un aimant). Au lieu d'une carte SD, la mémoire flash est utilisée pour stocker les fichiers. REMARQUE Bien qu'il soit possible d'exécuter un point d'accès sans fil sur ces appareils, l'unité peut devenir très chaude. Pour contrer cela, USB Army Knife prend en charge la limitation thermique et désactivera le WiFi si l'appareil surchauffe. Pour éviter complètement ce problème, vous devez vous connecter à un réseau sans fil existant (plutôt que d'héberger un point d'accès) ou désactiver le WiFi ; l'appareil ne surchauffe alors pas. Cet appareil a des instructions d'installation spécifiques |
Tout d'abord, veuillez consulter le wiki pour un guide étape par étape et toutes sortes de conseils pour démarrer.
Il existe deux options pour installer le firmware USB Army Knife sur votre appareil :
Les appareils basés sur ESP-S2 prennent en charge le WiFi mais n'ont pas d'interface web. Les attaques sont gérées via des fichiers DuckyScript. Les appareils RP2040 n'ont pas la capacité ESP32 Maurader
Il n'y a aucune raison pour que le USB Army Knife ne puisse pas également fonctionner en mode hôte USB. C'est le même mode dans lequel un ordinateur fonctionne. De cette manière, le USB Army Knife peut émettre des commandes comme s'il était un ordinateur. La plupart des smartphones prenant en charge PTP (protocole de transfert d'images), cela signifie que vous pourriez en théorie brancher un USB Army Knife (avec un adaptateur USB) sur un téléphone et lui faire extraire les photos.Espressif ont une documentation pour le mode hôte USB ainsi que des exemples de code. Ils ne disposent pas d'exemple pour le protocole PTP. Vous pouvez collecter un PCAP de votre téléphone en utilisant PTP avec USB PCAP, il existe même un dissecteur pour WireShark.
Les contributions sont les bienvenues ! Veuillez forker le dépôt et soumettre une pull request.
Si vous avez des questions ou des suggestions, n'hésitez pas à nous contacter :
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
| CDROM/NIC USB malveillant | Faites semblant d'être une carte réseau USB nécessitant un pilote depuis un périphérique CDROM qui apparaît lorsque vous branchez la carte réseau. |
| Utiliser différentes dispositions de clavier | Prend en charge automatiquement différentes dispositions de clavier sans réécrire vos payloads |
T-Watch S3 ![]() | Le T-Watch S3 est une plateforme de montre connectée avec une multitude de matériel intégré, notamment écran, WiFi, horloge temps réel, micro, accéléromètre, infrarouge, retour haptique et un émetteur-récepteur LoRa. Une grande partie de cela est déjà prise en charge par la plateforme USB Army Knife. La couronne de la montre sert de bouton et il y a un mini port USB pour la charge / les attaques HID. Comme la montre est basée sur le chipset ESP32-S3, elle peut héberger une station WiFi ainsi que prendre en charge une gamme d'attaques WiFi et Bluetooth. Crucialement, elle n'a pas d'emplacement pour carte SD et la mémoire flash est utilisée pour stocker les fichiers. Par conséquent, les scripts d'attaque et tous les résultats sont limités à ~10 Mo. Le flashage de cette plateforme est un peu plus complexe, consultez le Wiki pour des conseils sur la mise en route de votre appareil. Cet appareil a des instructions d'installation spécifiques |
Waveshare ESP32-S3 1.47inch ![]() | Cet appareil est similaire en conception, taille et fonctionnalités au LilyGo T-Dongle S3 et utilise le même chipset. C'est clairement une carte de développement car elle n'est pas livrée avec un boîtier et présente des circuits exposés sur la face inférieure. Là où cet appareil surpasse le T-Dongle S3, c'est qu'il dispose d'un très grand écran de haute qualité et de 8 Mo de RAM supplémentaire. |
M5Stack AtomS3U ![]() | Il s'agit d'une carte de développement ESP32-S3 avec deux interfaces externes à l'arrière. Elle ne dispose pas d'écran ni de carte SD, mais possède une LED et un bouton. Au lieu d'une carte SD, la mémoire flash est utilisée pour stocker les fichiers. De manière inhabituelle, elle contient également un microphone numérique et une LED IR qui ne sont actuellement pas pris en charge. Pour mettre l'appareil en mode boot, maintenez RESET (le bouton sur le côté de l'appareil) enfoncé jusqu'à ce qu'une LED verte s'allume. |
ESP32 Udisk ![]() | L'appareil le plus basique capable de faire tourner le code USB Army Knife est une puce ESP32-S2 connectée à un port USB. On les trouve souvent vendues dans des boîtiers très similaires au T-Dongle S3 et elles sont généralement annoncées sur des sites comme AliExpress comme des jailbreaks de Playstation 4 sous le nom « USB Dongle Udisk for P4 ». Ces appareils manquent de RAM, d'écran, de carte SD, de Bluetooth, de LED et d'un bon bouton matériel. Au lieu d'une carte SD, la mémoire flash est utilisée pour stocker de petits fichiers. Ces appareils sont incroyablement bon marché et sont souvent efficaces pour exécuter des payloads HID+WiFi (comme le rick roll). Avertissement Ils sont trop peu puissants pour faire tourner le serveur web. Lors de l'achat, attention car ils peuvent souvent être confondus avec un appareil d'apparence très similaire qui inclut un chipset CH343P et aucun bouton de réinitialisation. Assurez-vous que l'appareil que vous achetez possède un bouton pouvant être enfoncé avec un trombone. Assurez-vous de flasher cet appareil avec la configuration Generic-ESP32-S2. |
Pocket-Dongle-S3 ![]() | Appareil d'apparence très similaire au LilyGo T-Dongle S3 mais avec un facteur de forme différent pour la carte SD et le bouton. L'appareil n'a pas de LED ni d'emplacement d'interface QWIIC. En interne, cet appareil utilise l'ancienne interface de carte SD, attendez-vous donc à des vitesses de transfert lentes. |
ESP32 Key ![]() | Très similaire à l'ESP32 UDisk (veuillez consulter cette description pour une liste de ce qu'il ne peut pas faire), il s'agit d'un ESP32-S2 sur une carte de circuit imprimé. C'est probablement l'appareil le moins cher qui peut tout juste faire tourner USB Army Knife et son prix est à la hauteur. Vous devrez maintenir le bouton enfoncé lors du branchement pour mettre l'appareil en mode flashage. Assurez-vous de flasher cet appareil avec la configuration Generic-ESP32-S2. |
Waveshare-ESP32-GEEK ![]() | ESP32-GEEK est une carte de développement conçue par Waveshare. Elle dispose d'un port USB-A, d'un écran LCD de 1,14 pouce, d'une carte SD et de ports externes (SWD, UART et I2C), elle n'a pas de LED. Maintenez le bouton enfoncé lors du branchement pour mettre l'appareil en mode flashage. Cet appareil présente quelques problèmes de carte SD (compatibilité et faible vitesse). Vous devrez peut-être utiliser des partitions de 8 Go et essayer plusieurs marques de cartes pour trouver quelque chose de compatible (j'ai trouvé qu'une carte Kingston de 64 Go avec une partition de 9 Go fonctionnait, votre expérience peut varier). |
Waveshare-RP2040-GEEK ![]() | RP2040-GEEK est une carte de développement conçue par Waveshare. Elle dispose d'un port USB-A, d'un écran LCD de 1,14 pouce, d'une carte SD et de ports externes (SWD, UART et I2C). Cette carte ne fait pas tourner le chipset ESP32. Le mode USB ethernet (NCM) et l'utilisation complète du disque SD ne sont actuellement pas pris en charge. ESP32 Maurader ne peut pas fonctionner sur cet appareil ! Sous Windows, vous devrez peut-être également configurer cet appareil pour utiliser un pilote WinUSB à l'aide de Zadig. Maintenez le bouton enfoncé lors du branchement pour mettre l'appareil en mode flashage. |