Rappels sur les méthodes d’injection de code traditionnelles
Les codes malveillants injectent souvent du code dans la mémoire d’un autre processus, que ce soit pour contourner des mécanismes de sécurité en ciblant des processus considérés comme sûrs par les solutions de sécurité, ou pour accéder à des données propres à un processus. On peut citer par exemple les attaques de type « Man-in-the-Browser » où pour modifier des pages web à la volée, le code malveillant doit s’exécuter dans le contexte du navigateur.
Les méthodes traditionnelles d’injection de code passent par l’allocation d’une zone mémoire exécutable dans le processus cible, généralement via l’API VirtualAllocEx, puis par la recopie du code à exécuter au travers de la fonction WriteProcessMemory ou d’une de ses variantes, et enfin par la création d’un thread distant dont le point d’entrée correspond à la zone de mémoire allouée initialement, avec un appel à la fonction CreateRemoteThread.
Présentation de la méthode « AtomBombing »
http://www.cert.ssi.gouv.fr/site/CERTFR-2017-ACT-010/index.html
Laisser un commentaire