Portable Executable Scanner(pescanner)

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개

Portable Executable Scanner는 휴대용 실행 파일인 PE파일을 검색하여 다양한 메타데이터와 함께 출력해주는 도구이다. 본 도구는 Windows의 CLI로 64비트와 32비트를 둘 다 지원한다. 한글은 지원되지 않기 때문에, 분석하려는 파일의 경로명을 주의하여야 한다.
상용 소프트웨어이며, ‘https://tzworks.net/’ 에서 도구 라이선스 구매 정보를 확인할 수 있다. 또한, Windows, Linux, Mac OS X에서의 실행을 지원한다.

사용법

실행파일의 이름은 비트에 따라 pescan64.exe(64비트) 또는 pescan.exe(32비트)로 구분된다. 도구 실행 시, 분석하려는 PE 파일을 필수로 입력해야 한다. Windows의 dir과 파이프(|)를 이용하여 자동으로 PE 파일을 검색할 수도 있다. [표 1]는 본 도구의 옵션에 대한 설명이다. [표 2]는 사용법에 대한 몇 가지 예시이며, 이를 응용하여 사용할 수 있다.

[표 1] pescan 옵션 설명
옵션 설명
-csv 데이터 필드를 쉼표로 구분한다.
-hostname <name> host 레코드에 지정 이름 입력한다. (영어)
-pipe 여러 파일을 한 번에 입력할 때, 데이터를 파이프로 구분한다.
-out <results file> results file로 결과 출력(라이선스 정보 제외)
-peid <peid file> PEiD와 비슷한 기능으로, PE 파일의 엔트리 포인트를 스캔하여 패킹 툴을 출력한다.
[-section | -full] 서브 옵션인 –section은 식별된 엔트리 포인트만 스캔하고, -full은 PE 파일의 모든 부분을 스캔하기 때문에 속도가 느려진다. 디폴트는 –section이다.
-msg_table PE 파일 내 모든 메시지 테이블의 압축을 해제하여 출력한다.

(-csv 옵션과 함께 사용 불가)

-wevt_temp PE 파일 내 모든 이벤트 로그 템플릿을 압축을 해제하여 출력한다.

(-csv 옵션과 함께 사용 불가)

-dump_entrypt <# bytes> PE 엔트리 포인터에서 # bytes만큼 16진수 데이터를 덤프한다.
-md5 PE 파일의 MD5 해시를 출력한다.
-sha1 PE 파일의 SHA1 해시를 출력한다.
-anomalies 패킹되거나 이례적인 PE 구조 찾으며, rating 점수가 높을수록 더 조사해봐야 하는 PE 파일이다.
-rating <min rating> -anomalies 옵션의 최소 점수를 설정하여, 설정한 점수 이상의 PE파일만 출력한다.

-rating 옵션만으로도 단독 사용 가능하다.

-dateformat yyyy/mm/dd 날짜 출력 형식을 변환한다.

(디폴트는 mm/dd/yyyy이며, yy/mm/dd, mm/dd/yy 등 원하는 형식으로 변환 가능)

-timeformat hh:mm:ss 초 시간 출력 형식을 변환한다.

(디폴트는 hh:mm:ss.xxx이며, 마이크로초(xxxxxx), 나노초(xxxxxxxxx) 또는 초까지만 출력할 수 있도록 변환 가능)

-no_whitespace 필드 값과 구분자 사이의 공백을 제거한다.
-quiet 명령 창에 파싱 과정을 보여주지 않고 생략한다.
-csv_separator "|" csv의 쉼표 구분자를 다른 문자로 변경한다.
-base10 크기 또는 주소를 출력할 때 10진수로 출력한다.

(디폴트는 16진수)


[표 2] pescan 명령 및 옵션 사용법의 예시
기본 사용법 > pescan.exe input.exe
   [도구명]  [Input]
디렉터리 자동 스캔 > dir “C:\Windows\*.exe” /s /b | pescan.exe –pipe

  [dir] [디렉터리 경로]   [옵션][파이프][도구명] [옵션]

파싱 결과 출력 > pescan.exe input.exe –out result.txt

> pescan.exe input.exe > result.txt
> pescan.exe input.exe –csv > result.csv

PEiD 옵션 > dir “C:\Windows\*.exe” /s /b | pescan.exe –pipe –csv

   –peid userdb.txt –full > result.csv

anomalies, rating 옵션 > dir “C:\*.exe” /s /b | pescan.exe –pipe –anomalies –rating 10 > result.txt

> dir “C:\*.exe” /s /b | pescan.exe –pipe –rating 10 > result.txt

dump_entrypt 옵션 > pescan.exe input.exe –dump_entrypt 30 –out result.txt



[그림 1]은 pescan을 실행하여 .csv 파일로 출력한 결과이다.

[그림 1] pescan 실행 결과
[그림 1] pescan 실행 결과



‘-peid’ 옵션의 <peid file>은 PEiD라는 도구에서 사용되는 파일이며, PE 파일의 시그니처를 정리한 파일이다. 각 PE 파일의 시그니처를 통해 어느 도구를 통해 패킹되었는지를 알 수 있다. 일반적으로 이 파일은 ‘userdb.txt’라는 이름으로 일반 사용자들도 직접 작성을 할 수 있으며, 웹 서치를 통해 구할 수 있다. [그림 2]는 PEiD 시그니처 파일의 포맷의 예시이다. 이 포맷에 맞춰 사용자가 직접 지속적인 업데이트를 할 수 있다. 아래에 나열된 주소는 PEiD 시그니처 파일을 구할 수 있는 몇 가지 참조 URL이다.

(1) http://research.pandasecurity.com/blogs/images/userdb.txt
(2) https://reverse-engineering-scripts.googlecode.com/files/UserDB.TXT

[그림 2] PEiD 시그니처 파일 예시
[그림 2] PEiD 시그니처 파일 예시



도구 기능

본 도구의 주요 기능은 실행 파일을 찾아 분석해주는 것이다. cmd 명령어를 통해 설정한 경로의 PE 파일을 모두 찾아서 동시에 입력하는 것이 가능하다. 다음은 본 도구의 기능을 나열한 것이다. 분석 결과는 .csv 파일로도 출력 가능하며, 각 파일의 해시를 출력할 수도 있다. 패킹되거나 일반적이지 않은 PE 구조를 가진 파일을 알려주는 기능도 존재한다.

제한사항

본 도구는 Windows, Linux, Mac OS X를 모두 지원하지만, Mac OS X의 경우 32비트는 지원하지 않는다.

수사 활용 방안

본 도구는 라이브/덤프 상태에서 모두 사용할 수 있기 때문에, PE 파일을 분석해야하는 어느 상황에서도 활용할 수 있다.