1、通过GDB导出进程内存
通过PS查看进程ID,获取到SSH的进程ID
ps -aux | grep sshd
gdb -p 19861
通过generate-core-file
导出进程信息,会生成以core.进程ID的文件
generate-core-file
strings core.19861 | more
more /proc/19861/cmdline
file /proc/19861/exe
https://github.com/Sysinternals/ProcDump-for-Linux/releases
sudo dpkg -i procdump_1.5-16239_amd64.deb
指定dump的进程ID,并dump出以dump.进程ID的文件
procdump 19861 dump
在10秒内创建3个核心存储,并存储在/tmp路径下
procdump -n 3 19861 /tmp
3、通过avlm导出系统内存
avlm是微软基于 Rust 编写的X86_64用户空间易失性内存获取工具,可用于在不知道目标操作系统分布的情况下获取内存,并且直接提供二进制工具,不需要在操作系统进行编译。
https://github.com/microsoft/avml
# 文件下载后赋予可执行权限
chmod +x avml
# 根据系统内存大小生成相同大小的文件
./avml memory.dump
使用volatility可直接进行分析,该示例为在本机的kali中生成的系统内存镜像
python3 vol.py -f /opt/test/memory.dump banners.Banners