본문 바로가기

study/악성코드분석&리버싱

기초 정적 분석, lab01-02.exe

728x90

lab02를 진행해보겠습니다.

이전과 같은 방식으로 진행됩니다. 파일은 악성코드 예제인관계로 업로드가 되질않네요..

 

1. Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?

72개의 엔진 중에 54개에서 악성코드로 탐지하였습니다.

안티바이러스의 이름을 확인가능합니다. 

대부분 트로이목마라고 되어있는 것으로 보아 형태를 알 수 있고,

win32형태로 동작한다는 것,

그리고 downloader라는 단어가 나옴으로 인해 네트워크 기반으로 악성코드가 동작함을 유추할 수 있습니다.

 

이 파일은 win32 타입이고, 패커의 종류도 미리 알수 있습니다. upx패커인지는 peid를 통해 확인해보겠습니다.

import는 4가지 dll로 되어있는데, advapi32.dll은 익숙하지않은 dll이라 더 주의깊게 보아야겠습니다.

wininet.dll은 네트워크관련인 것으로 추정됩니다.

 

전체적인 구성도를 미리 볼 수 있는 부분입니다. 

 

 

2. 패킹이나 난독화의 흔적이 있는가? 이유는?

패킹이나 난독화는 악성코드 분석이 어렵게 하기위해 공격자들이 행하는 형태입니다. 

이것을 알아내기 위해 PEiD를 통해 패킹여부를 확인하였습니다.

샘플을 돌려보니 밑의 최종판단창에는 nothing found라고 되어있습니다. 

하지만 EP section부분에는 UPX1이라고 되어있습니다.

이것은 패킹종류이므로, UPX로 패킹이 되어있음을 알 수 있습니다.

 

언패킹을 해보겠습니다.

이전 실습에서 upx언패킹을 해보았기때문에 바로 진행해보도록 하겠습니다.

upx가 있는 폴더 안으로 해당 실습파일을 옮겨놓고 cmd창을 열겠습니다.

>>upx -d (패킹할파일이름).exe 

파일 사이즈는 3072에서 16384로 크게 늘어난 것을 확인할 수 있습니다.

포맷은 virustotal에서 보았지만, win32이고 pe파일입니다.

언패킹을 한 파일을 다시 peid에서 보도록 하겠습니다.

 

EP section도 pe파일의 시작 섹션인 .text로 돌아왔고, 컴파일 버전도 microsoft visual c++ 6.0버전으로 명시되어있습니다.

이제 악성코드 분석을 할 때 언패킹된 파일로 더 자세하게 분석을 할 수 있게 되었습니다.

 

3. import를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 import를 보고 알 수 있었는가?

언패킹한 것을 기준으로, dependency walker로 보겠습니다.

 

virustotal에서도 확인 가능했던, 4가지 dll의 종류를 볼 수 있습니다.

 

ADCAPI32.DLL

- createserviceA

서비스 오브젝트를 작성하여 지정된 서비스 제어 관리자 데이터베이스에 추가하는 함수입니다. 

관리자 데이터베이스에 무언가 추가하는 함수라고 하니 이후 나올 네트워크부분에서 아마 연결되어 받는 함수가 아닐까 싶습니다.

 

WININET.DLL

- InternetOpenUrlA

url을 통해 무언가를 받아오는 함수입니다.

이 함수를 통해 데이터를 받아 ADCAPI32.DLL에 있던 createserviceA함수를통해 서비스 제어 관리자 데이터베이스에 추가하는것같습니다.

 

-윈도우상에서 서비스를 해줄 수 있는 프로세서를 메모리상에 띄워주거나, url사이트에 접속하는 일들을 하는 api함수들임을 알 수 있습니다.

 

4. 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크기반의 증거는 무엇인가?

문자열을 볼 수 있는 string를 통해 확인해보겠습니다.

strings가 있는 폴더에 가서 > strings (분석하고자하는 파일명)--> 파일명은 아이콘 끌어오기로도 가능. 

역시나 앞에 보이는 this program cannot be run in DOS mode를 지나서, 밑으로 내려보겠습니다.

api함수들을 볼 수있습니다.

특히 눈여겨 보았던, createServiceA함수, internetOpenUrlA, ... 이 보입니다.

마지막 부분에 malservice와 어떤 url주소가 나옵니다.

 

아마도 internet~으로 시작한 두개의 api함수를 사용하면서 필요한 값이 아니였을까 생각이 듭니다.

malservice라는 서비스를 띄워주거나, url을 통해 무언가를 받아오던지 전달을 하는 것으로 추정이 됩니다. 

 

5. 최종 분석

- lab02는 악성코드로 의심이 되면서, upx패킹이 되어있고, 네트워크 기반의 시스템상에 서비스를 띄워주면서 특정 사이트에 접속을 한다는 것으로 판단이 가능합니다.

 

728x90
반응형