Select your country

Not finding what you are looking for, select your country from our regional selector:

Rechercher

Pentest : démonstrations d’attaques sur les claviers

Présentation d’attaques ciblant les claviers (filaires et sans fil), ainsi que l’émulation de clavier virtuel (HID).

Keyboard, target and attack vector

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.

 

Démonstration pentest au FIC de 2021. Source : Orange Cyberdefense

KeyLogger Wi-Fi

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.

Keylogger matériel Wi-Fi. Source : Orange Cyberdefense.

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.

Récupération des frappes clavier enregistrées par le keylogger et visualisées depuis un téléphone

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é.

P4wnP1 A.L.O.A – “A little Offensive Appliance”

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 ».

P4wnP1 A.L.O.A sur Raspberry Pi 0 w avec adaptateur USB – Source : Orange Cyberdefense

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.

Interface Web d’administration du P4wnP1 A.L.O.A. Source : Orange Cyberdefense
Editeur de scripts HID avancés. Source : Orange Cyberdefense
Configuration des évènements déclencheurs de scripts HID. Source : Orange Cyberdefense
Gestion de la configuration simplifiée par l’utilisation de profiles (templates). Source : Orange Cyberdefense

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 :

  • Exfiltration de fichiers sensibles (.txt, .kdbx (KeePass), .docx, etc.) sur un périphérique de masse USB : requiert la configuration / activation des briques logicielles USB HID Keyboard / Mass Storage / HID Script / Trigger Actions
  • Déploiement d’un reverse shell: requiert la configuration / activation des briques logiciels USB HID Keyboard / HID Script / Trigger Actions / Ethernet over USB / Hot Spot Wi-Fi
  • Mise en place d’un canal auxiliaire basé sur le Wi-Fi (Air Gap avec un accès physique initial) : requiert la configuration / activation des briques logiciels USB HID Keyboard / HID Script / Trigger Actions / Ethernet over USB / Hot Spot Wi-Fi
  • Réalisation de l’attaque Karma (cf. documentations, ne peut être réalisé au travers de l’interface Web)

Les diverses étapes de configuration d’un scénario d’attaque pourraient se résumer à :

  • Configuration du profil USB : Ai-je besoin d’émuler une interface Ethernet, une interface Série et/ou un système de stockage ?
  • Configuration d’un profil pour la prise de contrôle à distance : Wi-Fi (client ou serveur) ? Bluetooth ?
  • Édition d’un script HID pour l’injection de frappes : Exfiltration de fichiers sensibles ? Injection d’un reverse shell?
  • Configuration de l’événement déclencheur du script souhaité : sur branchement du périphérique USB, sur déclenchement manuel depuis l’interface Web, etc.
  • Sauvegarde des divers profils et association de ces derniers à un (master template) pour le scénario envisagé.

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.

MouseJacking – LOGITacker

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.

Clavier MX Keys et souris MX Master 3 appairés avec un dongle Unifying. DR.

Les logiciels

  • munifying: il s’agit d’un outil utilisé pour exploiter la vulnérabilité CVE-2019-13055 qui permet d’extraire les données de clés secrètes afin de reconstruire la clé de chiffrement partagée entre le dongle Unifying et le périphérique sans fil (clavier, souris). Cette clé est initialement construite lors de la phase d’appairage du périphérique avec le dongle. Cette attaque requiert un accès physique au dongle.
  • LOGITacker: il s’agit d’un outil offensif ciblant les périphériques sans fils Logitech. Il permet entre autres de capturer et d’injecter des frappes clavier, de reconstruire la clé de chiffrement captée lors de la phase d’appairage (CVE-2019-13052) ou de déployer un canal auxiliaire pour la récupération d’un reverse shell.
  • iLOGIck (développement interne) : Afin de proposer à l’auditeur une interface conviviale et proposant un usage simplifié depuis un téléphone mobile, nous avons développé une application Flask permettant d’interagir avec le firmware LOGITacker. L’interface permet également de faciliter l’injection de charges utiles spécifiques propres au besoin de l’auditeur (Seatbelting, reverse shell, contournement de l’AMSI et de l’UAC, etc.) Cette application s’appuie sur une version patchée de LOGITacker pour des raisons de performance et d’ajouts de fonctionnalités, mais également sur le keylogger logkeys[7] pour la collecte des frappes clavier interceptées.

Le matériel

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 :

  • D’un Raspberry Pi Zero W ;
  • D’une carte SD avec un Raspi OS hébergeant l’application iLOGIck et logkeys permettant de conduire les attaques ;
  • D’un dongle radio nrf24 (Nordic nRF52840 Dongle / MakerDiary MDK Dongle / April Brother Dongle au choix) supportant le firmware LOGITacker patché par nos soins ;
  • D’un PiSugar 2 pour l’alimentation ;
  • D’un coude USB pour optimiser le volume global de la maquette.
Maquette insérée au sein d’un paquet de cigarettes – Source : Orange Cyberdefense

L’attaque

Etape 1 : Extraction des clés de chiffrement (accès physique au dongle Unifying cible nécessaire)

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.

Les données de clé sont absentes, le dongle n’est plus vulnérable. Source : Orange Cyberdefense

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.

Installation d’un firmware vulnérable. Source : Orange Cyberdefense

Nous relançons la commande précédente et faisons apparaître les clés de chiffrement du clavier et de la souris.

Les clés de chiffrements partagées sont lisibles. Source : Orange Cyberdefense

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).

Ajouts des adresses des périphériques Logitech avec leur clé de chiffrement. Source : Orange Cyberdefense

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.

Recherche des périphériques sans fil et sélection du mode interception de frappes. Source : Orange Cyberdefense

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.

Activation de l’énumération passive du clavier MX Keys. Source : Orange Cyberdefense

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.

Sélection de la charge utile et injection sur le dongle Unifying. Source : Orange Cyberdefense
Injection de la charge utile sur le poste de la victime (sans option de masquage). Source : Orange Cyberdefense

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.

Récupération d’une invite de commande Powershell. Source : Orange Cyberdefense

Conclusion

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 ! ».