#UYBHYS26

#UYBHYS26

Stop Injecting, Start Blending : une approche KISS du développement de malwares

À mesure que les solutions EDR améliorent leur capacité à identifier les comportements malveillants, les développeurs de malwares ajoutent de plus en plus de couches de complexité afin de tenter d'échapper à la détection.

L'une des opérations les plus difficiles à réaliser furtivement reste l'injection de code en mémoire. Cette étape, a priori incontournable, est associée à de nombreux indicateurs de compromission (appels à des API Windows suspectes, nécessité de permissions mémoire en écriture, flux d'exécution inhabituels..).

Pour relever ce défi, nous revisitons une technique ancestrale (à l'échelle de l'informatique..) : les code caves. Il s'agit d'emplacements mémoire inutilisés au sein de programmes légitimes, qui peuvent être détournés afin d'héberger et exécuter du code malveillant. En étendant ce concept pour inclure le code mort et en adoptant une approche de développement position independant, nous montrons qu'il est non seulement possible de dépasser les limitations classiques des code caves, mais également de supprimer totalement le besoin d'injection de code.

À travers des démonstrations pratiques, nous montrerons comment il est possible d'automatiser la découverte et la weaponization du code mort dans des binaires légitimes. Cette preuve de concept défend une nouvelle approche du développement de logiciels malveillants, privilégiant la simplicité et le minimalisme plutôt que des chaînes d'évasion toujours plus complexes.

Enfin, nous examinerons les implications défensives de ces techniques : si les attaquants peuvent éviter les artefacts traditionnels liés à l'injection, les stratégies de détection doivent moins se concentrer sur la manière dont le code est parvenu à l'exécution et davantage sur les actions effectuées par ce code. En déplaçant leur attention sur le comportement post-exécution, les défenseurs peuvent concevoir des mécanismes de détection restant efficaces même lorsque les implémentation offensives évoluent.


I. (Quick) Shellcode Primer (~4 min)

This section establishes a shared mental model and context, without assuming deep malware development background.

  • What shellcodes are and how they appeared in computer security?
  • Meterpreter seen as a tipping point, coupling shellcode and C2/RAT logic into a single operational model, resulting in an increased complexity
  • High-level overview of a classic code injection flow and its associated detection surface (hooked Windows API calls, uncommon memory allocations...)

II. The OG Code Caves (~4 min)

This section recalls how code caves tricks could be used as a response to early detection technologies, and why they became obsolete.

  • What code caves are and how they can be used to backdoor legitimate binaries
  • What are this technique limitations (restricted space resulting in the need for new sections and/or memory permission changes + breaking digital signature)

III. Revisiting Code Caves (~17 min)

This section shows how a renewed approach allows code caves to be reconsidered beyond their original drawbacks.

  • Expanding usable cave space beyond zeroed memory to any dead code (non-reached code paths, non-imported DLL functions..), allowing .text section usage
  • The major challenge of generating a usable control flow graph
  • How read-only, strict position-independent shellcode design eliminates the need for writable memory, allowing payloads to operate within existing permissions set
  • Applying modern obfuscation techniques (in particular: LLVM metamorphic engines) to read-only shellcodes
  • Automating discovery and payload creation with dedicated tooling

IV. Conclusion and Takeaways (~3 min)

  • For red teamers: A practical alternative to increasingly complex injection chains, encouraging a shift toward more minimalism and simplicity in malware development
  • For blue teamers: Incentive to prioritize root-level and behavioral detection over payload-specific indicators
  • For security researchers: encouragement to reassess deprecated techniques under modern defensive assumptions
Julien BEDEL

Julien est opérateur red team chez Orange Cyberdefense, où il réalise des évaluations de sécurité offensive et développe des outils pour la simulation d'acteurs malveillants.

Issu du monde du développement logiciel, ses précédents travaux de recherche portaient principalement sur la sécurité des gestionnaires de mots de passe, ainsi que sur les applications offensives de composants internes de Windows.

Il a également contribué à différents projets open source tels que Scapy, Metasploit, Impacket ou CrackMapExec.