프로젝트/보안 프로젝트

악성코드 분석 black energy

피어나는 열정 2022. 8. 3. 22:16

volatility 는 현재 python2가 2020년에 종료되는 바람에 python3로 전면 옮기기 시작하였고 중간의 volatility2버전은 python2로 설치 자체가 고장나거나 불가능해서 사용할수 없게 되었다.

 

kali linux는 volatility3이 생긴지 얼마 안되어서 많은 에러가 존재하고 Ubuntu정도 사용이 가능하지만 ISF라고 심볼설치에서 어려움이 있다.

 

그래서 window10에서 우선 설치를 해보았다.

 

Window10 설치 

 

1. git clone, 다운로드

$ git clone https://github.com/volatilityfoundation/volatility3.git
$ python vol.py -h

2.volatility3 명령어 사용

 

참고 사이트

https://blog.onfvp.com/post/volatility-cheatsheet/

 

python vol.py -f “/path/to/file” windows.info

 

3. 샘플 다운로드

(예전 파일이라 웹사이트에 현재 존재하지 않고 이건 다른 방법을 통해 가져와야할것 같다.)

black energy.vmem 덤프 파일을 volatility git 샘플에서 가져와 실습을 진행하였다.

 

 

4. 명령 실행

 

에러

Unsatisfied requirement plugins.Info.kernel.symbol_table_name:

A symbol table requirement was not fulfilled.  Please verify that:
        The associated translation layer requirement was fulfilled
        You have the correct symbol file for the requirement
        The symbol file is under the correct directory or zip file
        The symbol file is named appropriately or contains the correct banner

Unable to validate the plugin requirements: ['plugins.Info.kernel.symbol_table_name']

 

symbol에서 에러가 난것을 알수 있다. 

https://www.cnblogs.com/bonelee/p/17368356.html

 

*심볼 다운로드*

 

5. 결과

 

- windows.info

 

Kernel Base 0x804d7000 메모리 내 커널 이미지의 기본 주소
DTB 0x319000 메모리 내 DTB (Descriptor Table Base)의 주소
Symbols file:///C:/Users/user/volatility3/volatility3/symbols/windows/ntkrnlpa.pdb/BD8F451F3E754ED8A34B50560CEB08E3-1.json.xz 커널 이미지 내 심볼을 해결하는 데 사용되는 심볼 파일의 경로
Is64Bit False 대상 시스템은 32비트 시스템입니다.
IsPAE True 대상 시스템은 PAE (Physical Address Extension)를 사용하고 있습니다.
layer_name 0 WindowsIntelPAE 커널 이미지가 포함된 레이어의 이름
memory_layer 1 FileLayer 커널 이미지가 포함된 레이어의 유형
KdDebuggerDataBlock 0x80544ce0 메모리 내 KdDebuggerDataBlock 구조체의 주소
NTBuildLab 2600.xpsp_sp2_rtm.040803-2158 대상 시스템의 빌드 랩
CSDVersion 2 대상 시스템의 CSD (Customer Supplied Driver) 버전
KdVersionBlock 0x80544cb8 메모리 내 KdVersionBlock 구조체의 주소
Major/Minor 15.2600 Windows 운영 체제의 주요 및 부수 버전
MachineType 332 대상 시스템의 머신 유형
KeNumberProcessors 1 대상 시스템의 프로세서 수
SystemTime 2010-08-15 19:22:11 대상 시스템의 시스템 시간
NtSystemRoot C:\WINDOWS Windows 시스템 루트 디렉터리의 경로
NtProductType NtProductWinNt Windows 운영 체제의 제품 유형
NtMajorVersion 5 Windows 운영 체제의 주요 버전
NtMinorVersion 1 Windows 운영 체제의 부수 버전
PE MajorOperatingSystemVersion 5 PE (Portable Executable) 파일 형식의 주요 운영 체제 버전
PE MinorOperatingSystemVersion 1 PE 파일 형식의 부수 운영 체제 버전
PE Machine 332 PE 파일 형식의 머신 유형
PE TimeDateStamp Wed Aug 4 05:58:36 2004 PE 파일 형식의 타임스탬프

 

커널 이미지

커널 이미지는 운영 체제의 핵심 부분인 커널을 포함하는 파일입니다. 커널은 하드웨어와 소프트웨어의 중간에서 작동하며, 운영 체제의 모든 구성 요소를 관리합니다. 커널 이미지는 일반적으로 바이너리 형식으로 저장되며, 메모리에 로드되어 실행됩니다.

커널 이미지가 이미지라고 이름 지어진 이유는 커널이 운영 체제의 핵심 부분이기 때문입니다. 커널은 운영 체제의 모든 구성 요소를 관리하기 때문에, 운영 체제의 이미지라고 할 수 있습니다.

 

>>테이블의 첫 번째 행에는 "Kernel Base" 값이 0x804d7000으로 나와 있습니다.  설치된 곳

 

Descriptor Table Base 

Descriptor Table Base (DTB)는 커널 메모리 맵의 시작 주소입니다. DTB는 커널이 메모리 맵을 관리하는 데 사용됩니다. DTB는 커널이 메모리 맵을 탐색하고, 메모리 맵에 있는 모든 세그먼트의 주소를 찾을 수 있도록 해줍니다.

DTB는 커널 메모리 맵의 시작 주소를 저장합니다. 커널 메모리 맵은 커널이 사용하는 모든 메모리 세그먼트의 주소를 저장하는 테이블입니다. DTB는 커널이 메모리 맵을 탐색하고, 메모리 맵에 있는 모든 세그먼트의 주소를 찾을 수 있도록 해줍니다.

 

Physical Address Extension

Physical Address Extension (PAE)는 32비트 프로세서에서 4GB의 물리 메모리 한계를 64GB로 확장하는 기술입니다. PAE는 32비트 프로세서에서 4GB 이상의 물리 메모리를 사용할 수 있도록 해줍니다.

 

Time

SystemTime은 Windows 시스템의 사용했던 시간과 날짜를 나타냅니다. TimeDateStamp은 파일의 생성 시간과 날짜를 나타냅니다. 따라서 SystemTime과 TimeDateStamp은 서로 다른 값을 가질 수 있습니다. 예를 들어, 파일을 생성한 후 Windows 시스템의 시간을 변경하면 SystemTime과 TimeDateStamp은 다른 값을 갖게 됩니다.

 

- PSLIST

 

  • PID: 프로세스 ID
  • PPID: 부모 프로세스 ID
  • ImageFileName: 프로세스가 실행 중인 실행 파일의 이름
  • Offset(V): 메모리 덤프에서 프로세스의 오프셋
  • Threads: 프로세스가 사용하는 스레드 수
  • Handles: 프로세스가 열어둔 핸들 수
  • SessionId: 프로세스의 세션 ID
  • Wow64: 프로세스가 32비트 또는 64비트 모드로 실행되는지 여부
  • CreateTime: 프로세스가 생성된 시간
  • ExitTime: 프로세스가 종료된 시간
  • File output: 프로세스가 쓰는 파일의 이름

테이블의 첫 몇 줄은 시스템 프로세스를 보여줍니다. 예를 들어 System, smss.exe, csrss.exe는 운영 체제를 시작하고 시스템의 기본 기능을 관리하는 프로세스입니다.

 

다음 몇 줄은 사용자 모드 프로세스를 보여줍니다. 예를 들어 winlogon.exe, services.exe, lsass.exe는 사용자의 응용 프로그램과 서비스를 실행하는 프로세스입니다.

 

테이블의 마지막 몇 줄은 VMware 가상화 소프트웨어와 관련된 프로세스를 보여줍니다. 예를 들어 VMwareTray.exe, VMwareUser.exe, cmd.exe입니다.