Volatility内存取证使用

1.背景

本文主要使用Dumpit及Volatility对计算机进行取证,对内存文件进行分析,获取内存重要信息, 还原攻击。

2.内存镜像Dumpit

2.1 简介

Dumpit是用于生成Windows机器的物理内存转储,可运行在32位/64位系统中,可完美地部署在USB闪存盘上,快速响应事件。

2.2 下载链接

下载链接:https://github.com/thimbleweed/All-In-USB/tree/master/utilities/DumpIt

2.3 Dumpit使用

1.将软件拷贝到需要被内存镜像的计算机中,双击运行软件,如下图:
2.内存镜像文件默认保存在“DumpIt软件所在的目录”,镜像名格式默认为“主机名+当前时间”。
3.按“y”即可开始制作内存镜像。
在这里插入图片描述

4.制作完成后的文件为raw格式,至此Dumpit完成内存取证。
在这里插入图片描述

3.内存分析volatility

3.1 简介

Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

3.2 volatility安装

1.我使用的环境为Kali2021.2,已不内置volatility,访问地址进行下载,如下图:https://www.volatilityfoundation.org/26
在这里插入图片描述

2.下载到本地后,unzip进行解压,并更名为volatility,复制到/usr/sbin/,不需要修改环境变量即可使用。
在这里插入图片描述

在这里插入图片描述

3.3 常用命令

3.3.1 查看系统版本

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw imageinfo
//对所需分析的raw文件进行分析,查看系统版本。通过输出可以看到应该是使用这几个系统版本:Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw imageinfo  //对所需分析的raw文件进行分析,查看系统版本。
Volatility Foundation Volatility Framework 2.6
INFO    : volatility.debug    : Determining profile based on KDBG search...
          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418
                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
                     AS Layer2 : FileAddressSpace (/home/server.raw)
                      PAE type : No PAE
                           DTB : 0x187000L
                          KDBG : 0xf80001dfa070L
          Number of Processors : 4
     Image Type (Service Pack) : 0
                KPCR for CPU 0 : 0xfffff80001dfbd00L
                KPCR for CPU 1 : 0xfffff88001e00000L
                KPCR for CPU 2 : 0xfffff88001e75000L
                KPCR for CPU 3 : 0xfffff88001eea000L
             KUSER_SHARED_DATA : 0xfffff78000000000L
           Image date and time : 2021-08-01 14:41:49 UTC+0000
     Image local date and time : 2021-08-01 22:41:49 +0800

3.3.2 查看进程信息

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 pslist
//使用pslist命令列出进程信息

Volatility Foundation Volatility Framework 2.6
Offset(V)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
------------------ -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0xfffffa8000c68b30 System                    4      0     85      479 ------      0 2021-08-01 14:40:59 UTC+0000                                 
0xfffffa800178a310 smss.exe                248      4      4       32 ------      0 2021-08-01 14:40:59 UTC+0000                                 
0xfffffa8001fdd5e0 csrss.exe               328    312      9      335      0      0 2021-08-01 14:41:00 UTC+0000                                 
0xfffffa8001ffb060 wininit.exe             380    312      8      104      0      0 2021-08-01 14:41:00 UTC+0000                                 
0xfffffa8001ffa4f0 csrss.exe               388    372      9      157      1      0 2021-08-01 14:41:00 UTC+0000                                 
0xfffffa800200e910 winlogon.exe            428    372      5      111      1      0 2021-08-01 14:41:00 UTC+0000                                 
0xfffffa8002035b30 services.exe            476    380     21      242      0      0 2021-08-01 14:41:00 UTC+0000                                 
0xfffffa800203db30 lsass.exe               484    380     11      534      0      0 2021-08-01 14:41:00 UTC+0000  

3.3.3 查看父进程与子进程

──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 pstree
//使用pstree命令列出父进程和子进程关系
在这里插入图片描述

3.3.4 查看注册表内容

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 hivelist
//列举缓存在内存中的注册表,并获取虚内存地址
在这里插入图片描述

3.3.5 内存中获取密码哈希值

┌──(root💀loaclhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 hashdump -y [0xfffff8a000024010] -s [0xfffff8a000f34010]
//从内存中获取密码哈希
在这里插入图片描述
在这里插入图片描述

3.3.6 导出注册表内容

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 hivedump -o 0xfffff8a000b9f010
//根据虚内存dump SOFTWARE注册表内容。可看到系统安装的所有软件
在这里插入图片描述

3.3.7 查看系统用户列表

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 printkey -K "SAM\Domains\Account\Users\Names"
//列出SAM表中用户,输出_Administrator和Guest两个账户

Volatility Foundation Volatility Framework 2.6
Legend: (S) = Stable   (V) = Volatile

----------------------------
Registry: \SystemRoot\System32\Config\SAM
Key name: Names (S)
Last updated: 2021-07-24 15:29:16 UTC+0000

Subkeys:
  (S) Administrator
  (S) Guest

Values:
REG_DWORD                     : (S) 0

3.3.8 获取最后登录系统的用户

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
//获取最后登陆系统的用户
在这里插入图片描述

3.3.9 提取内存中的运行程序

┌──(root💀localhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 userassist
//正在运行的程序、运行过多少次、最后一次运行时间
在这里插入图片描述

3.3.10 对可疑PID进程进行提取

┌──(root💀loaclhost)-[/home]
└─#volatility -f server.raw --profile=Win2008R2SP1x64_23418 memdump -p 1780 -D /home
//-p参数为PID,-D为保存文件的路径,可对进程中可疑进程dump到指定文件夹,使用hexeditor 对dump文件以16进制方式查看
在这里插入图片描述

3.3.11 CMD命令历史使用记录

┌──(root💀loaclhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 cmdscan
//查看CMD命令行上的操作
在这里插入图片描述

3.3.12 查看网络连接

┌──(root💀loaclhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 netscan
//获取到当时的网络连接情况
在这里插入图片描述

3.3.13 获取IE浏览器历史记录

┌──(root💀loaclhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 iehistory
//获取浏览器浏览历史
在这里插入图片描述

3.3.14 收集系统活动信息

┌──(root💀loaclhost)-[/home]
└─# volatility -f server.raw --profile=Win2008R2SP1x64_23418 timeliner
//从多个位置收集大量系统活动信息
在这里插入图片描述

3.4 内存排查思路

1.首先对怀疑主机使用Dumpit进行内存导出。
2.对内存文件进行系统版本分析。命令为:volatility -f 【raw内存文件】 imageinfo
3.查看当时跑的进程,对可疑进程重点排查。命令为:volatility -f 【raw内存文件】 --profile=【系统版本】 pstree
4.查看网络连接,可能会存在本地主机对远端主机的连接。命令为:volatility -f 【raw内存文件】 --profile=【系统版本】 connscan
5.从上面几步中,如果发现可疑的PID,通过PID查看SID,可以知晓哪些用户访问允许访问此资源。命令为:volatility -f 【raw内存文件】 --profile=【系统版本】 getsids -p 【可疑PID】
6.查看调用动态链接库的数量,恶意软件要么特别多,要么特别少。命令为:volatility -f 【raw内存文件】 --profile=【系统版本】 dlllist -p 【可疑PID】
7.对可疑进程进行查杀。命令为:volatility -f 【raw内存文件】 --profile=【系统版本】 malfind -p 【可疑PID】 -D 【目录】
  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows 2003是微软公司发布的一款操作系统,其内存取证是指通过分析和提取Windows 2003操作系统的内存数据来获取相关的取证证据。 在进行Windows 2003内存取证的过程中,需要借助一些专门的工具和技术。首先,需要使用内存取证工具,如Volatility Framework等,来对内存进行分析和提取。这些工具可以从内存镜像中提取出进程、线程、打开的文件、网络连接等信息,从而帮助取证人员获取到被研究系统的相关证据。 其次,需要了解Windows 2003操作系统的内存管理机制和数据结构。这样可以更好地理解内存中存储的数据的结构和格式,有助于提取和解释相关证据。例如,Windows 2003使用的是物理内存和虚拟内存的管理方式,需要理解这两种内存的分配与释放机制。 此外,还需要注意在进行内存取证时可能遇到的一些挑战和限制。例如,Windows 2003在32位系统上的内存限制为4GB,如果目标系统中的内存大于4GB,可能需要采取特殊的处理方式。另外,操作系统的版本和补丁等也会影响内存数据的分析和提取。 最后,进行内存取证时需要保持数据的完整性和可靠性,确保所提取的证据在法庭上具有可信度。因此,需要采用专业的取证工具和方法,并遵循取证规范和程序进行操作,记录下相关的过程和操作步骤。 综上所述,Windows 2003内存取证是通过分析和提取内存数据来获取相关证据的过程,需要借助专门的工具和技术,同时需要了解操作系统的内存管理机制和数据结构,保证数据的完整性和可靠性。这一过程在数字取证领域具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值