【取证分析】CentOS_5.5_安装GCC编译LiME
字数 1250 2025-08-20 18:17:07
CentOS 5.5环境下安装GCC并编译LiME进行内存取证分析
1. 背景与需求分析
在CentOS 5.5系统中进行内存取证分析时,面临以下挑战:
- 生产环境缺少GCC和GDB等基本开发工具
- 系统版本较老,yum源已停止更新
- 需要获取完整内存镜像用于volatility分析
2. 解决方案选择
考虑两种方案后选择第二种:
- 进程内存转储方案:使用
/proc/[PID]/maps抓取单个进程内存(被否决,因进程过多) - LiME内核模块方案:编译LiME模块直接获取完整内存镜像
3. 环境准备
3.1 获取CentOS 5.5安装镜像
下载地址:http://vault.centos.org/5.5/isos/x86_64/CentOS-5.5-x86_64-bin-DVD.torrent
3.2 挂载ISO镜像
在VMWare中:
- 选择菜单
VM > Settings - 选择
CDROM - 设置参数为
Use ISO image - 选择下载的CentOS镜像文件
4. GCC安装步骤
以root身份执行以下命令安装GCC及相关依赖:
cd /media/CentOS_5.5_Final/CentOS
rpm -ivh cpp-4.1.2-48.el5.x86_64.rpm
rpm -ivh kernel-headers-2.6.18-194.el5.x86_64.rpm
rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm
rpm -ivh glibc-headers-2.5-49.x86_64.rpm
rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm # 重复安装确认依赖
rpm -ivh kernel-devel-2.6.18-194.el5.x86_64.rpm
rpm -ivh glibc-devel-2.5-49.x86_64.rpm
rpm -ivh gcc-4.1.2-48.el5.x86_64.rpm
5. LiME编译与使用
5.1 解压与编译
tar -zxvf LiME.tar.gz
cd /home/yunwei/Desktop/malware/LiME/src/
make
编译成功后会在src目录下生成lime-2.6.18-194.el5.ko内核模块
5.2 内存抓取
# 抓取内存到指定路径
insmod lime-`uname -r`.ko path=/home/yunwei/Desktop/malware/centos5.lime format=lime
# 完成抓取后卸载模块
rmmod lime
6. 元数据制作(Volatility Profile)
6.1 安装dwarfdump工具
6.1.1 安装依赖
cd /media/CentOS_5.5_Final/CentOS/
rpm -ivh elfutils-libelf-0.137-3.el5.x86_64.rpm
rpm -ivh elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm
rpm -ivh elfutils-libelf-devel-0.137-3.el5.x86_64.rpm
6.1.2 编译libdwarf
git clone https://github.com/tomhughes/libdwarf.git
cd libdwarf
./configure
make
cd dwarfdump/
make install
6.2 编译volatility工具模块
tar -zxvf volatility.tar.gz
cd volatility/tools/linux/
make
编译问题解决:
需要注释掉module.c文件中198-221行的代码段:
/*#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,18)
....
struct module_sections module_sect_attrs;
#endif*/
6.3 打包元数据
zip CentOS5.5_2.6.18-194.el5-x86_64.zip module.dwarf /boot/System.map-`uname -r`
将生成的zip文件放入volatility的插件目录:
volatility-master\volatility\plugins\overlays\linux
7. 使用Volatility分析内存镜像
示例命令:
vol.py -f "D:\malware\CentOS5.5_2.6.18-194.el5_test.lime" --profile=LinuxCentOS5_5_2_6_18-194_el5-x86_64x64 linux_pslist
8. 参考资源
- Linux安装GCC问题解决:https://blog.csdn.net/yvanboyang/article/details/73274004
- CentOS 5.5安装GCC与g++:https://www.linuxidc.com/Linux/2011-07/38657.htm
- CentOS 6.5手动安装gcc:https://blog.csdn.net/testcs_dn/article/details/41727767
- Volatility学习笔记:http://vdchuyen.com/blog/2016/01/01/build-volatility-centos-profile.html
9. 关键注意事项
- 必须使用与目标系统完全匹配的内核版本进行编译
- 内存抓取前确保有足够的磁盘空间
- 每次抓取后必须
rmmod lime才能进行下一次抓取 - Volatility profile必须与系统内核版本严格匹配
- 老版本系统可能需要手动解决依赖问题