SSTIC 2011 - Silverlight


Bon, tout juste le temps de reprendre mon souffle qu’on enchaîne avec une présentation sur Silverlight, la techno de Microsoft pour concurrencer flash.

On a le droit à un récapitulatif sur la techno .NET et ses mécanismes de compilation, vérification de code, VM… Le principe du vérifieur de code est d’éviter que des pointeurs se baladent là ou il ne faut pas. C’est la qu’intervient une faille qui sert de fil rouge à la présentation. En jouant sur un décalage de pointeur sur un tableau, et sur les besoins du compilateur jit d’avoir des pages mémoire inscriptibles et exécutables, en utilisant uniquement des instructions .NET (ce qui permet de ne pas se prendre la tête avec l’ASLR, puisqu’on passe par l’API .NET).

L’usage de cet exploit local prend tout son sens dans le cadre de Silverlight, puisqu’il s’agit de code .NET, n’importe quelle browser Web équipé du plugin Silverlight est potentiellement attaquable à partir du moment ou il surf sur un site sous contrôle de l’attaquant. Contrairement à des codes spécifiques lié à IE, comme il s’agit d’un plugin, l’attaque fonctionne avec n’importe quel navigateur exécutant le plugin. De plus certains browsers comme Chrome et Firefox ne sandboxent pas le plugin (contrairement à IE). De plus l’exploit est stable et ne repose pas sur du heap spraying (donc pas de crash qui met la puce à l’oreille).

Pour résumer .NET -> Silverlight -> Browser -> PWNAGE !!!