Hack.lu 2011 - Linux thread injection - The jugaad way

Linux thread injection – The jugaad way
par
Aseem Jakhar

L’injection de code est très utilisé dans le monde de la sécurité (xss, sqli, etc…). L’injection de thread consiste à placer un thread dans un process via une API du système, ce qui est très utile pour débugger des programmes etc… mais ça peut aussi être utilisé pour des actions malveillante (ex: un malware qui s’injecte dans Internet Explorer pour pouvoir accéder à internet).

Coté linux, Ptrace() c’est la rolls, une présentation à SSTIC a eu lieu sur ce sujet, c’est utilisable aussi bien pour débugger que pour … injecter quelque chose dans le contexte d’un processus. L’utilisation de breakpoint est bien utile aussi pour effectuer de telles opérations. L’injection de librairies permet là aussi d’effectuer des opérations similaires, mais tout ceci est visible dans /proc/

/maps, et là, on peut découvrir l’injection et voire qu’un des segments de la mémoire est mappé sur un fichier utilisateur.

Jugaad est une librairie qui facilite ce type d’injection 100% en mémoire… ça me rappelle quelque chose :p
La librairie tient compte des problèmes de sauvegarde de l’environnement du processus qui va subir l’injection afin de pouvoir restaurer les registres importants. La lib fournit les fonctions nécessaires pour gérer l’allocation mémoire (ce qui n’est pas forcément simple, ceux qui ont déjà travaillé sur le sujet le savent). L’auteur nous détaille comment sa librairie prend en charge la gestion des threads vis à vis de l’injection, et comment la payload (le code du thread que l’on souhaite injecter dans le process) est gérée.

S’en suit une jolie démo d’injection sur un pauvre Firefox victime 🙂 avec tout plein de texte qui défile et c’est trop bien :D, et le firefox ne se rend compte… sauf que la loi de murphy frappe le speaker (comme Sébastien Tricaud lors de sa démo 😉 ). Le firefox est mort, mais la backdoor est là 🙂 présente et tourne… et l’assistance lag pour applaudir son travail (surement la conséquence du social event).