Linux Profile for Volatility3
On the last article, I talked on how to create a profile for volatility2, click here to check. Now we are doing the same task, but this time, let's update the process to our new memory analysis framework: volatility3 [1]. Running similar steps, we assume that no information was disclosed about the host where acquisition was captured from. Using the banners plugin in volatility3, check the kernel information:
Volatility 3 Framework 2.4.0
Progress: 100.00 PDB scanning finished
Offset Banner
0x7d600200 Linux version 5.10.0-19-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP Debian 5.10.149-2 (2022-10-21)
With that information, we can jump to a docker environment and download the necessary packages, compile, and zip our image profile as we've done before. For that, I'm using the following docker container from this project [2]. The container runs under Alpine Linux [3] that uses APK: Alpine Package Manager.
Pull the container image and jump into it (make sure to execute the shell with root permission):
$ docker run -it --rm -v $PWD:/home/vol --entrypoint ash -u root sk4la/volatility3
Once inside the docker instance, download the dpkg package manager (because our memory is from a debian machine) and the linux kernel image from debian repository.
Extract the content to the current tmp directory:
Compile the new symbols for the kernel and move the json file to the path in step 2 (/home/vol):
/tmp # mv linux-image-5.10.0-19-amd64.json /home/vol
Exit docker container and move the newly created profile funder volatility3 symbols folder, in my case to /opt/volatility3/vol:
Teaching Volatility3
In order to vol3 recognize the new package, we'll need to create a zip from your json. Make sure to use -rj swich:
- -r: Travel the directory structure recursively;
- -j: Store just the name of a saved file (junk the path).
adding: linux-image-5.10.0-19-amd64.json (deflated 93%)
$ ls -lh
total 37M
-rw-r--r-- 1 root root 32M Dec 4 01:35 linux-image-5.10.0-19-amd64.json
-rw-r--r-- 1 root root 4.6M Dec 4 01:52 linux-image-5.10.0-19-amd64.json.zip
Go to the symbols folder
Testing the New Profile
To proceed with the testing phase, we're going to execute the pslist plugin. Note that in this time, with volatility3, you do not have to inform the profile with --profile option. Volatility3 will detect the profile automatically for you:
References
[1] https://github.com/volatilityfoundation/volatility3
[2] https://github.com/sk4la/volatility3-docker
[3] https://www.alpinelinux.org/
.jpg)
Comments
Post a Comment