🔍 Contexte

Article technique publié le 4 mai 2026 par Remco van der Meer sur incendium.rocks, présentant des mises à jour du projet MS-RPC-Fuzzer et les résultats obtenus, notamment la découverte d’une escalade de privilèges vers NT AUTHORITY\SYSTEM.

🛠️ Améliorations du fuzzer MS-RPC

Deux fonctionnalités majeures ont été implémentées :

  • Fuzzing récursif des structures complexes : trois fonctions coopérantes (New-FuzzedInstance, Get-FuzzFieldValue, New-NdrEmbeddedPointerValue) permettent de traverser récursivement les structures NDR imbriquées, avec des garde-fous anti-récursion infinie (profondeur max 8, ensemble $Visited).
  • Support des types Union : gestion des unions MS-RPC IDL en sélectionnant aléatoirement un bras (Arm_N) et en synchronisant le discriminant pour éviter l’erreur No matching union selector when marshaling.

📡 Remplacement de Process Monitor par ETW

Le fuzzer utilise désormais Event Tracing for Windows (ETW) via P/Invoke sur advapi32.dll et tdh.dll pour surveiller l’activité fichier et registre :

  • Provider Microsoft-Windows-Kernel-File (GUID : EDD08927-9CC4-4E65-B970-C2560FB5C289)
  • Provider Microsoft-Windows-Kernel-Registry (GUID : 70EB4F03-C1DE-4F73-A051-33D13D5413BD)

Un canary (incendiumrocks_) est préfixé à toutes les chaînes et tableaux d’octets générés. Lorsque ce canary apparaît dans une activité fichier/registre sous une identité privilégiée (SIDs S-1-5-18, S-1-5-19, S-1-5-20), une alerte haute priorité est émise en temps réel.

🚨 Découverte : escalade de privilèges via spoolsv.exe

Le fuzzing a révélé que la procédure RPC RpcInstallPrinterDriverPackageFromConnection (interface 12345678-1234-abcd-ef00-0123456789ab, endpoint ncalrpc:[LRPC-340b3873feba621b77]) dans spoolsv.exe charge un DLL depuis le disque en tant que NT AUTHORITY\SYSTEM à partir d’une entrée contrôlée par l’utilisateur. Les événements sont enregistrés dans Syscalls.json et HighPrivSyscalls.json.

📄 Type d’article

Analyse technique de recherche en vulnérabilité, présentant l’implémentation d’un outil de fuzzing offensif et les résultats de son application sur les interfaces MS-RPC Windows.

🧠 TTPs et IOCs détectés

TTP

  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
  • T1574.001 — Hijack Execution Flow: DLL Search Order Hijacking (Persistence)
  • T1106 — Native API (Execution)

IOC

  • Fichiers : spoolsv.exe
  • Chemins : C:\windows\system32\spoolsv.exe

Malware / Outils

  • MS-RPC-Fuzzer (tool)

🟡 Indice de vérification factuelle : 46/100 (moyenne)

  • ⬜ incendium.rocks — source non référencée (0pts)
  • ✅ 15000 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 2 IOC(s) (6pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 3 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://www.incendium.rocks/posts/Fuzzing-MS-RPC-structures-and-monitoring/