
Um carregador de malware .NET, usando API-Hashing para evadir a análise estática.
Um loader de malware .NET, usando API-Hashing e invocação dinâmica para evadir análise estática
O NixImports usa minha implementação gerenciada de API-Hashing HInvoke para resolver dinamicamente a maioria de suas funções chamadas em tempo de execução. Para resolver as funções, o HInvoke requer dois hashes: o typeHash e o methodHash. Esses hashes representam o nome do tipo e o FullName do método. Em tempo de execução, o HInvoke percorre toda a mscorlib para encontrar o tipo e método correspondentes. Devido a esse processo, o HInvoke não deixa nenhuma referência de importação para os métodos chamados por ele.
Outra característica interessante do NixImports é que ele evita chamar métodos conhecidos sempre que possível. Sempre que aplicável, o NixImports usa métodos internos em vez de seus wrappers. Usando apenas métodos internos, podemos evadir ganchos básicos e monitoramento empregados por algumas ferramentas de segurança.
Para uma explicação mais detalhada, confira meu post no blog.
Você pode gerar hashes para o HInvoke usando esta ferramenta
O NixImports requer apenas o caminho para o binário .NET que você deseja empacotar com ele.
NixImports.exe <filepath>
Ele gerará automaticamente um novo executável chamado Loader.exe em sua pasta raiz. O executável loader conterá seu payload codificado e o código stub necessário para executá-lo.
Se você está interessado em engenharia de detecção e possível detecção do NixImports, confira a última seção do meu post no blog
Ou clique aqui para uma regra yara básica que cobre o NixImports.