티스토리 뷰


최근, DLL Planting 기법을 이용한 악성코드가 활발히 유포 되었다.
DLL Planting은 DLL Hijacking 이라고도 하며, DLL 로딩 시 DLL 경로가 지정되어 있지 않아 발생하는 취약점이다.
DLL 호출 시 파일의 경로가 설정되어 있지 않은경우 우선적으로 레지스트리 KnownDLLs Key를 확인후, 지정되어 있지 않으면 DLL Directory에서 찾는다.

디렉터리 우선순위는 다음과 같다.
1. 응용프로그램이 로드된 디렉터리
2. 시스템 디렉터리
3. 16비트 시스템 디렉터리
4. Windows 디렉터리
5. 현재 작업 디렉터리
6. Path 환경 변수에 등록된 디렉터리

따라서 정상 실행파일과 DLL 파일을 같이 유포시켜 실행파일이 필요 DLL호출시 경로가 설정되어 있지 않다면 DLL파일 호출 방식에 따라 다음 우선순위인 같은 디렉터리에 있는 DLL파일을 호출하여 사용하게 되는 것이다.
 

테스트 환경

Windows XP x86




생성파일

C:\Windows\AppPatch\28KX8GYZ(랜덤폴더명)\python27.dll
C:\Windows\AppPatch\28KX8GYZ(랜덤폴더명)\3E12B9.exe(랜덤 파일명) <- 머큐리얼 정상 실행파일 


위 그림과 같이 두 개의 파일을 생성하며, 그 중 하나는 머큐리얼이라는 프로그램의 정상 실행파일이며, 이 파일이 python27.dll 이라는 악성 dll 파일을 호출 한다.



3E12B9.exe 실행파일을 HKCU\Software\Microsoft\Windows\CurrentVersion\Run에 등록하고, 시스템 시작시 자동으로 실행되도록 한다.



프로세스를 생성하고 실행파일을 실행시킨다.




DLL Planting 기법을 이용한 악성 DLL 호출. (실행파일과 폴더명이 바뀐건 생성시마다 이름이 바뀌어서 그렇습니다. 스샷을 따로 찍어서...)





Svchost.exe 를 SUSPENDED MODE로 호출하고,  Code Injection한다.
WriteProcessMemory API함수의 버퍼에 있는 00176F10번지를 확인해 보면 MZ파일을 인젝션 했다는 것을 알 수 있다.

인젝션된 파일은 다음과 같은 행위를 수행한다.

1. NPKI 폴더확인 및 유출


2.DNS Chach Table 변조


DNS를 127.0.0.1 로 루프백 하고, host.ics 파일의 주소를 변조하여 위조된 웹 사이트로 유도한다.

3. Pharming(파밍) 공격 수행




'악성코드 정보' 카테고리의 다른 글

긴급! 한글 CryptoLocker  (0) 2015.04.17
폴리모픽 기법을 이용한 CTB-Locker 유포  (0) 2015.04.16
DLL Planting을 이용하는 파밍 악성코드  (0) 2015.03.19
원트 vvant  (0) 2015.03.17
crypto fortress  (0) 2015.03.17
댓글