목차
1. 정적 분석 도구
- exeinfo
- peid
- peview
- bintext
- strings
2. 동적 분석 도구
- cports
- processMonitor
- processexplorer
- systemexplorer
- autoruns
- smsniff
- wireshark
1. 정적 분석 도구
- exeinfo
- 해당 파일이 어떤 언어로 컴파일이 되었는지, 패킹 여부와 패킹이 되었다면 어떤 툴로 패킹을 하였는지 확인이 가능한 도구
사용법
1. 왼쪽에 폴더 모양 박스를 클릭해 파일을 불러온다.
2. 위에서부터 파일이름, 파일 사이즈 등 이 있다.
3. Bandzip.exe로 해봤을때 Image is 64bit로 나왔는데 64bit의 의미는 64 bit로 구동이 된다는 것을 알려준다.
4. Bandzip.exe는 not packed이 되어있으므로 패킹이 되어있지 않으며 C++을 사용한 것을 알수있고 debug를 시도할 수 있는 방법도 알수있다.
5. 만약 패킹이 되어있다면 C++ 대신 UPX ~ 문구가 나온다.
- peid
- 해당 파일의 패킹 여부와 어떤 툴로 패킹을 하였는지 확인할 수 있는 도구
사용법
1. 왼쪽에 ...를 눌러 pe파일을 불러온다.
2. 위에서부터 파일을 스캔한 파일의 경로부터 ep section 등의 내용을 알수있다.
3. bintext파일은 패킹이 되어있지 않아서 Microsoft Visual C++ 6.0으로 컴파일한 것을 알수있다.
4. 만약 패킹이 되어있는 파일이라면 exeinfo와 같게 UPX 0.89 ~ 라는 문구가 나온다.
- peview
- PE파일의 구조를 분석 할 수 있는 도구
- 위의 그림에서 4D 5A (MZ)로 시작하는 것을 볼수가 있는데 MZ란 DOS에서 .EXE 실행 파일에 사용되는 파일형식으로 아스키 문자열로 4D 5A로 표시하고 MZ를 매직 넘버라고도 부른다.
- MS-DOS Sub Program 탭에서 dos mode로 실행이 되는지를 알수있다.
- IMAGE_FILE_HEADER 탭에서 Machine IMAGE FILE MACHINE I386은 intel x86 32bit 아키텍쳐를 지원하는 CPU에서 실행이 가능하다라는 것을 알수있다.
- 다음으로는 해당 파일의 섹션 갯수를 알수있다.
- Time Date Stamp는 해당 파일이 언제 생성이 되었는지 확인이 가능하다.
- Characteristics는 파일 형식의 관한 정보를 담은곳이라고 보면된다.
- 패킹여부를 확인하기 위해서는 IMAGE_SECTION_HEADER .text라는 탭으로 들어오고 이곳에서 패킹 여부를 의심 할 수 있다.
- Virtual Size와 Size Of Raw Data를 확인해 해당 파일의 패킹 여부를 파악할 수 있다.
- Virtual Size의 크기가 Size of Raw Data보다 크다면 패킹을 의심할 수 있다.
- 만약 패킹이 되어있지 않다면 두 값이 거의 유사하거나 같다고 한다.
- bintext
- bintext는 파일에 포함된 문자열들을 GUI의 형태로 보여주는 도구
- 해당 도구를 사용할시 언패킹을 진행한 후에 사용을 해야한다.
사용법
1. Browse를 눌러 파일을 불러온 후 Go를 눌러 스캔을 한다.
2. 스캔한 파일의 문자열을 아래로 나열한다.
3. 스캔한 파일의 DLL, EXE 등의 정보를 확인할 수 있다.
- Strings
- bintext와 같이 윈도우 환경에서 실행되는 실행 파일 또는 라이브러리에서 문자열을 추출하는 도구
사용법
1. cmd창을 열어 strings가 설치된 파일까지 이동을 한다.
2. 이동후 명령어 입력칸에 strings [옵션] 파일이름을 입력한다.
3. 입력하면 문자열이 나열된다.
2. 동적 분석 도구
- cports
- 현재 열려있는 모든 TCP/IP 및 UDP 포트 목록을 로컬 컴퓨터에 표시하는 네트워크 모니터링 소프트웨어
- 목록의 각 포트에 대해 프로세스 이름, 프로세스의 전체 경로, 프로세스의 버전 정보, 해당 포트를 여는 프로세스에 대한 정보도 표시된다.
- 위의 정보를 html, xml, 텍스트 포맷으로 저장을 할 수 있으며, cports는 버전정보와 다른 미확인 응용 프로그램이 포트를 사용하고 있을 경우에는 핑크색으로 표시를 해주기 때문에 트로잔 해킹툴등올 인해 사용자의 pc가 해킹당하는 지의 유무도 파악할 수 있다.
- processmonitor
- 현재 실행되고 있는 모든 프로세스들의 동작을 보여주는 도구
- 해당 프로세스가 시스템의 자원을 어떻게 사용하는지, 어떤 파일을 읽고 쓰는지, 어떤 레지스트리를 변경하는지 등을 실시간으로 기록하여 보여준다.
- 짧은 시간안에 상당히 많은 기록들이 보여지기 때문에 필터기능을 잘 활용하여 특정 프로세스 또는 API만 보는 등의 방법으로 분석을 해야한다.
- 빨간색 박스에는 4가지 기본적인 필터링 기능이다.
- 레지스트리 이용내역 필터
- 파일 이용내역 필터
- 네트워크 이용내역 필터
- 쓰레드 사용내역 필터
- processexplorer
- 현재 실행되고 있는 프로세스들을 관리하고 분석할 수 있는 도구
- 현재 실행되는 프로세스를 트리 형식으로 보여주는 것이 특징이다.
- 현재 사용되는 시스템의 리소스를 알 수 있고, 실행중인 프로세스의 상세정보를 파악할 수 있다.
- 프로세스 핸들, DLL, 쓰레드 정보도 확인이 가능하다.
- systemexplorer
- 윈도우 작업관리자의 확장판 개념이다.
- 현재 동작하는 프로세스 정보 및 부팅 시 실행되는 정보, 네트워크 연결 정보 등을 하나의 툴로 볼 수 있는 것이 특징이다.
- 상당히 프로그램이 무겁기 때문에 특정 상황을 제외하고는추천하는 프로그램은 아니다.
- autoruns
- 윈도우가 부팅 후 자동으로 시작되는 서비스 또는 프로그램을 모니터링 할 수 있는 도구
- 해당 도구는 악성 코드 분석 시 해당 악성 파일을 실행하기 전 스냅샷을 촬영하고 실행 후 스냅샷을 촬영해 두 개를 비교하는 것으로 사용한다.
- smsniff
- 호스트의 네트워크 어댑터를 거치는 TCP/IP ,UDP 패킷을 캡처한다.
- 세부적인 내용은 ASCII코드 형식 혹은 16진수 덤프 형태로 확인할 수 있다.
- wireshark
- 네트워크 패킷을 캡처하고 분석하는 프로그램
- 현재 통신 중인, 실제 흘러가고 있는 데이터, 패킷을 캡처하여 데이터의 흐름을 살펴볼때 사용
'리팩토링' 카테고리의 다른 글
리팩토링 16주차 샘플분석(2) (0) | 2024.11.16 |
---|---|
리팩토링 15주차 샘플분석 (0) | 2024.11.06 |
리팩토링 13주차 샘플 분석 환경 구성 (0) | 2024.10.17 |
리팩토링 12주차 악성코드 정적, 동적분석 (0) | 2024.10.10 |
리팩토링 11주차 Virustotal (0) | 2024.10.03 |