본문 바로가기
악성코드 분석

악성코드 분석 9

by 윤라경 2024. 9. 30.

[2024.09.25]

 

> 분석 파일: Lab01-03.exe

 

01. 자동화 분석

 

1) 분석 도구: Virustotal.com

2) 분석 결과: 66/73(V3, AlYac 모두 탐지)

 

 

 

02. 패킹 여부 확인

 

1) 분석 도구: PEiD, exeinfope

2) 분석 결과: FSG 패커로 패킹됨

 

 

FSG 1.0이 나와 있기 때문에 패킹되어 있는 상태다

 

 

PEiD와 비슷한 구조로 현재 패킹되어 있는 것을 확인할 수 있다

 

 

03. PE 구조 확인

 

1) 분석 도구: PEView, PEStudio

2) 분석 결과

 

 

 

현재 PE 구조를 살펴보면 섹션 수가 없는 것을 확인할 수 있다

 

 

또한, 이렇게 virustotal에서 확인한 바이러스와 imports, strings를 확인할 수 있다

 

 

04. 해시 값 계산

 

1) 분석 도구: HashCalc, WinMD5

2) 분석 결과: 9c5c27494c28ed0b1485b346b113f145

 

 

 

해시 값 계산을 위해 HashCalc와 WinMD5 프로그램을 이용하여 확인 시

같은 파일로 둘 다 같은 MD5의 해시 값을 띄우는 것을 볼 수 있다

 

 

이번에는 문자열 확인을 위해 cmd 창으로 strings를 이용하여 텍스트 파일을 생성한다

 

 

이런 식으로 사용하지 않는 문자열과 뒤섞여 실행 문자열이 나타나게 된다

현재 화면으로 알 수 있는 것은 kernel32.dll, LoadLibraryA, GetProcAddress가 있다

 

 

문자열 확인을 위해 D/W도 사용했다

확인할 수 있는 건 위의 스트링 텍스트 파일과 동일하게

kernel32.dll과 LoadLibraryA, GetProcAddress가 있었다

 

 

> VMUnpacker로 언패킹

 

 

VMUnpacker로 언패킹을 진행하려고 한다

해당 프로그램을 실행 후에 파일을 찾아서 넣고 unpack을 누르면 언패킹이 진행된다

 

 

ollydbg에서도 언패킹 파일로 변환할 수 있는데 상단의 옵션 -> 디버깅 옵션을 선택한다

 

 

현재 Stop at entry self-extractor로 설정하면 기본 패킹되어 있는 파일이 나타난다

 

 

하지만 보기의 Trace real entry bytewise(very slow!)를 누르게 되면,

기존의 패킹되어 있는 파일을 열게 될 시 언패킹 상태로 변경되어 나타난다

 

 

현재의 화면처럼 401000이 시작 지점으로 언패킹 상태인 것을 확인할 수 있다

 

 

PEView로 패킹 파일와 언패킹 파일을 비교했을 때

패킹 파일은 3개의 Sections를 탐지하고, 언패킹 파일은 4개의 Sections를 찾는 걸 볼 수 있다

 

 

언패킹 상태에서 확인했을 때는 table이 보이지만

 

 

패킹 상태의 파일에서는 table을 확인할 수 없다

 

 

현재 ole32.dll 오류가 대표적으로 해당 오류는 대부분 손상되었을 때 알려 주는 오류다

 

 

upx를 통해 언패킹 상태 유무를 확인하고 언패킹 파일로 진행한다

 

 

UPX FXG든 패킹될 시 IMPORT 부분이 사라지게 되어 분석이 불가하다

 

 

PEStuiod로 확인했을 때도 66개나 검색되던 게 45개로 갯수가 줄어 있는 걸 볼 수 있다

언패킹 되면 악성코드로 식별할 수 있는 엔진이 줄어든다는 뜻이다

 

 

첫 번째의 자동화 분석에서는 66개를 탐지했지만,

현재 언패킹 파일을 탐지했을 때 AlYac은 탐지하지만 V3는 탐지하지 못하고 있다

 

 

Dependency로 확인했을 때도 패킹 시에는 두 개만 나타났지만,

현재 언패킹 파일을 열었을 때 무수한 함수가 나타나는 것을 확인할 수 있다

 

 

PEStudio로 imports를 확인했을 때에도 패킹되어 있을 때보다 언패킹 시 많이 나오게 된다

 

 

05. 문자열 분석

 

> 분석 도구: OllyDBG, strings

> 분석 결과:

LoadLibrary

GetProcAddress

http://www.malwareanalysisbook.com/ad.html

 

*pestuido에서 실행 시 다양하게는 나오지만 상세하게 나오지는 않는다

 

 

 

ollydbg로 확인 시에도 조금 더 정확하게 나오는 걸 볼 수 있다

 

 

06. 호스트 기반 증거

 

> LoadLibrary

> GetProcAddress

 

 

07. 네트워크 기반 증거

 

> http://www.malwareanalysisbook.com/ad.html

 

 

 

네트워크 기반 증거로 스트링을 통한 텍스트 문서에서

www.malwareanalysisbook.com/ad.html의  주소를 확인할 수 있었다

 

 

마지막으로는 이렇게 ida로 정적 분석을 확인할 수도 있다

 

 

 

강의 소감

아직 순서에 익숙하지 않아 왔다 갔다 헷갈리는 부분이 많다

패킹 파일과 언패킹 파일을 비교 분석도 하며 기존 파일의 분석도 진행하여

조금 더 어려운 부분이 있는 것 같다

그렇지만 이런 분석 연습을 반복적으로 하다 보면 익숙해질 것 같다

앞으로도 수업 시간에 열심히 분석하고 집중해서 들어야 될 것 같다

'악성코드 분석' 카테고리의 다른 글

악성코드 분석 11  (0) 2024.09.30
악성코드 분석 10  (0) 2024.09.30
악성코드 분석 8  (0) 2024.09.30
악성코드 분석 7  (0) 2024.09.30
악성코드 분석 6  (1) 2024.09.20