文章目录
前言
记录第二届网刃杯中的一道内存取证题
通过这道题希望大家能熟悉对内存取证工具volatility的应用,因为复现的时间较晚,环境已经被破坏,已经尽力复现了。
这个题目整体还是偏难的,当天好像是1解吧,具体也记不清了。
考到了内存取证、流量分析
话不多说,各位请看题
一、所需工具的补充介绍
1.volatility
Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。
本次解题所用到的工具 volatility(linux版 可执行文件,直接下载、无需配置、赋权便可以直接使用)和附件 vol.raw 一同打包在如下地址,如需请自提
链接:https://pan.baidu.com/s/1kp0QWu6-xIq4QtJ0deWJAQ
提取码:qwe1
下载后拉入kali虚拟机
将其复制到 /usr/bin目录中
cp volatility /usr/bin
便可在终端窗口使用
主要功能
查看系统版本 volatility -f vol.raw imageinfo
查看进程信息 volatility -f vol.raw --profile=系统版本(上条命令所得) pslist
查看注册表内容 volatility -f vol.raw --profile=WinXPSP2x86 hivelist
查看浏览器历史记录 volatility -f vol.vmem --profile=WinXPSP2x86 iehistory
查看网络连接 volatility -f vol.vmem --profile=WinXPSP2x86 netscan
查看用户名密码信息 volatility -f vol.vmem --profile=WinXPSP2x86 hashdump
查看所有文件 volatility -f vol.raw --profile=WinXPSP2x86 filescan
查看内存中的运行程序 volatility -f vol.raw --profile=WinXPSP2x86 userassist
提取进程为可执行文件 volatility -f vol.raw --profile=WinXPSP2x86 procdump -p 1252 -D ./
提取指定文件 volatility -f vol.raw --profile=WinXPSP2x86 dumpfiles -Q 0x0000000002a1b678 -D ./
CMD命令历史使用记录 volatility -f vol.raw --profile=WinXPSP2x86 cmdscan
二、解题流程
下载附件,得到vol.raw文件,
利用所安装的volatility工具,首先查看系统版本,从而为后续命令中的—profile参数提供值(其值便为系统版本)
列举内存中的运行程序
其中发现有一个1.exe文件,因为其命名,感觉有点蹊跷,便dump下来分析了一通,没有什么问题,是一个混淆项
通过对运行程序的逐一dump检查,最终发现sihost.exe 存在问题
通过它的pid,将这个可执行文件dump下来
刚dump下来,我的火绒就报了后门,果然就是它了,于是将其放入沙箱测试
通过测试,可以看到它是一个cs的大马,感觉这个远程上线的数据包中可能会存在有用信息,于是拉入虚拟机中运行并抓包
到这里,因为复现的太晚,环境链已经不完整了,这个远控木马的服务端已经断掉了,我简单说一下这里的过程:
在虚拟机运行这个程序后,用Wireshark会抓到一个可疑的流量,通过在本地访问其目的地址,会进入一个第三方网站,这是一个下载网站,可以得到flag.rar的压缩包,打开提示picture
这里原以为这个提示的图片信息也在流量包中,于是在所抓的流量里分析了好久,但没有找到有关于图片的流量信息,于是将方向又转到了对内存中文件的搜索(这里在流量包中浪费了很大时间)
因为是图片,所以配合 |grep 搜索内存中的图片文件,找到一个1.png
将扫描出来的1.png文件进行dump
在将此文件用010打开,得到解压密码 testtest
解压flag.rar
得到flag
总结
虽然这次复现有一些纰漏,但是大家也可以脑补一下环境链的缺失部分,也不是很重要,就是一个木马程序,在运行是请求了一个第三方网站,直接读到这个网站的ip,访问便直接能看到flag.rar文件,直接下载即可。因为木马程序所访问的那个网站所对应的资源已经被删除,故无法完全演示。
更熟练了对volatility的使用,这也为以后的内存取证题目积累了经验。