
Rogue Assembly Hunter est un utilitaire permettant de découvrir des modules .NET CLR 'intéressants' dans les processus en cours.
__________ _____ . .
_____ \ ____ ____ __ __ ____ / _ \ ______ ______ ____ _ | | | ..
| // _ \ / __| | _/ __ \ / /\ \ / // __// __ \ / | __ | |< | |
| | ( <> ) // > | /\ / / | \ \ _ \ /| Y Y \ _\ \ |_ |
|| /_/_ /|/ _ > _| /____ >____ >___ >|| / /____/ |
/ // / / / / / / / /
___ ___ __
/ | \ __ __ / | ___________
/ ~ \ | |/ \ __/ __ _ __
\ Y / | / | \ | \ /| | /
_| /|/|| /| _ >|
/ / /
Rogue Assembly Hunter est un utilitaire pour découvrir des modules .NET CLR « intéressants » dans les processus en cours d’exécution.
.NET est une plateforme de développement et un framework d’exécution très puissants et capables pour construire et exécuter des applications gérées .NET. Au cours des dernières années, .NET a été adopté par les Red Teams (et assimilés) pour instrumenter des techniques afin de soutenir des opérations offensives. En particulier, le passage de PowerShell offensif à .NET a été un saut logique (pour beaucoup) en raison de la visibilité accrue et de l’opportunité offerte par PowerShell v5+. Ainsi, les outils et techniques offensifs .NET ont été utilisés avec succès pour contourner les capacités défensives basées sur l’hôte, contourner le contrôle des applications et construire/stager/livrer/exécuter du code malveillant (similaire à PowerShell).
D’un point de vue préventif, Microsoft fait davantage pour lutter contre les menaces instrumentées par .NET et minimiser la surface d’attaque globale de .NET. Par exemple, Microsoft a ajouté des capacités d’inspection AMSI dans .NET Framework 4.8, et les mécanismes WDAC/WLDP sont assez efficaces. D’un point de vue détection/réponse, une visibilité et une introspection supplémentaires dans l’écosystème .NET sont toujours avantageuses pour découvrir de nouvelles façons de combattre les menaces ciblant .NET.
En 2017, Joe Desimone (@dez_) a écrit un article fantastique intitulé Hunting For In-Memory .NET Attacks. Toujours d’actualité, l’article décrit les vecteurs d’attaque .NET modernes ainsi que les techniques de détection à la demande et basées sur les événements. Accompagnant l’article, Joe a publié un outil (Get-ClrReflection) pour détecter (et récupérer) de manière proactive les modules CLR .NET en mémoire qui n’ont pas de référence disque appropriée. Inspiré par le travail de Joe et profitant des capacités d’introspection de la bibliothèque de diagnostics d’exécution CLRMD (ainsi que des capacités d’accès aux données ultérieures de mscordacwks.dll), Rogue Assembly Hunter a été créé pour :
[*] Paramètres :
--mode=<.> : Requis | Sélectionnez le mode d’analyse. Options : sweep, process et watch.
--hunt=<.> : Facultatif | Sélectionnez le type de chasse pour trouver des modules CLR intéressants. Spécifiez all (par défaut), memory-only, unusual-dir,
sig-status, imposter-file ou list.
--export=<.> : Facultatif, expérimental | Spécifiez un chemin de fichier pour exporter les modules CLR chargés pour les chasses en mémoire et les chasses de fichiers imposteurs
(ex. --hunt=memory-only/imposter-file/all).
--pid=<.> : Facultatif | Spécifiez un processus ciblé par PID. Doit être utilisé avec le paramètre/valeur --mode=process.
--checks=<.> : Facultatif | Spécifiez une valeur pour les cycles d’analyse. Cela peut aider à réduire les oublis dus aux conditions de concurrence, mais peut aussi répéter la sortie des résultats.
Valeur par défaut : 1.