Chapter_1L.zip
악성코드 분석 Study 1주차
실습 1-1
이 실습은 Lab01-01.exe와 Lab01-01.dll 파일을 사용한다. 파일에 관한 정보를 얻으려면 1장에서 사용한 기법과 도구를 사용하고 다음 질문에 대답해보자.
질문
1. http://www.VirusTotal.com/에 파일을 업로드한 후 보고서를 보자. 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가?
- Avast의 Win32:Malware-gen와 Ikarus의 Win32.Malware
2. 이 파일은 언제 컴파일됐는가?
- Lab01-01.exe는 2010/12/19 16:16:19 UTC, NT Header의 IMAGE FILE HEADER의 Time Date Stamp에서 확인 가능
Lab01-01.dll은 2010/12/19 16:16:38 UTC
3. 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가?
- 없다. PEiD 결과 값 : Microsoft Visual C++ 6.0 이며, PEView를 통해서 보면, 헤더 및 섹션 부분에 정상적으로 표기
4. 임포트를 보고 악성코드 행위를 알아낼 수 있는가? 그렇다면 어떤 임포트인가?
- 굳이 뽑아내자면, CreateFileA, CopyFileA에서 파일에 대한 생성 및 복사
conotrolfp에서 파일의 포인터 변경 시, stricmp 이름 비교하는 API를 뽑을 수 있을 것 같다.
5. 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
- Strings를 보면, C:\Windows\system32\kernel132.dll을 확인 가능, kernel32.dll 위장한 파일로 추측
6. 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
- Lab01-01.dll을 보면 127.26.152.13과 통신할 것 처럼 보이는 string 값 확인
WS2_32.dll 사용하는 것으로 보임
7. 이 파일의 목적은 무엇이라 판단했는가?
- 현재 이 파일은 실행되지 않는다. 하지만, 위에서 확인한 값들을 종합해서 생각해보면 kernel32.dll을 위장한 dll 파일 생성 한 후, CreateProccessA 를 사용해 실행시킨다. 그리고 127.26.152.13과 통신을 통해 이후 악성행위를 지속할 수 있다.
------------------------------------------------------------------------------------------------------------
실습 1-2
Lab01-02.exe 파일을 분석하라.
질문
1. http://www.VirusTotal.com/에 Lab01-02.exe 파일을 업로드하자. 기존 안티바이러스에 정의된 것과 일치하는가?
- VT 결과 18/48 결과값이 나온다. 그 중 Ahnlab을 확인해보면 Trojan/Win32.StartPage 확인된다.
결과 이름으로 봤을 때, 감염 PC의 시작페이지를 변경하는 행위를 하는 것으로 생각이 된다.
2. 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가? 파일이 패킹돼 있다면 언패킹해보자.
- PEiD를 이용해 봤을 때, UPX로 패킹이 되어있다
3. 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?
- 일단 Unpacking 전 Import API를 확인해보면,
VirtualProtect, VirtualAlloc, VirtualFree - 메모리 접근할 수 있도록 할당
ExitProcess - 프로세스 종료
CreateServiceA - 서비스를 생성하는 역할
InternetOpenA - 인터넷 접속을 위한 역할
4. 감염된 시스템에서 악성코드를 인식하는데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했는가?
- 특별한 네트워크 행위 보이지 않으나 http://wwareanysisbook.coom (패킹된) URL 등을 보아 DNS 쿼리 후, IP 획득하여 통신하려고 하는 것으로 생각됨
------------------------------------------------------------------------------------------------------------
실습 1-3
Lab01-03.exe 파일을 분석하라
질문
1. http://www.VirusTotal/에 Lab01-03.exe 파일을 업로드하자. 기존 안티바이러스에 정의된 것과 일치하는가?
- VT에 38/48 되고 있으며, Ahnlab의 경우 Trojan/Win32.Genome으로 탐지
2. 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가? 파일이 패킹돼있고 가능하다면 언패킹해보자.
- FSG 1.0 -> dulek/xt 패킹 되어 있다.
.
3. 임포트를 보고 악성코드의 기능을 알아낼 수 있었는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?
- LoadLibrary와 GetProcAddress를 확인할 수 있는데, 해당 API 2개를 가지고 import된 DLL의 API를 수동으로 계산해낼 수 있다.
4. 감염된 시스템에서 악성코드를 인식하는데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했는가?
- ole32.OleInitialize, ole32.CoCreateInstance 사용하고 있다. COM 객체르 사용해서
http://malwareanalysisbook.com/ad.html를 인터넷 익스플로러로 호출한다.
------------------------------------------------------------------------------------------------------------
실습 1-4
Lab01-04.exe 파일을 분석하라
질문
1. http://www.VirusTotal/에 Lab01-04.exe 파일을 업로드하자. 기존 안티바이러스에 정의된 것과 일치하는가?
- VT 결과 38/48로 상당히 많이 탐지돼었다. 안랩의 경우, Downloader/Win32.Dlder로 탐지된다.
2. 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가? 파일이 패킹돼있고 가능하다면 언패킹해보자.
- PEiD 결과 Microsoft Visual C++ 6.0 로 패킹이 되지 않았다고 1차적 판단 가능하며
PeView를 통해서도 특이한 섹션 이름을 가진 것이 없고, 특이한 흔적이 보이지 않아 패킹되지 않았다고 볼 수 있다.
3. 이 프로그램은 언제 컴파일 됐는가?
- IMAGE NT Header의 IMAGE FILE HEADER의 Time Date Stamp에서 2019/08/30 22:26:59 UTC 확인 할 수 있다.
4. 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?
- OpenPRocessToken, LookupPrivilegeValueA, AdjustTokenPrivileges : 시스템 접근 권한 변경
- WinExec, CreateRemoteThread, GetWindowsDirectoryA, OpenProcess : 파일 실행, dll 인젝션 및 윈도우 디렉토리 접근, 프로세스 접근
- controlfp, stricmp : 파일 포인터 및 이름 비교
5. 감염된 시스템에서 악성코드를 인식하는데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했는가?
- 실행 시, 윈도우 업데이트 서버에 접속하지만, Wireshark의 HTP Object list를 보면, 실제 www.practicalmalwareanalysis.com에서 updater.exe를 다운로드 받는다. 이에 대한 값은 파일의 string 값에서도 확인이 가능하다.
- ad.html을 GET하면, 응답값으로 Location으로 http://practicalmalwareanalysis.com/?post_type=feedback&p=191응답, 이후는 404not found
6. 이 파일은 리소스 섹션에 하나의 리소스가 있다. Resource Hacker를 이용해 리소스를 점검하고 리소스를 추출해보자. 리소스로부터 무엇을 아라 수 있는가?
- 리소스에 PE 파일을 가지고 있다.