도구를 이용한 패킹 여부 확인
PEiD와 Exeinfo PE는 파일의 컴파일 언어와, 패킹 여부를 확인할 수 있는 정적 분석 도구이다.
UPX는 압축 도구로 패킹과 언패킹이 가능한 도구이다.
패킹(Packing)이란?
- 기존의 파일들을 압축, 기존 파일들의 주소값, 데이터 크기, 문자열 정보 등이 변경됨
- 패킹을 하면 Import Adress Table, String 정보가 어느정도 감춰져 있다.
- 도구를 사용하여 패킹 여부를 확인하고 파일이 패킹되어있는 경우 언패킹하여 상세하게 분석을 한다.
PEiD 기능 및 활용법
그림1의 PEiD 아이콘을 더블클릭 후 파일을 불러온다.
그림2의 우측 상단의 빨간 박스에서 파일 경로를 불러오거나, 파일을 드래그 앤 드랍하여 파일을 가져온다.
파일을 불러오면 파일의 경로와, 어떤 언어로 컴파일 되어 있는지 확인할 수 있다.
Microsoft Visual C++6.0 으로 컴파일 된 것으로 보아 Lab01-01.exe 파일은 패킹되지 않은 파일임을 알 수 있다. 패킹되어 있는 경우 Microsoft Visual C++6.0 부분에 패킹 툴의 정보가 출력된다.
Lab01-02.exe 파일을 가져온다.
그림4의 EP Section 확인 시 UPX1이 확인된다. 이는 UPX라는 툴로 패킹되었다는 의미로, 상세 스캔을 위해 우측 하단의 -> 아이콘을 클릭하여 Deep Scan 또는 Hardcore Scan 으로 스캔을 진행한다.
Normal Scan: Entry Point를 스캔
Deep Scan: Entry Point를 포함하는 Section에서 스캔
Hardcore Scan: 파일 전체에서 스캔
그림5를 보면 PEiD 하단에 UPX 0.89.6 -1.02 문자열이 확인되며, 이는 UPX 패킹 툴을 사용하여 패킹한것을 확인할 수 있다.
Exeinfo PE 기능 및 활용법
그림6의 Exeinfo PE 아이콘을 더블클릭하여 실행한다.
그림7의 좌측 상단 File을 클릭하여 파일 경로를 불러오거나, 드래그 앤 드랍하여 파일을 가져와 분석한다.
그림8의 EP Section 확인 시 .text로 기본 섹션으로 확인되며 하단에는 Microsoft Visual C++ 로 보아 패킹이 되지 않는 파일로 판단된다. 만약 패킹된 파일인 경우 섹션의 이름이 .text 가 아닌 UPX 등 다른 이름으로 변경되어 있다.
그림9의 EP Section이 UPX1로 확인되며, 이는 그림8의 EP Section과 다르게 섹션 이름이 변경된 것으로 보인다.
하단의 빨간 박스 내에 UPX 0.89 - 4.23 로 확인되며 이는 UPX 라는 패킹 툴로 패킹 된 것을 확인 할 수 있다.
이처럼 특정 패킹 툴로 패킹된 경우 언패킹 툴을 활용하여 해당 파일을 언패킹 후 파일 분석을 해야 한다.
(패킹된 파일 분석 시 정보가 많이 감춰져 있어, 정보 수집이 제한되므로 언패킹 후 정보를 확인한다.)
UPX 활용 방법
UPX는 컴프레서(압축도구)로 패킹과 언패킹이 가능한 도구이다. (UPX로 패킹된 파일만 언패킹이 가능하다.)
인터넷에서 UPX 를 검색하여 설치 후 실행해본다.
UPX는 설치 후 CMD 창(명령 프롬프트 창)을 사용하여 패킹과 언패킹 할 수 있다.
UPX와 UPX를 통해 언패킹할 파일을 동일 경로에 놓는다.
경로 → C:\malware\upx
window + R 입력 후, cmd를 입력하여 관리자 권한으로 실행한다.
cd C:\malware\upx를 입력하여 upx 폴더로 이동 후, upx를 입력하여 upx 프로그램 정보를 확인한다.
분석할 악성코드 파일을 복사한다.(언패킹 후 원본 파일 구분을 위해서 복사한다, UPX 언패킹 후 동일한 파일명일 경우 덮어쓰기가 된다.)
그림13의 경우 Lab01-02.exe를 언패킹하여 분석할 예정으로, Lab01-02 - Copy.exe 파일은 패킹된 파일로 남겨질 것이다.
upx -d Lab01-02.exe를 입력하여 언패킹(압축해제)한다.
기존의 Lab01-02.exe 파일에 언패킹한 Lab01-02.exe 파일이 덮어진다.
Lab01-02.exe와 Lab01-02-copy.exe 는 용량 차이가 있다.
16kb(언패킹) vs 3kb(패킹)
PEiD로 언패킹 후 파일을 확인해본다.
기존의 패킹된 파일의 경우(그림4, 그림5 참고)와 달리 EP Section 정보와 컴파일 언어 정보가 변경된 것을 확인할 수 있다.
이를 통해 UPX로 언패킹이 완료된 것을 확인할 수 있다.
추후 정적 분석 도구들을 활용하여 패킹된 파일과 언패킹된 파일 비교 시 파일에서 얻을 수 있는 정보 차이를 확인해본다.
'보안 > 악성코드 분석' 카테고리의 다른 글
PE 헤더 분석 도구 (PEview, pestudio) 기능 및 사용법 (4) | 2024.07.23 |
---|---|
악성코드 분석 시 파일 내 문자열 확인 도구 (BinText, Strings) 기능 및 사용법 (3) | 2024.07.22 |
Virustotal 기능 및 사용법 / 악성코드 기초 분석 (0) | 2024.07.20 |
악성코드 분석 업무 설명 (0) | 2024.07.02 |
침해사고 분석 이해 (0) | 2024.07.01 |