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입니다.
'프로젝트 > 보안 프로젝트' 카테고리의 다른 글
악성코드 분석 black energy 심화 - DLL 검사 2 (0) | 2022.08.03 |
---|---|
악성코드 분석 black energy 심화 - 프로세스 검사 1 (0) | 2022.08.03 |
Digital forensic challenge 301번 분석 (0) | 2022.08.03 |
[ Ubuntu ] Snort 실습 (0) | 2022.07.29 |