
Un chargeur de malware .NET, utilisant l'API-Hashing pour contourner l'analyse statique
Un chargeur .NET malveillant, utilisant le hachage d'API et l'invocation dynamique pour contourner l'analyse statique
NixImports utilise mon implémentation gérée de hachage d'API HInvoke, pour résoudre dynamiquement la plupart de ses fonctions appelées à l'exécution. Pour résoudre les fonctions, HInvoke nécessite deux hachages : le typeHash et le methodHash. Ces hachages représentent le nom du type et le FullName de la méthode. À l'exécution, HInvoke analyse l'intégralité de mscorlib pour trouver le type et la méthode correspondants. Grâce à ce processus, HInvoke ne laisse aucune référence d'importation aux méthodes appelées via lui.
Une autre fonctionnalité intéressante de NixImports est qu'il évite autant que possible d'appeler des méthodes connues ; dès que possible, NixImports utilise des méthodes internes plutôt que leurs wrappers. En utilisant uniquement des méthodes internes, nous pouvons contourner les hooks de base et la surveillance employés par certains outils de sécurité.
Pour une explication plus détaillée, consultez mon article de blog.
Vous pouvez générer des hachages pour HInvoke en utilisant cet outil
NixImports nécessite uniquement un chemin de fichier vers le binaire .NET que vous souhaitez empaqueter.
NixImports.exe <filepath>
Il générera automatiquement un nouvel exécutable appelé Loader.exe dans son dossier racine. L'exécutable du chargeur contiendra votre charge utile encodée et le code stub nécessaire pour l'exécuter.
Si vous êtes intéressé par l'ingénierie de détection et la détection possible de NixImports, consultez la dernière section de mon article de blog
Ou cliquez ici pour une règle YARA de base couvrant NixImports.