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파일을 로드하게 된다.
'악성코드 상세분석' 카테고리의 다른 글
625 mbr악성코드 간이 분석.. (625 mbr malware simple analysis) (0) | 2013.07.17 |
---|---|
Bootkit 심층분석 (0) | 2012.09.12 |
온라인 게임 드롭퍼 (0) | 2011.11.15 |
spoo1sv.exe 분석내용(이미지 포함) (1) | 2011.11.09 |
spoo1sv.exe (1) | 2011.11.07 |