|
Ce mois-ci, un des membres du Cert-IST a attiré notre attention sur un outil de hacking, nommé "Kon-Boot", qui permet de se connecter en tant qu’administrateur sur un poste sans connaître le mot de passe associé. Rien de nouveau jusque-là, puisqu’il existe depuis des années des CD-ROM de démarrage permettant d’aller écraser le mot de passe administrateur d’un système pour en choisir un autre. Oui mais l’outil Kon-Boot que nous allons entre autres présenter ici permet de prendre le contrôle d’un système sans modifier la moindre donnée sur le disque dur de la machine compromise. De plus, c’est bien le véritable système d’exploitation installé sur la machine qui démarre et non un système spécifiquement conçu stocké sur le CD de boot. Avant d’entrer dans le vif du sujet, nous souhaitons attirer votre attention sur le fait qu’il peut être dangereux d’essayer ce genre d’outils. En effet, rien ne dit qu’il ne contient pas des fonctionnalités malveillantes cachées, et en particulier dans le cas d’un outil comme Kon-Boot dont le code source n’est pas publié. Nous vous recommandons donc la plus grande prudence lors de la réalisation de tels tests, et en particulier l’usage d’une machine dédiée isolée du reste du réseau.
En gros, comment ça marche ? L’outil Kon-Boot, qui est d’ailleurs gratuit, se présente sous la forme d’un CD-ROM amorçable. L’auteur signale qu’il est compatible avec la plupart des versions de Windows (2003 et 2008 Server, XP, Vista et même les premières pré-versions de Windows 7) ainsi qu’avec un certain nombre de distributions Linux. L’attaque se déroule comme suit :
On peut en conclure que, juste avant de passer la main au système d’exploitation, Kon-Boot a effectué des modifications de bas niveau lui permettant de conserver une ou plusieurs portes dérobées tout au long de l’exécution du système. Nous devons reconnaître ici qu’une telle attaque peut représenter une véritable inquiétude pour les administrateurs systèmes. En effet, les anciennes méthodes que l’on connaissait avaient un certain nombre d’inconvénients et pouvaient laisser des traces :
L’avantage de Kon-Boot du point de vue du hacker, c’est qu’il permet à une personne malveillante de démarrer directement sous le système qui est installé sur une machine, de se connecter en tant qu’administrateur et de réaliser les tâches de son choix. De plus, il ne sera pas forcément facile, même avec une investigation sur incident approfondie, de savoir si un utilisateur non légitime s’est connecté sur un système à un moment donné, puisqu’en particulier l’empreinte du mot de passe n’a pas été modifiée. D’un autre côté, du point de vue de l’administrateur système ou de l’expert sécurité, il peut s’agir d’un outil très pratique pour dépanner ou pour investiguer sur des machines dont l’utilisateur a oublié ou refusé de donner son mot de passe : on serait ici dans une situation légitime et autorisée (investigation sur incident, Forensic etc.).
Kon-Boot n’est pas le seul outil dans le genre Kon-Boot peut être classé dans une catégorie d’outils de hacking appelés les "bootkits". Les bootkits sont en fait connus depuis longtemps : rappelons-nous avec nostalgie les infections du MBR (Master Boot Record ou secteur d’amorçage). Ces bootkits sont en particulier revenus sur le devant de la scène ces 4 dernières années avec l’apparition de quelques programmes de démonstration et même de malwares :
Les bootkits modernes sont très similaires aux rootkits mais opèrent différemment. Alors que les rootkits ont besoin de privilèges élevés pour être installés, les bootkits profitent de la séquence de démarrage pour injecter leur propre code directement dans le code en mémoire du système d’exploitation. Certains bootkits sont persistants c'est-à-dire qu’ils restent présents sur le système même après l’arrêt et le redémarrage de la machine : c’est le cas du cheval de Troie MBRoot dont nous avons parlé. D’autres comme Kon-Boot sont simplement persistants en mémoire et n’affectent un système que lorsque celui-ci est démarré à partir d’un média amorçable spécifique et ne laissent aucune trace par ailleurs. Kon-Boot est donc le dernier né de ces outils et a l’avantage d’être non-persistant et extrêmement simple à utiliser, comme nous l’avons expliqué au paragraphe précédent. Détails techniques Les sources de Kon-Boot ne sont pas disponibles et nous ne pouvons que faire des suppositions basées sur des techniques déjà connues pour déterminer son mode de fonctionnement. En général, les bootkits détournent la routine d’interruption 0x13 qui est normalement mise à disposition par le BIOS. Cette routine est chargée de lire des secteurs à partir du disque dur et de les charger à un emplacement donné en mémoire. En détournant cette routine, les bootkits comme Kon-Boot ou Vbootkit modifient directement le code du système d’exploitation lors de son chargement en mémoire et donc juste avant son exécution. Dans le but d’évaluer le fonctionnement de Kon-Boot, nous l’avons testé sur une machine équipée de Windows XP. Nous avons effectivement pu constater qu’il était très facile de se connecter avec un compte administrateur sur le poste en question. Heureusement pour nous, et malheureusement pour les hackers, il nous a été impossible de réaliser certaines tâches par la suite. Voici une liste non exhaustive de choses que Kon-Boot ne permet pas de faire :
Recommandations et conclusion Cela étant dit, on peut aisément relativiser le risque induit par ce type d’attaque, notamment parce qu’elles demandent un accès physique à la machine que l’on veut compromettre. Les recommandations suivantes permettront en plus de limiter grandement le risque lié à ces attaques. Elles consistent essentiellement à verrouiller l’accès physique à la machine pour empêcher l’utilisation d’un bootkit :
Une solution plus robuste peut également consister à installer une solution de chiffrement intégral de disque dur, notamment parce que ce type de solutions met en place une authentification pre-boot sans laquelle le contenu du disque ne peut être déchiffré.
Pour en savoir plus :
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||