Linux导出进程和系统内存
### 1、通过GDB导出进程内存
1.查看SSH进程(示例)
通过PS查看进程ID,获取到SSH的进程ID
ps -aux | grep sshd
[root@localhost ~]# ps aux | grep sshd
root 1067 0.0 0.0 16088 9472 ? Ss Jul12 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 56337 0.0 0.0 19616 12604 ? Ss Jul18 0:00 sshd: root [priv]
root 56351 0.0 0.0 19964 7568 ? S Jul18 0:00 sshd: root@pts/1
root 56353 0.0 0.0 19612 12656 ? Ss Jul18 0:00 sshd: root [priv]
root 56431 0.0 0.0 19612 7404 ? S Jul18 0:00 sshd: root@notty
2.GDB指定进程ID
通过generate-core-file导出进程信息,会生成以core.进程ID的文件
gdb -p 1067
(gdb) generate-core-file #输入这个命令回车
#ls -lah
3.通过strings查看dump文件
strings core.19861 | more
4.查看进程输出
more /proc/19861/cmdline
5.查看进程关联
file /proc/19861/exe
2、通过ProcDump导出进程内存
1.下载工具
https://github.com/Sysinternals/ProcDump-for-Linux/releases
sudo dpkg -i procdump_1.5-16239_amd64.deb
2.dump进程
指定dump的进程ID,并dump出以dump.进程ID的文件
procdump 19861 dump

3.创建10秒内3个核心存储
在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

浙公网安备 33010602011771号