0前言
在对linux进行取证时,通常需要进行内存取证,而volatility是一个很wonderful的工具,它集成了windows版本的profile文件,linux需要自己制作profile文件。
1安装dwarfdump
这是一款调试信息导出库,具体安装流程为:
# git clone https://github.com/tomhughes/libdwarf.git
# apt-get install libelf1 libelf-dev gcc
# cd libdwarf/
# ./configure # make
# cd dwarfdump/
# make install
如果报错,检查libelf-dev库是否安装成功,及automake是否安装成功。
2制作profile文件
2.1.进入volatility相关目录,生成module.dwarf文件
# cd /volatility/tools/linux
# make
2.2.将module.dwarf文件和/boot中对应目标系统内核版本的System.map文件打包成.zip文件,放入/volatility/volatility/plugins/overlays/linux/目录中
# cd/volatility/volatility/plugins/overlays/linux
# zip Ubuntu64.zip /root/volatility/tools/linux/module.dwarf/boot/System.map-`uname -r`
# cd/volatility/volatility/plugins/overlays/linux
# zip u1604.zip /root/volatility/tools/linux/module.dwarf/boot/System.map-`uname -r`
2.3.查看是否已经制作了目标系统的profile
3.获取内存镜像
3.1安装Lime
# git clone https://github.com/504ensicsLabs/LiME.git
# cd LiME/src
#make
3.2获取本地内存镜像
# insmod lime-`uname -r`.ko "path=本地路径/文件名.lime format=<raw|padded|lime>"
注:path为镜像保存地址,format一般选择lime
注:在/Lime/src目录下以root权限运行
注:结束后退出内核模式 #rmmod lime
3.3获取远程内存镜像
目标主机运行指令:
# insmod lime-`uname -r`.ko "path=tcp:port format=lime" (path设置为监听tcp指定端口,等待远程连接)
调试主机运行指令:
# nc 目标IP 目标端口 > /本地目录/文件名
4.分析内存镜像
在volatility目录下运行:
python vol.py -f /usr/local/mem1.lime --profile=Linuxu1604x64 linux_pslist