|
Un accès complet à la mémoire des systèmes Microsoft Windows via le port Firewire
Par Ludovic Blin,
secuobs.com
Le 15/06/2008
Résumé : Damien Aumaitre (SOGETI) a présenté lors du SSTIC 2008 une conférence sur la mémoire des systèmes de type Microsoft Windows et les moyens de communication directe qu'offre le standard Firewire avec elle. - Lire l'article
Lors de la conférence Cansecwest 2005, Maximilian Dornseif avait présenté les possibilités d'accès à la mémoire d'une machine au travers d'un dispositif connecté à un port firewire (voir l'article sur SecuObs - lien ). L'attaque fonctionnait notamment sur les systèmes Linux, mais pas sur les systèmes Windows qui désactivent par défaut le mode DMA (Direct Memory Access) pour les périphériques Firewire.
C'est en effet la technique DMA qui permet la manipulation de la mémoire physique à l'initiative du périphérique et sans intervention du processeur central. Il s'est avéré par la suite que dans un souci de performance pour certains périphériques (Ipod ....), les systèmes Microsoft Windows activent par défaut le mode DMA rendant cette attaque possible sur ce système ( A. Boileau : voir l'article sur SecuObs - lien )
Lors du SSTIC 2008 (Symposium sur la sécurité des technologies de l'information et des communication), qui s'est tenu du 3 au 6 juin a Rennes, Damien Aumaitre de la société Sogeti a présenté les résultats de ses recherches dans le domaine. Il s'avère ainsi possible non seulement de lire la mémoire, mais aussi d'y écrire, ou bien encore d'exécuter du code sur une machine cible
L'une des principales difficultés consiste en la traduction entre l'adresse physique (la mémoire vue par le périphérique Firewire) et l'adresse virtuelle (la mémoire vue par un processus par exemple). Il faut également pouvoir manipuler depuis le système attaquant les objets utilisés par le noyau, ou encore les processus et la base de registre. Le chercheur a donc été dans l'obligation de recréé les diverses fonctions nécessaires à la manipulation de la mémoire.
Notons que l'exécution de code peut notamment s'opérer via l'écrasement du pointeur SystemCall, situé dans la structure KUSER_SHARED_DATA (en mode utilisateur) ; les privilèges du processus utilisé pouvant également dans ce cas être élevés. Cette technique offre des domaines d'application relativement variés. En effet, tout d'abord il est possible d'implémenter un debugger furtif, indépendant du système cible ; cette possibilité a d'ailleurs été identifiée par des membres de l'équipe FreeBSD depuis de nombreuses années.
Il est également possible d'implémenter de cette manière un dispositif anti-rootkit ou encore un outil de recueil de preuves informatiques (forensic). Enfin, sur un plan plus offensif, il est possible, d'une manière instantanée, de contourner l'authentification sur un système de type Microsoft Windows, sur lequel l'attaquant à bien entendu un accès physique, ou encore de lancer une invite de commande de type Shell avec les droits administrateur sans pour autant avoir à être authentifié sur le système cible
Lors de sa présentation, le chercheur a effectué une démonstration de cette dernière technique. On regrettera cependant la non disponibilité (pour l'instant tout du moins) des outils utilisés. L'implémentation d'outils contrôlant la connexion des périphériques autorisés sur les postes utilisateurs semble donc de plus en plus nécessaire, au fur et a mesure que ces techniques de manipulation de la mémoire via le DMA se diffusent.
Il peut être également utile de désactiver le support du Firewire (positionner à 4 la valeur start de la clé HKLM\System\CurrentControlSet\Services\ohci1394\ présente dans la base de registre du système d'exploitation).
La présentation de Damien Aumaitre ( lien )
L'article associé à cette présentation ( lien )
La présentation de M. Dornseif à Cansecwest 2005 ( lien )
La présentation de A. Laurie à Ruxcon 2006 ( lien )
- Article suivant : GenDBG, un debugger générique
- Article précédent : [NessusWX – Partie 2] Audits et conclusion
- Article suivant dans la catégorie Failles : Exploitation en cours de la faille DNS
- Article précédent dans la catégorie Failles : Une porte dérobée de la NSA dans un standard du NIST sur les générateurs de nombres aléatoires ?
Mini-Tagwall des articles publiés sur SecuObs : | | | | sécurité, exploit, windows, attaque, outil, microsoft, réseau, audit, metasploit, vulnérabilité, système, virus, internet, usbsploit, données, source, linux, protocol, présentation, scanne, réseaux, scanner, bluetooth, conférence, reverse, shell, meterpreter, vista, rootkit, détection, mobile, security, malicieux, engineering, téléphone, paquet, trames, https, noyau, utilisant, intel, wishmaster, google, sysun, libre |
Mini-Tagwall de l'annuaire video : | | | | curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit, exploit, lockpicking, linux, attack, wireshark, vmware, rootkit, conference, network, shmoocon, backtrack, virus, conficker, elcom, etter, elcomsoft, server, meterpreter, openvpn, ettercap, openbs, iphone, shell, openbsd, iptables, securitytube, deepsec, source, office, systm, openssh, radio |
Mini-Tagwall des articles de la revue de presse : | | | | security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone, server, inject, patch, apple, twitter, mobile, virus, ebook, facebook, vulnérabilité, crypt, source, linux, password, intel, research, virtual, phish, access, tutorial, trojan, social, privacy, firefox, adobe, overflow, office, cisco, conficker, botnet, pirate, sécurité |
Mini-Tagwall des Tweets de la revue Twitter : | | | | security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall, network, twitter, vmware, windows, microsoft, compliance, vulnerability, python, engineering, source, kernel, crypt, social, overflow, nessus, crack, hacker, virus, iphone, patch, virtual, javascript, malware, conficker, pentest, research, email, password, adobe, apache, proxy, backtrack |
|
|
|
|
|