3. 악성코드 분석 사례
DESCRIPTION
2008년 서울여대 강의 자료TRANSCRIPT
![Page 1: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/1.jpg)
악성코드 분석 사례2008.10.07
㈜ 안철수연구소
AhnLab Security E-response Center
Anti-Virus Researcher, CISSP
장 영 준 주임 연구원
![Page 2: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/2.jpg)
2
1. Dropper/PcClient.47873
은폐 기능을 수행하며 별도의 파일들을 생성하는 드로퍼 (Dropper) 형태의 트로이목마
1) Visual C++로 제작
2) 윈도우 시스템 폴더에 2개의 DLL 파일과 1개의 드라이버 파일 생성
3) 생성한 드라이버 파일을 이용한 커널 모드(Kernel Mode) 은폐 기능 수행
4) 생성한 파일들에 대한 파일 및 레지스트리 은폐 기능 수행
5) 실행한 인터넷 익스플로러의 프로세스 및 네트워크 포트 은폐 기능 수행
6) 실행한 인터넷 익스플로러를 이용하여 외부 특정 시스템으로 접속 시도
7) 접속한 시스템을 통하여 제3의 시스템으로 재접속 후 공격자의 명령 수행
8) 실행 중인 모든 프로세스에 스레드 (Thread)로 인젝션 (Injection)하여
사용자가 입력하는 모든 키보드 입력을 후킹 (Hooking)
1. 악성코드 분석 사례
![Page 3: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/3.jpg)
3
2. 파일 형태 분석
헥사 코드(Hex Code)를 분석할 수 있는 유틸리티를 이용하여 파일 형태 분석
윈도우에서 실행이 가능하도록 제작된 PE (Portable Executable) 파일
.text, .rdata, .data의 3개의 PE (Portable Executable) 섹션 (Section)을 가지고 있음.
1. 악성코드 분석 사례
![Page 4: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/4.jpg)
4
3. 파일 구조 분석
파일의 구조를 분석할 수 있는
유틸리티를 이용하여 파일의
구조 분석
단독으로 윈도우에서 실행이 가능
하도록 제작된 실행 파일
비주얼 C++로 제작
메모리에서 시작 주소는 0x403466
1. 악성코드 분석 사례
![Page 5: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/5.jpg)
5
4. 윈도우 API 분석
파일의 IAT (Import Address Table)
분석 툴로 윈도우 API 분석
다음의 API들을 사용함으로 정상 파일
이 아닐 것으로 추정
GetSystemDirectoryA
Process32Next
CreateRemoteThread
GetModuleHandleA
WriteProcessMemory
OpenProcess
AdjustTokenPrivileges
OpenProcessToken
LookupPrivilegeValueA
1. 악성코드 분석 사례
![Page 6: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/6.jpg)
6
5. 파일 내부 문자열 분석
파일의 내부 문자열 (String)을 분석할 수 있는 유틸리티를 이용하여 분석
파일 내부 문자열 (String)에서는 정상 파일 또는 악성코드로 추정되는 특별한
내부 문자열을 확인 할 수 없음
1. 악성코드 분석 사례
![Page 7: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/7.jpg)
7
6. 파일을 시스템에서 실행
시스템 변화를 분석 할 수 있는 유틸리티를 이용하여 파일을 시스템에서 실행 후
시스템 변화 분석
생성된 파일은 없으나 레지스트리 키 값 생성으로 특정 드라이버 파일을 서비스로 등록
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\yncqjmkq "ImagePath"Type: REG_EXPAND_SZData: C:\WINDOWS\system32\drivers\yncqjmkq.sys
파일이 드라이버 파일을 생성하고 윈도우 서비스로 레지스트리에 등록한 것으로 확인
레지스트리 분석 유틸리티를 이용하여 해당 레지스트리 키 값을 검색해보았으나 정상 윈도우모드에서 확인되지 않음
해당 드라이버 파일을 윈도우 시스템 폴더의 드라이버 폴더에서 검색 해보았으나정상 윈도우 모드에서 확인되지 않음
1. 악성코드 분석 사례
![Page 8: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/8.jpg)
8
7. 파일 실행 후 네트워크 분석
네트워크 포트와 패킷을 분석할 수 있는 유틸리티를 이용하여 시스템의 네트워크 분석
사용되는 포트가 없으나 특정 시스템으로 접속하는 네트워크 패킷이 분석됨
1. 악성코드 분석 사례
![Page 9: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/9.jpg)
9
8. 파일 실행 후 시스템 추가 분석 (1)
현재까지 분석 상황으로 미루어 은폐형 악성코드로 의심됨으로 은폐 기능을
탐지 할 수 있는 유틸리티로 시스템 분석
은폐 기능 탐지 유틸리티를 이용하여 인터넷 익스플로러가 은폐되어 있는 것을 탐지
그 외의 파일들이 윈도우 시스템에서 은폐되어 있는 것을 탐지
1. 악성코드 분석 사례
![Page 10: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/10.jpg)
10
실행 파일이 생성한 파일들의 현재 상태를 유틸리티를 이용하여 추가 분석
실행 파일이 생성한 YNCQJMKQ.D1L 은 은폐된 인터넷 익스플로러에 핸들 (Handle)로 실행
실행 파일이 생성한 YNCQJMKQ.DLL 은 실행 중인 프로세스들에 스레드 (Thread)로
인젝션 (Injection)
9. 파일 실행 후 시스템 추가 분석 (2)
1. 악성코드 분석 사례
![Page 11: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/11.jpg)
11
10. 파일 디버깅 및 디스어셈블링 (1)
실행 파일을 OllyDbg 를 이용하여 디버깅
실행 파일이 실행되면 시스템 사용자 계정의 임시 폴더 경로 확보
임시 폴더에 YNCQJMKQ.tmp, YNCQJMKQ.d1l 과 YNCQJMKQ.log 파일 생성
1. 악성코드 분석 사례
![Page 12: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/12.jpg)
12
11. 파일 디버깅 및 디스어셈블링 (2)
윈도우 시스템 폴더 경로 확보 후 생성한 파일들 중 YNCQJMKQ.tmp 는 YNCQJMKQ.dll 로
파일명을 변경하여 윈도우 시스템 폴더로 복사
YNCQJMKQ.d1l 은 명칭 변경 없이 윈도우 시스템 폴더로 복사
복사 이후 YNCQJMKQ.sys를 윈도우 시스템 폴더 아래의 drivers 폴더에 생성
인터넷 익스플로러를 실행한 후 YNCQJMKQ.d1l 를 인터넷 익스플로러의 핸들(Handle)로
등록 후 실행
1. 악성코드 분석 사례
![Page 13: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/13.jpg)
13
12. 파일 디버깅 및 디스어셈블링 (3)
YNCQJMKQ.d1l 는 실행된 인터넷 익스플로러를 통해 다음 함수들을 이용하여 파일내
하드코딩 된 주소의 특정 시스템으로 접속 후 파일 다운로드
InternetSetOptionA, InternetOpenA, InternetOpenUrlA, InternetReadFile
1. 악성코드 분석 사례
![Page 14: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/14.jpg)
14
13. 파일 디버깅 및 디스어셈블링 (4)
YNCQJMKQ.d1l 는 다음 함수들을 호출
YNCQJMKQ.sys를 윈도우 서비스로 실행
OpenSCManagerA, OpenServiceA
CreateServiceA, StartServiceA
YNCQJMKQ.sys는 KeServiceDescriptorTable 을 이용 하여
SSDT (System Service Descriptor Table) 후킹 (Hooking)을 하여 은폐 기능을 수행
ZwCreateFile, ZwQueryKey, ZwEnumerateValueKey, ZwEnumerateKey ZwQuerySystemInformation, ZwQueryDirectoryFile
1. 악성코드 분석 사례
![Page 15: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/15.jpg)
15
14. 파일 디버깅 및 디스어셈블링 (5)
YNCQJMKQ.dll를 CreateRemoteThread 함수를 이용 실행 중인 프로세스들에 스레드(Thread)
로 인젝션(Injection) 후 실행
인젝션된 YNCQJMKQ.dll는 다음 함수들을 이용하여 사용자가 입력하는 키보드 입력을 후킹
SetWindowsHookExA, CallNextHookEx, GetKeyboardState,
1. 악성코드 분석 사례
![Page 16: 3. 악성코드 분석 사례](https://reader030.vdocuments.pub/reader030/viewer/2022013108/557a9327d8b42ac2638b5427/html5/thumbnails/16.jpg)
Q&A
감사합니다