🐚 Donut Shellcode : le fast-food du malware đŸ©đŸ’»

Dans une rĂ©cente analyse publiĂ©e par Palo Alto / Unit42, un tutoriel met en lumiĂšre un exemple de Donut Shellcode et son mĂ©canisme PC-relative addressing. Autrement dit, un code qui sait se dĂ©placer sans carte routiĂšre, toujours capable de retrouver ses ressources, peu importe oĂč il atterrit en mĂ©moire.
Et pour les analystes, c’est un bon exercice : on y passe par la statique (IDA Pro, dnSpy) et la dynamique (x64dbg, Process Hacker), histoire de dĂ©monter le donut couche par couche.

Bienvenue dans l’ùre oĂč les malwares se cuisinent comme des donuts industriels : rapide, sucrĂ© pour les attaquants, indigeste pour les Ă©quipes SOC. Le framework Donut n’a rien d’une sucrerie, mais d’un gĂ©nĂ©rateur de shellcode qui transforme n’importe quel exĂ©cutable Windows en payload injectable en mĂ©moire. RĂ©sultat ? Pas de fichier sur disque, pas de signature facile Ă  choper, et une migraine carabinĂ©e pour les blue teams.

Lien vers l’article complet : A Mega Malware Analysis Tutorial Featuring Donut-Generated Shellcode


🔎 L’anatomie d’un donut malveillant

L’échantillon observĂ© commence par une fonction mystĂ©rieuse, sub_10A31A, qui Ă  premiĂšre vue ressemble Ă  un banal bloc d’assembleur. En creusant, on dĂ©couvre une astuce classique du shellcode :

  • call $+5 → saute Ă  l’instruction suivante,
  • pop eax → rĂ©cupĂšre l’adresse de retour dans eax,
  • sub eax, <offset> → ajuste pour obtenir l’adresse rĂ©elle du code.

👉 RĂ©sultat : le code obtient sa propre position en mĂ©moire et s’en sert comme base pour retrouver ses ressources. Pas besoin de hardcoder une adresse qui changerait d’un process Ă  l’autre. Malin, mais pas nouveau : les rootkits des annĂ©es 2000 faisaient dĂ©jĂ  la mĂȘme tambouille.


đŸ–Œïž Petit dĂ©tour par le code đŸ©đŸ”§

Voici la fonction en question, telle qu’elle apparaĂźt une fois dĂ©sassemblĂ©e :

Ce qu’on voit ici (source : Unit42)

  • 📌 sub_10A31A() → la fameuse fonction qui renvoie sa propre adresse pour servir de base aux offsets.
  • 📌 memcpy(amsi_scan_buffer, v5 - 8767, 12) → une copie malveillante qui Ă©crase la fonction AmsiScanBuffer.
  • 📌 Le tout enveloppĂ© dans un joli VirtualProtect(..., RWX) → on change les droits mĂ©moire pour Ă©crire du code exĂ©cutable dans un buffer qui ne devrait jamais l’ĂȘtre.

👉 En clair : le malware patch AMSI en live, ce qui lui permet de passer sous les radars Windows Defender comme un voleur qui coupe le fil de l’alarme avant de cambrioler.


⚔ Techniques MITRE en action

Le shellcode Donut coche plusieurs cases bien connues du MITRE ATT&CK :

  • 🎯 [T1055] Process Injection : le code se cale dans la mĂ©moire d’un process lĂ©gitime et s’exĂ©cute incognito.
  • 🔧 [T1106] Native API : rĂ©solution dynamique des API Windows, classique mais toujours efficace.
  • đŸ›ĄïžÂ [T1562.001] Impair Defenses : on patch l’AMSI en mĂ©moire pour que Windows ferme les yeux sur l’infection.
  • 🐍 [T1059] Command & Scripting Interpreter : pas de fichier, tout passe en mĂ©moire – le rĂȘve humide des attaquants.

Bref, du dĂ©jĂ -vu, mais combinĂ© dans un petit package bien rĂŽdĂ©, prĂȘt Ă  ĂȘtre servi.


đŸ§‘â€đŸ’» Les outils du bon analyste

L’article insiste sur un point que tout analyste junior doit retenir : statique et dynamique sont complĂ©mentaires.

  • IDA ProÂ đŸ› ïž pour cartographier les instructions,
  • dnSpy pour dĂ©cortiquer l’éventuel code .NET,
  • x64dbg pour voir le shellcode s’animer en direct,
  • Process Hacker pour observer les manipulations mĂ©moire.

MoralitĂ© : mĂȘme un donut bien glacĂ© finit par fondre sous une loupe et une bonne dose de patience. đŸ©đŸ”Ź


📉 Quand la recherche rencontre le terrain

Sur le papier, ces analyses semblent acadĂ©miques. Mais dans la vraie vie ? Les campagnes rĂ©centes de ransomware Clopou LockBit utilisent exactement ce type de techniques pour injecter leurs payloads sans bruit. On a mĂȘme vu du Donut ou des Ă©quivalents maison dans :

  • des exploits 0-day Exchange,
  • des kits d’attaque distribuĂ©s sur Telegram,
  • des charges finales de botnets comme Qakbot ou IcedID.

⚠ Autrement dit : ce n’est pas un tuto pour nerds, c’est une rĂ©alitĂ© quotidienne pour les SOC.


đŸ€Ą Quand les skids jouent aux pentesters

Autre problĂšme : Donut est open source. Initialement pensĂ© pour les Red Teams et les tests de sĂ©cu, il est aujourd’hui repris par tout script-kiddie qui sait lancer un donut.exe payload.dll.

Résultat :

  • đŸ”„ Les pentesters sĂ©rieux s’en servent pour des dĂ©mos contrĂŽlĂ©es.
  • 💀 Les cybercriminels s’en servent pour dĂ©ployer du voleur de mots de passe en 2 clics.
  • 🙃 Les Ă©quipes de dĂ©fense, elles, mangent des nuits blanches.

Un peu comme Metasploit, devenu Ă  la fois l’outil de formation des RSSI et le couteau suisse des gangs cyber.


📜 Les IoCs du donut du jour

Unit42 fournit quelques indicateurs de compromission Ă  surveiller :

  • đŸ§©Â Hash SHA256 :
    d2bea59a4fc304fa0249321ccc0667f595f0cfac64fd0d7ac09b297465cda0c4
  • 📂 Fichier : shellcode Donut dĂ©chiffrĂ© (1,09 MB, type Data).

⚠ Comme toujours, un hash seul ne sauvera pas votre SI, mais il peut sauver un analyste d’un cafĂ© de plus Ă  3h du matin.


đŸ›Ąïž DĂ©fenses et contre-mesures

Les produits Palo Alto (WildFire, Cortex XDR, DNS Security, etc.) sont Ă©videmment citĂ©s comme boucliers – pub oblige. Mais en vrai, que faire cĂŽtĂ© blue team ?

  • ✅ DĂ©tecter les sĂ©quences call/pop typiques du shellcode.
  • ✅ Monitorer les appels aux API natives Windows.
  • ✅ Surveiller la dĂ©sactivation d’AMSI (si AMSI est dĂ©sactivĂ©, ce n’est jamais un bon signe).
  • ✅ DĂ©ployer de la tĂ©lĂ©metrie mĂ©moire (EDR, XDR) pour voir ce qui s’exĂ©cute en RAM.

En clair : il faut arrĂȘter de croire que les signatures AV suffisent. Le shellcode est un camĂ©lĂ©on. 🩎


đŸ„Ż Conclusion : Donut, la junk-food des malwares

Le message est simple : Donut n’est pas une nouveautĂ©, mais il simplifie et industrialise l’injection mĂ©moire. C’est la fast-food du malware : rapide, accessible, et dangereuse Ă  long terme pour la santé  des SI.

👉 Et la cerise sur le donut ?
Les attaquants n’ont mĂȘme plus besoin d’ĂȘtre des ingĂ©nieurs systĂšme pour exĂ©cuter du code en mĂ©moire. Ils ont juste besoin d’un gĂ©nĂ©rateur et d’un tuto trouvĂ© sur GitHub.

RĂ©sultat : le SOC devient la brigade anti-obĂ©sitĂ© numĂ©rique, forcĂ©e de courir aprĂšs chaque nouvelle friture logicielle.

Alors, la prochaine fois que vous entendez parler de Donut shellcode, souvenez-vous : ce n’est pas une friandise, mais une bombe calorique servie dans un binaire. đŸ©đŸ’Ł

🐚 Donut Shellcode : le fast-food du malware đŸ©đŸ’»
Partager cet article : Twitter LinkedIn WhatsApp

đŸ–‹ïž PubliĂ© sur SecuSlice.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut