kawhi
该文章首发在i春秋论坛,欢迎各位师傅完成专业爱好者认证,可第一时间获取最新技术资讯和实战技能分享。
(识别二维码,快速完成认证)
磁盘取证
制作磁盘镜像
FTK Imager是电子数据取证必备的工具软件,它可以用来制作磁盘镜像,选择文件->创建磁盘镜像。
这里的物理驱动器选择的是整块硬盘,逻辑驱动器是选择其中一个分区,如C,D,E盘,然后选择好源驱动器:
Raw(dd)是指不压缩的原始镜像格式,做出来的镜像会和原始镜像一样大,E01则是压缩格式,接下来的证据项信息可以不填,然后选择镜像保存的位置和镜像文件名即可。
这里要注意的是默认镜像分片大小为1500MB,填写0则不分片。
然后在镜像校验设置把下面三个都勾选上,点击开始即可。
NTFS磁盘文件
NTFS(New Technology File System)是微软随Windows系统开发的一种文件格式,专门为网络和磁盘配额、文件加密等管理安全特性设计,NTFS包含若干用于定义和组织文件系统的文件,其中比较重要的元文件名有:
1.$MFT:描述卷上的所有文件,包括文件名、时间戳、流名称和数据流所在的簇的编号列表、索引、安全标识符,以及文件属性。
2.$LogFile:日志文件,包含文件系统更改的事务日志,以保护元数据的稳定性。
可以使用工具:NTFS Log Tracker 对其进行分析,如2021强网杯的EzTime把$MFT,$LogFile导入之后可以看到相关信息:
BitLocker磁盘加密
BitLocker驱动器加密通过加密Windows操作系统卷上存储的所有数据可以更好地保护计算机中的数据,Bitlocker的解锁方式主要有三种:TPM、PIN、恢复密钥:
1.TPM是在主板上的硬件芯片,可以存储各种证书密钥,不是所有电脑都有。
2.PIN是自己设置的一个解锁密码。
3.恢复密钥是一个最短48位的数字,可以被制作成密钥文件存储于U盘作为解密工具。
在题目中一般需要通过从内存中提取出恢复密钥,再解密磁盘提取出信息,比如[2021 强网杯]CipherMan,一开始是给了虚拟磁盘文件Secret和一个内存文件memory,首先通过分析内存文件memory获取到BitLocker的恢复密钥如下:
BitLocker : 221628-533357-667392-449185-516428-718443-190674-375100
用DiskGenius软件来进行BitLocker的解密,选择磁盘->打开虚拟磁盘文件,选择Secret文件:
填写恢复密码即可
成功解密
磁盘挂载和仿真
在Windows操作系统中,挂载是指给磁盘分区(包括被虚拟磁盘分区)分配一个盘符,仿真就是指通过这个挂载的盘符仿真出一个操作系统来,一般挂载仿真有两种方法,一种是用火眼取证软件可以一键仿真,另外一种是先把磁盘镜像挂载,再用vmware虚拟机进行仿真。但是前者软件获取难度较大,所以一般使用后面的方法。
挂载一般使用AccessData FTKImager进行挂载,这里使用祥云杯的层层取证作为演示:
点击文件->镜像加载,然后将Forensic_image文件进行导入,加载方法选择可写,然后点击转载即可。
挂载完成之后可以看到多出了一个盘。
挂载完成之后即可进行仿真,打开VMware Workstation在菜单中选择文件,选择新建虚拟机,接下来就是和平时创建虚拟机的步骤差不多,具体如下图:
这里要注意的是第9步的设备选择要和挂载的映射镜像相同,这里是PhysicalDrive1,然后启动虚拟机即可仿真成功。
内存取证
内存获取工具介绍
对Windows主机来说,可以使用Dumplt工具去dump内存中的信息,Dumpit是一款Windows内存镜像取证工具。利用它我们可以轻松地将一个系统的完整内存镜像下来,并用于后续的调查取证工作。
双击DumpIt.exe可执行程序,并在提示问题后面输入y,等待几分钟时间即可在当前目录下生成主机物理内存的副本,该副本文件是以*.raw为后缀的镜像文件,我们取证的对象就是这个内存镜像。
等待运行结束即可看到相同与内存大小的镜像文件。
FTK Imager
还可以使用FTK Imager来进行内存的抓取:
内存分析工具介绍
Volatility
Volatility是一款开源内存取证框架, 能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态,特点有:开源并通过Python编写,易于和基于python的主机防御框架集成,支持多平台:Windows,Mac,Linux全支持,可以通过插件来扩展Volatility的分析能力,因此易于扩展。
下载地址:https://www.volatilityfoundation.org/26
常见插件介绍
imageinfo:获取镜像信息
python vol.py -f 文件 imageinfo
可以在Suggested Profile处得到系统版本的信息,后续会调用对应版本的profile进行取证。
hashdump和mimikatz:获取用户密码
python vol.py -f 文件 --profile=版本 hashdump/mimikatz
mimikatz插件相较于hashdump会好用一些,但是其并不是Volatility默认的插件,需要把插件的Python文件放到volatility-master\volatility\plugins即可
pslist和psscan和pstree:查看进程信息
python vol.py -f 文件 --profile=版本 pslist/psscan/pstree
一般内存取证的第二步会使用pslist插件列出所有当前正在运行的进程,psscan会启发式搜索内存中的EPROCESS结构,因此会列出一些隐藏的进程,pstree则是以树的形式列出进程。
python vol.py -f 文件 --profile=版本 memdump/procdump -p [PID] -D [dump 出的文件保存的目录]
memdump可以将进程在内存中的所有页存入一个文件中,procdump则可以获取进程的可执行文件,例如提取PID为820的DumpIt.exe进程。
接下来是查看可疑的进程,如notepad.exe(记事本),mspaint.exe(画图)有可能隐藏信息在里面,可以使用插件notepad查看或者导出进程进行查看,比如对820.dmp进程筛选关键字flag。
strings -e l ./820.dmp | grep flag
看到cmd.exe进程则可以使用cmdscan和cmdline插件查看获取cmd输入的内容,看到chrome.exe/firefox.exe/iexplorer.exe则考虑浏览器取证,可以使用iehistory插件查看浏览器浏览历史,看到keepass.exe/truecrypt.exe则是加密容器等。
filescan和dumpfiles和userassist
filescan会扫描内存中所有文件,并且可以使用grep命令进行筛选,比如要筛选txt后缀的文件。
python vol.py -f 文件 --profile=版本 filescan | grep 'txt'
dumpfiles则可以把内存中的文件导出
python vol.py -f 文件 --profile=版本 dumpfiles -Q 文件地址 --dump-dir=导出地址
还可以用userassist查找出包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等。
python vol.py -f 文件 --profile=版本 clipboard/editbox
screenshot:获取屏幕截图
python vol.py -f 文件 --profile=版本 screenshot --dump-dir=导出地址
netscan:查看网络连接情况
python vol.py -f 文件 --profile=系统版本 netscan
python vol.py -f 文件 --profile=版本 hivelist
hivedump:导出注册表
python vol.py -f 文件 --profile=版本 hivedump -o 注册表virtual地址
一般查找出注册表后还可以配合hashdump查找密码
python vol.py -f 文件 --profile=版本 hashdump -y (system的virtual地址) -s (SAM的virtual地址)
printkey:打印注册表项及其子项和值,常用到的有以下两个:
获取SAM表中的用户
python vol.py -f 文件 --profile=版本 printkey -K "SAM\Domains\Account\Users\Names"
获取最后登录系统的账户
python vol.py -f 文件 --profile=版本 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
dumpregistry:提取内存中的注册表文件
python vol.py -f 文件 --profile=版本 dumpregistry -D 导出地址
对于导出来的注册表文件,我们可以用WRR软件或者Registry Explorer对其进行分析,下图是WRR:
取证大师
取证大师是一款提供给基层执法人员使用的电子数据取证分析软件,我们可以通过这款软件来将通话录音、照片、录像等电子文件保存下来,作为取证时进行使用,作为一款国产的综合类取证工具,在CTF取证中也是十分好用的。
首先点击新建案例,添加镜像文件之后下一步就可以自动取证了。
在取证完成之后即可显示取证的结果,并且在证据文件处可以对文件进行搜索,比如搜索txt后缀结尾文件:
Magnet AXIOM
Magnet AXIOM是一款功能强大的一体化数字调查取证解决方案,可以快速的从各种智能手机、云服务、计算机、IoT设备和第三方图像等资源中恢复数据,并以最直观最容易接受的方式来将这些证据呈现出来,类似于国内的取证大师,在安装完成后有Magnet AXIOM process 和Magnet AXIOM Examine两个软件。
先打开Magnet AXIOM process选择案件详情选择取证文件保存的位置->证据来源->计算机-> Windows ->加载证据->镜像,然后等待分析证据,在分析完成后Magnet AXIOM Examine会弹出并呈现出分析结果。
加解密工具介绍
Passware Kit Forensic
以祥云杯的层层取证为例,这样很快就跑出来密码,这个功能差不多相当于mimikatz。
Passware Kit还可以用来解密BitLocker,选择Browser for file进行导入镜像文件。
点击decryt即可完成解密
KeePass
一般来说KeePass的数据库格式是用kdbx后缀结尾的,通常从内存中提取到KeePass的密钥对其进行解密,比如网鼎杯的密码柜题,先用KeePass打开kdbx后缀的文件,然后使用内存中提取的密钥6s4mxkhvge解密即可看到密钥的信息,右键点击Edit Entry即可查看详情:
导出文件可点击Tools->Options->Advanced,勾选Extra-safe file transactions,然后右键Save Attached Files(s) To即可支持导出文件。
EFDD
Elcomsoft Forensic Disk Decryptor是一款非常实用的磁盘密码解密与恢复工具,用于访问加密卷,程序提供了所有可用方法,可以访问存储在加密的PGP、TrueCrypt、eraCrypt等等磁盘和卷中的信息。
这里以网鼎杯的密码柜为例解开BitLocker的密钥,首先点击Extract keys,选择内存文件memeories.vmem,会解密出一个key,然后点下一步保存为1.evk,点击Decrypt or mount disk选择挂载好的磁盘,再导入1.evk即可。
最后可以解密出密钥,EDFF还可以对TrueCrypt进行破解,如V&N比赛中的一道内存取证,就是先把TrueCrypt.exe进程Dump出来的文件,然后对磁盘文件进行解密。
VeraCrypt
VeraCrypt是一款免费开源跨平台的实时磁盘文件加密工具,支持硬盘、U盘、移动硬盘等所有磁盘的分区加密,也可以加密整个硬盘,允许用户可自行选择喜欢的加密算法,并且能直接创建新的加密分区,软件还有便携版,允许我们在U盘等直接使用。
硬盘的加密VeraCrypt是通过创建虚拟盘的方式来创建加密空间的,我们可以先创建一个文本文档,如veracrypt.txt,然后点击创建加密卷。
第五步设置的空间加密卷越大,则配置的时间越长,如果要存储4G以上的文件,加密卷格式要选择NTFS,输入密码然后点击格式化即可成功创建加密空间。
这样加密空间就成功访问,注意创建的veracrypt.txt不要删除,否则加密空间的文件会一起被移除,因为其有挂载功能,所以CTF中解题过程中有时也用veracrypt对卷进行挂载。
综上是我根据自己的实战经验,为大家汇总的Windows取证相关的常用工具,希望可以为对Windows取证感兴趣的朋友或者是CTF选手提供一个指导。
说在最后
很多新入门CTF的小伙伴总问我有没有比赛技巧、如何快速提升技能、如何在比赛中获得好的成绩......
在这里,我有一些建议分享给大家:
1.理论知识要与实践相结合。大家要多尝试使用CTF实验环境或者实际场景进行实战练习,从中积累经验和技巧。
同时,还有幸结识了村长、彪哥这样的朋友,与他们的交流分享更是让我获益良多,这个经历让我深感幸运和满足。所以我也会尽绵薄之力,把自己所学、所悟分享给小伙伴,大家一起探讨,共同进步。
最后,文章内容如有异议,欢迎各位大佬批评指正。