
.NET 기반의 악성코드 로더, API-Hashing을 사용하여 정적 분석을 우회하는
API-Hashing과 동적 호출을 사용하여 정적 분석을 우회하는 .NET 악성코드 로더
NixImports는 제가 만든 관리형 API-Hashing 구현체 HInvoke를 사용하여 런타임에 호출되는 대부분의 함수를 동적으로 해결합니다. 함수를 해결하기 위해 HInvoke는 typeHash와 methodHash라는 두 개의 해시가 필요합니다. 이 해시들은 각각 타입 이름과 메서드의 FullName을 나타내며, 런타임에 HInvoke는 전체 mscorlib를 파싱하여 일치하는 타입과 메서드를 찾습니다. 이 과정으로 인해 HInvoke는 이를 통해 호출된 메서드에 대한 import 참조를 남기지 않습니다.
NixImports의 또 다른 흥미로운 기능은 가능한 한 알려진 메서드 호출을 피한다는 점입니다. 적용 가능한 경우 NixImports는 래퍼 대신 내부 메서드를 사용합니다. 내부 메서드만 사용함으로써 일부 보안 도구가 사용하는 기본적인 후크 및 모니터링을 우회할 수 있습니다.
자세한 설명은 제 블로그 글을 확인하세요.
HInvoke용 해시 생성 도구를 사용할 수 있습니다.
NixImports는 패킹하려는 .NET 바이너리의 파일 경로만 필요합니다.
NixImports.exe <filepath>
자동으로 루트 폴더에 Loader.exe라는 새 실행 파일을 생성합니다. 로더 실행 파일에는 인코딩된 페이로드와 이를 실행하는 데 필요한 스텁 코드가 포함됩니다.
탐지 엔지니어링과 NixImports의 가능한 탐지에 관심이 있다면 제 블로그 글의 마지막 섹션을 확인하세요.
또는 NixImports를 다루는 기본 YARA 규칙은 여기를 클릭하세요.