[실습 1-1] Lab01-01.exe, Lab01-01.dll
1) Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?
Lab01-01.dll : 37개가 넘는 엔진에서 악성코드로 탐지하는 것을 확인할 수 있다.
Lab01-01.exe : 48개가 넘는 엔진에서 악성코드로 탐지하는 것을 확인할 수 있다.
둘 다 윈도우 32bits에서 동작한다는 것을 알 수 있다. 반복적으로 Trojan 형태가 보이는데 Trojan 형태로 은닉되어 있다가 활동하게 될 확률이 높은 것을 알 수 있다.
A. 악성코드의 시그니처로 판명된다. |
2) 이 파일의 컴파일 시점은?
컴파일 시점은 Time Stamp 정보를 통해서 알 수 있었다. PEFile 헤더를 확인한다.
Lab01-01.exe 파일의 Time Data Stamp를 봤을 때 2010/12/19일에 컴파일 되었다는 것을 알 수 있다.
Lab01-01.dll 파일의 Time Data Stamp를 보면 2010/12/19에 컴파일 된 것을 알 수 있다.
Lab01-01.exe와 Lab01-01.dll이 컴파일 된 날짜가 같고 시간 또한 19초 차이밖에 나지 않는 것을 알 수 있었다.
A. PEView의 IMAGE_NT_HEADER/IMAGE_FILE_HEADER의 Time Data Stamp를 보면 동일한 날짜에 19초 차이로 컴파일 된 것을 알 수 있다. 따라서 이 두 개의 파일은 같은 패키지로 판단된다. exe가 실행되고 dll을 동적으로 호출하는 구조로 판단된다. |
3) 패킹이나 난독화의 흔적이 있는가? 이유는?
A. 두 파일 모두 Visual C++에서 정상적으로 컴파일한 파일로 패킹의 징후는 없다. 또한, EP Section(프로그램 시작 지점) 정보도 제대로 보인다. |
4) 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
[ import를 보고 악성코드 행위 판단 ]
A. - Lab01-01.exe 파일은 Kernel32.dll과 Msvcrt.dll을 import 하고 있으나 대부분의 파일에서 import 하는 파일이다.
- 구글링을 통해 함수의 기능을 알아보았더니 CopyFile, CreateFile로 파일을 복사하거나 생성하는 기능을 한다는 것을 알 수 있다. - FindFirst, FindNextFile로 파일을 탐색하는 행위를 하고 있다. |
A.
- xs2_32.dll을 import 하기 때문에 네트워크 연결 작업을 수행할 것으로 판단된다.
- Lab01-01.dll의 import 함수 부분에서 CreateProcess와 Sleep을 사용하고 있다. 백도어 프로그램을 실행하고 백그라운드에서 실행을 대기하고 있도록 한다. |
5) 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
A. Kernel32.dll이 정상적 import 파일인데, Kernel32.dll을 import 하는 것은 kerner32.dll인 것처럼 위장하여 import하는 것으로 판단된다. 시스템에 악성코드 kernel32.dll을 배포해서 실행하도록 할 수 있다. Lab01-01.exe 파일이 Lab01-01.dll 파일을 실행시킨다. |
네트워크 기반 증거 확인
A. 문자열을 보면 ws2_32.dll(네트워크 사용)과 함께 exec, sleep이 수행되는데 프로그램을 네트워크상으로 수행(exec)시키고 백그라운드에서 대기(sleep)하도록 한다. 127.26.152.13이라는 IP 주소가 나오는 것을 봐서는 해당 주소지와 연결되어 수행할 것이라고 판단된다. |
6) 이 파일의 목적은 무엇이라고 판단하는가?
A. 두 개의 파일이 비슷한 시기에 만들어졌고 exe 파일이 파일을 검색하고 생성하고 dll을 실행시키는 것을 보면 dll에서 네트워크 기반의 작동을 하기 때문에 dll이 일종의 백도어로 판단된다.
[실습 1-2] Lab01-02.exe
1) Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?
52개가 넘는 엔진에서 악성코드로 탐지하는 것을 확인할 수 있다.
윈도우 32bits에서 동작한다는 것을 알 수 있다. 반복적으로 Trojan 형태가 보이는데 Trojan 형태로 은닉되어 있다가 활동하게 될 확률이 높은 것을 알 수 있다.
A. 악성코드의 시그니처로 판명된다. |
2) 패킹이나 난독화의 흔적이 있는가? 이유는?
컴파일러에 관련된 정보가 누락되었다. EP Section을 확인해보니 일반 파일과 같이 .text 파일이 아닌 것을 확인할 수 있다. 또한, upx1이라고 되어있는 것을 보니 upx로 패킹되었다는 것을 알 수 있다.
파일을 언패킹한 후, 다시 PEID로 확인하였다. .text와 Microsoft Visual C++로 된 것을 알 수 있다.
A. 처음 PEID에서 확인하였을 때 UPX 패킹이 되어있는 파일이었다. 언패킹을 하였더니 Visual C++에서 컴파일 했다는 것을 알 수 있었고 EP Section(프로그램 시작 지점) 정보도 제대로 보이는 것을 볼 수 있다. |
3) 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?
A.
CreateServiceA 함수: 특정 서비스를 생성하고 등록하는 역할을 한다. 사용하면 서비스의 이름이 반드시 파라미터 값으로 들어오게 된다. Strings를 통해 알 수 있다. InternetOpen 함수는 인터넷 서비스를 생성하고 인터넷으로 작업을 한다는 것을 알 수 있다. |
5) 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
A. 인터넷 URL, Service 이름을 확인할 수 있었다. 정황상 이 사이트에 접속할 확률이 높다.
|
6) 이 파일의 목적은 무엇이라고 판단하는가?
A. 인터넷 서비스를 이용하여 특성 사이트에 접속할 수 있다.
[실습 1-3] Lab01-03.exe
1) Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?
47개가 넘는 엔진에서 악성코드로 탐지하는 것을 확인할 수 있다.
윈도우 32bits에서 동작한다는 것을 알 수 있다. 반복적으로 Trojan 형태가 보이는데 Trojan 형태로 은닉되어 있다가 활동하게 될 확률이 높은 것을 알 수 있다.
A. 악성코드 시그니처로 판단된다. |
2) 패킹이나 난독화의 흔적이 있는가? 이유는?
EP Section의 정보가 나오지 않는다. 컴파일 이름에 FSG 1.0이라고 나오는 것을 볼 수 있다. 패킹의 흔적이다.
언패킹 후 Visual C++로 언패킹 된 것을 볼 수 있다.
A. 패킹의 흔적을 찾을 수 있고 언패커를 검색해서 패킹을 해지한다. 패킹을 했다는 것은 난독화를 했다는 것이기 때문에 악성코드로 충분히 의심할 수 있다. |
3) 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?
A. 특별한 import를 사용하지 않는다. 그렇기 때문에 이 import만 보고는 판단하기 어렵다. |
4) 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
특정 URL이 있는 것을 볼 수 있다.
6) 이 파일의 목적은 무엇이라고 판단하는가?
A. 패킹이 된 것을 보면 공격자가 내용을 숨기려는 의도가 있다는 것을 알 수 있다. 네트워크 주소가 나와있는 것을 봐서 해당 사이트와 연관이 있어 보인다.
'Malware > 윈도우즈 보안과 악성코드 기초' 카테고리의 다른 글
[악성코드] 7주차, 동적분석 (0) | 2021.11.19 |
---|---|
[악성코드] 5주차 과제 (0) | 2021.11.19 |
[악성코드] 4주차 과제 (0) | 2021.11.19 |
[악성코드] 3주차, 문자열 패치 실습 (0) | 2021.11.19 |
[악성코드] 2주차 과제 (0) | 2021.11.19 |