
Un caricatore di malware .NET, che utilizza API-Hashing per eludere l'analisi statica.
Un loader malware .NET, che utilizza API-Hashing e invocazione dinamica per eludere l'analisi statica
NixImports utilizza la mia implementazione gestita di API-Hashing HInvoke, per risolvere dinamicamente la maggior parte delle funzioni chiamate a runtime. Per risolvere le funzioni, HInvoke richiede due hash: typeHash e methodHash. Questi hash rappresentano il nome del tipo e il FullName del metodo; a runtime HInvoke analizza l'intero mscorlib per trovare il tipo e il metodo corrispondenti. A causa di questo processo, HInvoke non lascia riferimenti di importazione ai metodi chiamati attraverso di esso.
Un'altra caratteristica interessante di NixImports è che evita di chiamare metodi noti il più possibile; quando applicabile, NixImports utilizza metodi interni invece dei loro wrapper. Utilizzando solo metodi interni possiamo eludere hook di base e monitoraggi impiegati da alcuni strumenti di sicurezza.
Per una spiegazione più dettagliata, consulta il mio post sul blog.
Puoi generare hash per HInvoke usando questo strumento
NixImports richiede solo il percorso del file binario .NET che vuoi impacchettare.
NixImports.exe <filepath>
Genererà automaticamente un nuovo eseguibile chiamato Loader.exe nella sua cartella radice. L'eseguibile loader conterrà il payload codificato e il codice stub necessario per eseguirlo.
Se sei interessato all'ingegneria del rilevamento e alla possibile individuazione di NixImports, consulta l'ultima sezione del mio post sul blog
Oppure clicca qui per una regola yara di base che copre NixImports.