CreateMutex
까보면 다나와~
winurl.dat (1)

ahnurl.sys 루트킷 드라이버 분석

1. 드럽퍼에 의한 실행 흐름

 


2. 상세 분석

1) DKOM을 이용한 드라이버 은닉

 

다음은 설치된 ahnurl 드라이버에 대한 오브젝트 일부이다. 드라이버는 스스로를 은닉하기 위해 오브젝트 오프셋 +14h 위치의 (DriverSection) 메모리를 접근한다. DriverSection은 이중 링크드 리스트로 이루어진 드라이버 리스트에 대한 정보를 제공하기 때문에 여기에 접근하여 링크된 리스트 항목의 앞 뒤 드라이버를 자신을 뺀 채 연결하고 자신을 리스트에서 조회되지 않도록 수정한다.

 

2) SSDT Hook

 

악성코드는 자신을 보호하기 위해 다음의 Native API대해 Hook을 한다.

NtQueryDirectoryFile(+244), NtEnumerateKey(+11c), ZwEnumerateValueKey(+124)

 위의 함수들은 레지스트리 및 파일을 조회할 때 호출되는데, 이는 인자값을 감시하여 자신이 원하는 레지스트리나 파일을 삭제하지 못 하도록 보호하기 위함이다. *Hook으로 인해 실행되는 함수는 별도로 분석하지 않았다.

 

3) NtMapViewOfSection API Inline Code Patch

 

우선 NtMapViewOfSection함수를 패치하는 목적은 다음과 같다.

프로세스는 새롭게 생성될 때 OS에 의해 독립적인 유저 메모리를 공간을 할당받고 이 공간을 통해서 코드를 실행한다. 특히 DLL은 효율적인 메모리 활용을 위해 Mapping된 파일을 불러오게 되어 있는데 해당 정보를 조회할 때 NtMapViewOfsection이 호출되게 된다. 따라서 이 함수를 수정하면 DLL이 로드됨과 동시에 자신이 원하는 행동도 임의 실행할 수 있게 되는 것이다.

Patch가 된 NtMapViewOfSection API는 사전에 buffer에 저장한 주소로 점프하게 되는데 해당 주소코드의 역할은 주요 온라인게임 계정을 해킹하는 악성코드 DLL파일을 로드하게 된다.

 

  Comments,     Trackbacks