25 juillet 2022
La démonstration qui va être détaillée dans cet article a été présentée lors de l’édition 2021 du Forum International de la Cybersécurité (FIC), qui se tient à Lille chaque année.
Cet article reprend point par point la démonstration technique intitulée « Keyboard, target and attack vector » proposée sur le stand d’Orange Cyberdefense. Il présente des attaques concrètes ciblant les claviers filaires et sans fil, ainsi que l’émulation de clavier virtuel (HID), par l’utilisation de périphériques malveillants.
Majoritairement connu du grand public, le KeyLogger n’en demeure pas moins dangereux. Qu’il soit physique ou logique, ce dernier permet de capturer les frappes clavier du poste de la victime, et d’exfiltrer ces dernières par différents canaux (stockage local, Wi-Fi, Bluetooth).
Dans le cadre de cet article, nous prendrons pour exemple le cas d’un KeyLogger matériel permettant l’exfiltration des frappes d’un clavier par Wi-Fi. Ce dernier nécessite d’être placé discrètement par l’attaquant entre le clavier filaire et le poste ciblé. Le KeyLogger est ensuite accessible à distance via Wi-Fi, en proposant son propre HotSpot supportant les protocoles WEP, WPA et WPA2, ou en s’attachant à un réseau Wi-Fi existant. Il est transparent pour l’ordinateur et donc indétectable par les solutions de sécurité usuelles. Sa capacité d’enregistrement se compte en milliers de pages de texte.
La lecture des frappes capturées est réalisée via l’interface de gestion du KeyLogger, accessible depuis un client Web et peut donc être consultable au moyen d’un smartphone. L‘interface propose toutes les fonctionnalités d’exportation des données capturées ainsi que la configuration du mode d’accès Wi-Fi, client ou serveur.
Sa simplicité d’utilisation et son prix raisonnable (inférieur à 50 €) font de ce type de périphérique un gadget prisé par les apprentis espions. Son usage en environnement professionnel reste moins courant, mais plausible. Par conséquent, le risque induit par ce type de périphérique doit être considéré.
Dans le second volet de cet article, nous nous intéressons au Framework P4wnP1 A.L.O.A[1], pensé et conçu par Marcus Mengs (mame82). Contrairement au KeyLogger matériel mentionné en amont, le P4wnP1 A.L.O.A n’est pas un outil captif de frappes clavier, mais à l’inverse, un outil d’injection de frappes (pour sa fonction première). Il s’adresse à un public plus expérimenté. Sa mise en place requiert l’achat de matériels spécifiques (Raspberry Pi Zero W [2] et carte SD à minima, adaptateur USB, etc.) selon l’usage souhaité, ainsi qu’un effort de configuration plus conséquent au regard de la richesse de ses fonctionnalités. Le Framework lui-même repose sur une distribution Kali customisée, ce qui facilite l’ajout de logiciels offensifs. Le P4wnP1 A.L.O.A incarne plutôt bien l’adage « Petit … mais costaud ».
Pour ne citer que ses fonctionnalités principales, le P4wnP1 A.L.O.A supporte :
– Au travers de son interface USB :
L’émulation d’une interface réseau en environnement Windows (RNDIS) ou Unix (CDC ECM)
L’émulation d’un périphérique de stockage (clé USB)
L’émulation de clavier / souris (HID)
L’émulation d’une interface série
– La rédaction et l’exécution de scripts HID avancés pour l’injection de frappes clavier avec son éditeur embarqué ;
– La configuration d’un moteur de déclenchement d’actions par type d’évènement (après démarrage du service, après obtention d’un configuration IP par DHCP, sur réception d’une entrée par GPIO, etc.) ;
– La prise de contrôle à distance par Wi-Fi (plusieurs modes supportés : Access Point / Station (client) / Client with Failover to Access Point) ou Bluetooth ;
– La mise en place d’un canal auxiliaire sur Wi-Fi (Air Gap avec un accès physique initial) ;
– La réalisation d’attaque KARMA [3] (ne peut être conduit depuis l’interface Web ou la CLI).
L’administration du périphérique est réalisée au travers d’une interface Web légère développée en Golang ou d’un client CLI (P4wnP1_cli). Sa configuration se veut modulable, flexible et intuitive. Une gestion par profil de configuration permet facilement de naviguer entre les différents scénarios d’attaques imaginés.
L’administration du périphérique est réalisée au travers d’une interface Web légère développée en Golang ou d’un client CLI (P4wnP1_cli). Sa configuration se veut modulable, flexible et intuitive. Une gestion par profil de configuration permet facilement de naviguer entre les différents scénarios d’attaques imaginés.
Le P4wnP1 A.L.O.A pourrait être assimilé à un Rubber Ducky [4] survitaminé qui laisse entrevoir la réalisation de scénarios d’attaques multiples :
Les diverses étapes de configuration d’un scénario d’attaque pourraient se résumer à :
Un fois ces étapes réalisées, il ne reste plus qu’à brancher le périphérique sur le poste de la victime et attendre l’évènement déclencheur que nous avons sélectionné.
Globalement, la prise en main du Framework est rapide. Après quelques minutes d’utilisation, l’obtention d’un reverse shell en tant que NT AUTHORITY\SYSTEM avec contournement d’UAC et de Windows Defender produit son petit effet.
Le dernier volet de cet article s’intéresse au MouseJacking, et plus particulièrement aux dernières vulnérabilités identifiées par Marcus Mengs (encore lui ! ) affectant le dongle Unifying de Logitech.
Mais avant tout, petit rappel des circonstances : qu’est-ce que le MouseJacking ? Très brièvement, le MouseJacking fait référence à l’ensemble des vulnérabilités qui affectent les périphériques sans fils, qu’il s’agisse de claviers, souris, télécommandes de présentation ou bien encore trackpads. L’impact occasionné par l’exploitation de ces vulnérabilités est multiple, allant de l’interception des frappes clavier jusqu’à la compromission complète du poste ciblé.
Sans entrer dans les détails, il est pertinent de rappeler également les principaux acteurs ayant réalisés des travaux de recherche sur cette thématique. Par ordre chronologique : Thorsten Schröder et Max Moser avec Keykeriki (keyboard sniffer- 2010), Travis Goodspeed (Keyboard sniffer – 2011), Marc Newlin avec Bastille (Key Sniffer / Mouse Jack / Key Jack – 2016) et plus récemment Marcus Mengs (LOGITacker [5] / munifying [6] – 2019).
Les bases étant posées, il est temps de rentrer dans le vif du sujet. Afin d’évaluer plus concrètement l’impact lié à l’exploitation des vulnérabilités au moyen des outils munifying (CVE-2019-13054/13055) et LOGITacker (CVE-2019-13052), nous ciblerons les produits Logitech suivants : le clavier MX Keys et la souris MX Master 3, tous deux récemment achetés sur Internet.
L’objectif ici est de proposer une maquette pouvant s’insérer dans un objet de la taille d’un paquet de cigarettes, afin de masquer le périphérique malveillant. Il s’agit alors de déposer l’ensemble près du dongle Unifying de la cible.
La maquette elle-même est constituée :
Comme mentionné plus haut, nous allons extraire les clés de chiffrement du dongle Unifying qui est appairé avec le clavier MX keys et la souris MX Master 3. Pour ce faire, nous allons utiliser l’utilitaire munifying de Marcus Mengs. Cette étape requiert un accès physique au dongle Unifying qui doit être inséré dans le PC de l’attaquant.
Une première tentative d’extraction des clés permet de constater que la version du dongle est à jour et n’est plus affectée par la vulnérabilité CVE-2019-13055. Les données de clé secrètes ne sont pas extractibles.
Malheureusement, il n’existe aucun mécanisme permettant de prévenir l’installation d’un firmware antérieur. Il est donc possible de flasher le dongle avec une version du firmware vulnérable [8] avec l’outil munifying.
Nous relançons la commande précédente et faisons apparaître les clés de chiffrement du clavier et de la souris.
Une fois ces informations acquises, il convient de replacer rapidement le dongle Unifying sur le poste de notre victime. Les secrets capturés peuvent alors être ajoutés directement dans le firmware LOGITacker installé sur le dongle radio (Nordic nRF52840).
LOGITacker est à présent en capacité de déchiffrer les frappes interceptées émises par le clavier MX Keys. Il peut également injecter des frappes clavier sur le MX Keys mais également sur la souris MX Master 3 en utilisant la clé de chiffrement adéquate.
Nous replaçons le dongle nRF52840 sur la maquette que nous déposons à proximité du poste de la victime. L’ajout des clés de chiffrement peut être réalisé depuis l’interface de l’application d’iLOGIck au besoin.
Etape 2 : Ecoute des frappes clavier
Nous accédons ensuite à l’interface d’iLOGIck depuis notre smartphone. Nous effectuons alors un scan afin d’identifier des périphériques sans fil, puis nous sélectionnons le mode Passive-Enum afin d’intercepter les frappes clavier.
Il ne reste plus qu’à spécifier le périphérique à écouter – le clavier – et d’activer le mode Passive-Enum afin de récupérer les frappes directement sur notre mobile.
Etape 3 : Compromission du poste
Nous nous proposons maintenant d’injecter une charge utile permettant de nous délivrer un accès direct au système cible.
L’injection réalisée, nous avons plaisir à voir une connexion entrante sur le poste de l’attaquant, donnant un accès direct au système de la victime.
Au travers de la présentation de ces outils, nous avons pu avoir un aperçu des possibilités offertes par ces périphériques. Le coût raisonnable pour leur acquisition et le faible niveau technique nécessaire pour l’utilisation de certains d’entre eux favorisent leur prolifération.
Au même titre que les campagnes de sensibilisation relatives au phishing et vishing (voice phishing), il convient d’informer ses employés sur l’existence de ces périphériques malveillants et des risques induits par leur utilisation en milieu professionnel. Il est toujours bon de rappeler la nécessité d’opérer un simple contrôle visuel sur son environnement de travail avant chaque utilisation, afin d’y déceler un éventuel keylogger matériel ou autre périphérique inhabituel (ventilateur USB, etc.). Enfin, il est pertinent de rappeler l’importance de l’utilisation de la double authentification (OTP) sur toutes les applications sensibles, afin de complexifier la tâche de l’attaquant souhaitant obtenir un accès frauduleux à ces dernières, depuis un poste de travail compromis. En deux mots : « Soyez vigilants ! ».