leludo84/vol3-linux-profiles
GitHub: leludo84/vol3-linux-profiles
为 Volatility3 内存取证框架提供预构建的 Linux 发行版内核符号表,简化 Linux 内存镜像分析的前期准备工作。
Stars: 77 | Forks: 5
# Volatility 3 Linux 配置文件
## 项目
本项目的目标是为仅限 **x86_64** 版本的主要 Linux 发行版构建并提供所有可能的 Volatility3 配置文件。
本项目包含所有内核版本,包括安全更新。
## 配置文件
| 发行版 | 时间段 | 路径 | 数量 |
| ------------ | ---------------------- | --------------------------------------- | ----------------- |
| Almalinux 8 | 全部 | [profiles/almalinux8/](profiles/almalinux8/) | 68 |
| Almalinux 9 | 全部 | [profiles/almalinux9/](profiles/almalinux9/) | 64 |
| Almalinux 10 | 全部 | [profiles/almalinux10/](profiles/almalinux10/) | 11 |
| Centos 6 | 全部 | [profiles/centos6/](profiles/centos6/) | 230 |
| Centos 7 | 全部 | [profiles/centos7/](profiles/centos7/) | 116 |
| Centos 8 | 全部 | [profiles/centos8/](profiles/centos8/) | 29 |
| Ubuntu 16 | 全部 | [profiles/ubuntu16/](profiles/ubuntu16/) | 778 |
| Ubuntu 18 | 全部 | [profiles/ubuntu18/](profiles/ubuntu18/) | 812 |
| Ubuntu 20 | 从 2021-10-12 至今 | [profiles/ubuntu20/](profiles/ubuntu20/) | 777 |
| Ubuntu 22 | 从 2023 年 4 月 至今 | [profiles/ubuntu22/](profiles/ubuntu22/) | 1161 |
| Ubuntu 24 | 从 2024 年 6 月 至今 | [profiles/ubuntu24/](profiles/ubuntu24/) | 178 |
| Debian 6 至 13 (debian snapshot) | 全部 | [profiles/debian-snapshot/](profiles/debian-snapshot/) | 2283 |
:warning: Ubuntu 20、22 和 24 在其仓库中不提供旧的软件包(最近 15 或 20 个内核)。本项目没有比这更早的配置文件。对于旧的符号文件,请使用 https://github.com/p0dalirius/volatility3-symbols。
## 我的配置文件在哪里?
有两种方法可以找到您的配置文件:
1. 使用内核包名称和版本,并根据 Linux 发行版添加 *-dbg*、*-dbgsym* 或 *-debuginfo*;
2. 使用 Linux banner 索引 (*banners.ndjson*),例如:
```
grep "Linux version 6.2.0-1007-aws (buildd@lcy02-amd64-106) (x86_64-linux-gnu-gcc-11 (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #7~22.04.1-Ubuntu SMP Fri Jul 7 13:49:28 UTC 2023 (Ubuntu 6.2.0-1007.7~22.04.1-aws 6.2.13)" banners.ndjson | jq .symbols_file
"linux-image-unsigned-6.2.0-1007-aws-dbgsym_6.2.0-1007.7~22.04.1_x86_64.json.xz"
```
## Volatility3 符号文件自动下载
Volatility 可以通过输入 ISF 服务器的地址自动下载符号文件。它将直接从 GitHub 下载 *banners-isf.json* 索引,并在其中找到符号文件的 URL。
在 **volatility3/framework/constants/\_\_init\_\_.py** 中将常量 **REMOTE_ISF_URL** 设置为 *https://raw.githubusercontent.com/leludo84/vol3-linux-profiles/main/banners-isf.json*。
## 手动安装配置文件
每个配置文件都打包为压缩的 `.json.xz` 文件。您可以通过将文件复制到 `volatility3/symbols/linux/` 目录中,在您的 Volatility 安装中单独启用它们。
## Profilator
### 构建 Profilator
所有处理器均为 Docker 容器。使用此脚本构建它们:
```
cd sources
make
```
### 运行
## 如何手动构建 Linux 配置文件
### dwarf2json 安装
在分析机上,从 https://github.com/volatilityfoundation/dwarf2json 下载并编译 **dwarf2json**
```
# 如果未安装 Go:
apt install golang-go -y
# 下载并编译
git clone https://github.com/volatilityfoundation/dwarf2json.git
cd dwarf2json/
go build
```
### 带调试符号的 Linux 内核
要使用 **dwarf** 创建配置文件,您必须下载或安装一个版本与采样版本严格相同的带有调试符号的 Linux 内核。
根据发行版的不同,相应软件包的名称如下:
| 发行版 | 软件包名称 | 仓库 | 归档仓库 |
| :-------: | ------------------------------------ | :----------------------: | :-------------------------------: |
| Debian | **linux-image-$(uname -r)-dbg** | *main* | http://snapshot.debian.org/ |
| Ubuntu | **linux-image-$(uname -r)-dbgsym** | http://ddebs.ubuntu.com/ | **none** |
| CentOS | **kernel-debuginfo-$(uname -r).rpm** | base-debuginfo | https://vault.centos.org/ |
| RedHat | **kernel-debuginfo-$(uname -r).rpm** | RHEL, RHN | RedHat Network (付费) |
| AlmaLinux | **kernel-debuginfo-$(uname -r).rpm** | baseos-debuginfo | https://repo.almalinux.org/vault/ |
更多信息:
- https://access.redhat.com/solutions/9907
- https://www.ibm.com/docs/en/linux-on-systems?topic=linuxonibm/liacf/oprofkernelsymrhel.html
- https://wiki.ubuntu.com/Debug%20Symbol%20Packages
### 构建配置文件
```
./dwarf2json linux --elf /usr/lib/debug/boot/vmlinux-4.4.0-137-generic > linux-4.4.0.json
cp linux-4.4.0.json /symbols/
```
### 测试
```
python3 vol.py -vvvv -f ram.img linux.pslist.PsList
```
标签:Almalinux, CentOS, DAST, Debian, Homebrew安装, Linux内核, Linux配置文件, SecList, Volatility3, x86_64, 内存取证, 内存镜像分析, 内核符号表, 库, 应急响应, 恶意软件分析, 数字取证, 日志审计, 符号文件, 自动化脚本, 请求拦截, 逆向工具