前置技能
前置技能基本大同小异,互联网上资源很多。甚至说不明白这些知识随便翻,一直翻下去也可能找到答案,但是了解这些基本知识可以节省很多时间,提高命中率。
windows重点目录
用户目录
用于存储用户文件和配置,以此来区分不同用户的使用环境和权限。无论是本地用户还是网络用户,第一次登录系统都会自动生成一个用户目录。
系统 | 目录 |
---|---|
Windows XP | C:\Documents and Settings\Username |
Windows 7/8/10 | C:\Users\Username |
以下内容以win 7/8/10为例子
桌面
存储用户桌面上的快捷方式和文件,属于取证中需要重点关注的目录。
C:\Users\Username\Desktop
最近访问文档
每当用户打开一个目录或者文件时,系统会自动在最近访问文件夹生成一个快捷方式。通过最近访问文档可以了解用户的习惯,重点关注这些文档,可以快速开展取证工作,发现线索。
C:\Users\Username\Recent
完整路径
C:\Users\Username\AppData\Microsoft\Windows\Recent
快速访问
shell:recent
AutomaticDestinations和CustomDestinations文件夹正常在Recent目录无法查看,直接访问完整路径即可
我的文档
用于存储个人文件,如微信数据默认存储在该文件夹中
C:\Users\Username\Documents
启动目录
将快捷方式添加到该文件夹中即可实现对应程序开机自启。
用户开机自启文件
C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
攻击者在得到系统管理权限之后,可在启动目录中放置一个木马,如在启动项中发现陌生的程序,很有可能是恶意代码。
系统开机自启文件
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
发送到目录
选中文件右键既有发送到选项,可以自定义目录指向,通过这些文件指向,可以知道用户常用文件夹。
C:\Users\Username\AppData\Roaming\Microsoft\Windows\SendTo
交换文件(Swap File)
当内存少于系统应用的需求时,系统会生成一个交换文件来暂存内存数据,以释放部分内存,这个交换文件叫做页文件(pagefile.sys),页文件存放于根目录。
休眠文件(Hibernation File)
计算机进入休眠状态后,内存被转存到硬盘的休眠文件中,以便系统被快速的唤醒,休眠文件一般在根目录(hiberfil.sys)
交换文件和休眠文件存储的都是内存数据,可使用内存分析。
假脱机打印文件
Windows中打印文件时,会生成假脱机打印文件,打印结束或取消打印后,假脱机打印文件会删除。
C:\Windows\System32\spool\PRINTERS
SPL:假脱机文件
SHD:影子文件
SPL和SHD文件中包含了用户名、打印机名、文件名等
注册表
注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据。
C:\Windows\System32\config
分支
注册表有五个一级分支
名称 | 作用 |
---|---|
HKEY_CLASSES_ROOT | 存储windows可识别的文件类型的详细列表,以及关联的程序 |
HKEY_CURRENT_USER | 存储当前用户的设置的信息 |
HKEY_LOCAL_MACHINE | 包装安装在计算机上的硬件和软件的信息 |
HKEY_USERS | 包含使用计算机的用户的信息 |
HKEY_CURRENT_CONFIG | 这个分支包含计算机当前的硬件配置信息 |
用户信息
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
系统信息
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
事件日志
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
包含:系统日志“System”、安装日志“Setup”、应用程序日志“Application”、安全日志“Security”。
C:\Windows\System32\winevt\Logs
系统日志:
记录系统进程和设备驱动程序的活动,例如启动失败的驱动程序、硬件错误、重复的IP地址及服务启动暂停和停止。
应用程序日志:
应用程序日志包含由应用程序或程序记录的事件。例如,数据库程序可在应用程序日志中记录文件错误。
安全日志:
安全日志包含诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件,如创建、打开或删除文件或其他对象。
应用程序和服务日志:
应用程序和服务日志是一种新类别的事件日志。这些日志存储来自单个应用程序或组件的事件,而非可能影响整个系统的事件。
常用ID所对应的事件:https://zhuanlan.zhihu.com/p/111266648
数字时间取证
系统时间
系统时间以主板上CMOS时间作为基准(由主板上的一块电池供电)。CMOS时钟是操作系统的时间来源,电池电量不足或晶振频率不准可能会导致CMOS时间不准,从而影响操作系统的时间。在Windows系统中,可用使用网络校时保证时间的准确。
从某种意义上来说,CMOS时间是系统所有时间的来源,操作系统时间、文件存储、修改、访问时间来源都是CMOS时间。
时间取证的基本判断规则:
文件和文件夹在移动、复制、剪贴等常见操作下,时间会有不同的变化规律,这些变化规律取决于操作系统和文件系统。
对象 | 操作 | 创建时间(C time) | 修改时间(M time) | 访问时间(A time) |
---|---|---|---|---|
文件 | 重命名或修改属性 | 重命名或修改属性 | 不变 | 不变 |
文件 | 文件夹内文件变化 | 文件夹内文件变化 | 不变 | 更新 |
文件 | 卷内移动 | 卷内移动 | 不变 | 不变 |
文件 | 跨卷移动 | 跨卷移动 | 更新 | 不变 |
文件 | 复制文件 | 复制文件 | 更新(如覆盖同文件名则不跟新) | 不变(目标文件) |
文件 | 剪贴文件 | 剪贴文件 | 不变 | 不变(目标文件) |
文件夹 | 重命名或修改属性 | 重命名或修改属性 | 不变 | 不变 |
文件夹 | 修改内容 | 修改内容 | 不变 | 更新(NTFS)不变(FAT) |
(1)如果修改时间等于建立时间,那么文件是原始文件,既没有被修改也没有被剪切。
(2)如果修改时间早于建立时间,则文件被复制或者移动部。
(3)如果在硬盘上批量的文件具有很近的访问时间,这些文件极有可能被同一工具软件扫描过,如杀毒软件。如果在一个文件夹中的一些图像或视频文件有很近的访问时间,并且没有其他图像和视频文件具有相似的访问时间,则这些图像和视频极有可能被同一个图像或视频预览工具访问或者打开过,例如用Windows资源管理器以缩略图的方式查看。
(4)在一个文件夹中,如果一些文件的修改时间等于创建时间。并且有很近的创建时间或修改时间,那么这些文件有可能是从网上批量下载的。
(5)文件拷贝的时候,文件创建时间为拷贝的时间,文件修改时间与原文件一致。
(6)文件下载的时候,文件创建时间为下载的时间,文件修改时间为下载结束的时间。
(7)压缩文件解压时,通常情况下(Winrar、Winzip)文件的创建时间为解压缩时间,文件修改时间与压缩前的文件一致。
访问时间的证据效力
文件的属性时间是确定文件的创建 、修改和访问的重要标记。在证据效力上,创建时间,修改时间、节点修改时间都有较强证据力。而访问时间在FAT中不显示时间,以两秒间隔更新,同时访问时间极易受到干扰,因此证据率最低。如使用资源管理器查看文件属性信息时,可能会篡改文件的访问时间。
在FAT文件系统中访问时间更新是一天。在NTFS文件系统中,文件的最后访问时间的最大更新间隔是一小时。因此硬盘上的文件的最后访问时间都是不准确的。当用户或程序对某个文件执行只读操作时,系统会延缓硬盘上的文件的最后访问时间时间,但是会在内存中记录这个时间。当原始的最后访问时间和当前的最后访问时间相差大于一小时时,才会更新文件的最后访问时间。如果执行写操作会立刻更新,这种更新策略是减少频繁的硬盘读写对性能的影响。
电子数据时间查询
文件系统创建时间
FAT文件系统:如果FAT分区有卷标,在根目录偏移量为0X16处是windows/DOS文件时间格式表示的最后写入时间。
NTFS文件系统:主文件表($MFT)属性中的标准属性(10属性)属性体(偏移量为0X50处)记录了分区的创建、修改、节点修改、访问时间(共四组)等信息。
EXT4文件系统:EXT4文件系统是Linux常用的文件系统。EXT4的超级块中保存了文件系统的属性信息、磁盘布局和资源使用情况等信息。文件系统通过超级块了解磁盘的布局,查找已用和可用资源等。
超级块偏移量0X2C-0X2F处记录了最后挂载时间,0X30-0X33处记录了最后写入时间,0X40-0X43处记录了最后检查时间,0X108-0X10B处记录了文件系统创建时间。
HFS+文件系统:HFS+文件系统是Mac OS系统常用的文件系统。格式化HFS+文件系统时,生成文件系统卷头(2号扇区),类似FAT和NTFS的DBR,卷头偏移量0X10-0X1F处记录了创建、修改、备份、最后检查时间四个时间信息,创建时间以本地时间保存,其他时间以GMT/UTC时间保存。
Windows操作系统安装时间:初始安装时间保存在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的InstallDate键中,时间以C/UNIX时间格式存储(大端)。
Windows开关机时间:系统日志记录开关机的日志信息,其中事件ID=6005记录日志启动时间(=系统开机),事件ID=6006记录日志停止事件(=系统关机)。事件ID=6008记录异常关闭(=系统异常关闭)。
操作系统时间
注册表中的关机时间: Windows正常关机时间保存在注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows的ShutdownTime键值中,时间以Windows/FILETIME时间格式保存。
系统非正常关机(如断电或死机)不一定会记录时间更新信息。
Windows用户登录时间:注册表中用户登录信息,HKEY_LOCAL_MACHINE\SAM\SAM\Domains\account\User\name%DIR%\的F键中,DIR是相对标识符,由用户名Name指定。
Windows用户登录事件:Windows系统日志中记录用户登录事件,由登录事件可查询登录的用户名、登录时间等信息。
登录成功(4624)事件的登录类型为2表示互动登录(本地键盘登录系统)
反取证
简单来说,就是嫌疑人不会乖乖让我们查到他的敏感信息,所以就会对数据进行一些处理,隐藏甚至销毁自己的证据。了解一些反取证技术,对我们获取隐藏信息是很有必要的。
加密
给数据加密时一种常见的反取证手段,如excel,rar,zip等单个文件的加密,Windows自带的BitLocker加密,或者借助第三方反取证软件进行加密。
单文件加密
单文件加密通常思路为弱口令,寻找密码本,社工等方式,其中压缩包文件还可以使用ARCHPR
进行暴力破解。
bitlocker
BitLocker(直译为“位元锁”)是内置于Windows Vista及其之后系统的全磁盘加密功能,透过为整个卷(英语:Volume (computing))提供加密来保护数据。它默认在密码块链接(CBC)或XTS(英语:Disk encryption theory)模式下使用128位或256位密钥的AES加密算法。其中CBC用于每个单独的磁盘扇区,不在整个磁盘上使用。
解题思路
bitlocker恢复密钥串为8组长度为6的数字,中间-分隔,密钥保存在一个txt文档中,所以可以用正则表达式进行搜索(取证大师自带正则表达说明,记不住问题不大),或者直接根据密钥文件特点,搜索关键字恢复密钥
。获取密钥之后就直接使用取证大师自带的bitlocker解密就可以了。
正则表达
\xFF 匹配十六进制数为 FF 的一个字符
ab 匹配含有 ab 的字符串
(a|b) 匹配含有 a 或者 b 的字符串,要加括号
. 匹配包括换行符的任意一个字符
# 匹配 0-9 中的任意一个数
[0-9] 匹配含有 0-9 中的任意一个字符
[a-z] 匹配含有 a-z 中的任意一个字符
[A-Z] 匹配含有 A-Z 中的任意一个字符
[^0-9] 匹配排除 0-9 以外的任意一个字符
[^a-z] 匹配排除 a-z 以外的任意一个字符
[^A-Z] 匹配排除 A-Z 以外的任意一个字符
[XYZ] 匹配含有 X 或者 Y 或者 Z 的一个字符
[^XYZ] 匹配不包括 X 或者 Y 或者 Z 的一个字符
(ab) 把 ab 组成一组后面可加?,+,+*,|
x? 匹配重复 0 或 1 次的 x 字符
(a)? 匹配重复 0 或 1 次的 a 字符串
x+ 匹配重复至少 1 次的 x 字符
(a)+ 匹配重复至少 1 次的 a 的字符串
x* 匹配重复 0 次以上的 x 字符
(a)* 匹配重复 0 次以上的 a 字符串
{m} 匹配重复 m 次的指定字符串
{m,n} 匹配重复 m 到 n 次的指定字符串
{m,} 匹配重复 m 次以上的指定字符串
第三方软件
如PrvateDisk软件,在取证大师自动取证结果中可以看到该类软件,以及加密文件中可以看到加密后的文件,思路还是通过关键字进行正则表达搜索。
隐写术
数据隐藏仅在取证者不知道到哪里寻找证据时才有效。为逃避取证,犯罪者常常把暂时不能删除 的文件伪装成其他类型的文件或把它们隐藏在图形或音乐文件中,也有人将数据文件隐藏在磁盘的隐藏空间中。在Windows系统中,常用的数据隐藏工具有StealthDisk、Cloak、Invisible Secrets等。
这里和misc很像,也有难有简单,有些比赛水的话就直接用隐写术来当取证了。可见学习取证不光是从镜像内存中提取出关键性息,还要懂很多横向的知识,如提取出一个数据库文件需要知道如何查询,提取一堆数据要懂得如何进行大数据分析,提取出一个可疑的图片需要知道如果提取出其隐藏的信息。
文件隐写
简单如查看exif信息,修改图片高度、后缀名、文件头或者直接拖进stegsolve查看图层,winhex查看文件尾部,更有甚者直接在图片上添加一行base64。做题太少的缘故,我碰到的取证中的文件隐写都难度不大,主要就是一个细心以及敏感度,单独拿出来都是轻松秒杀,但放在庞大的镜像里可能就没那么好找。在庞大的数据中,或许我们可以通过其他证据文件来定位这些隐藏文件,比如通过原始数据搜索关键词,可能有意外收获。取证大师可以自动校验文件头信息,改后缀名的会直接在可以文件中列出来,这些内容往往要重点关注,可能就隐藏关键信息。
这一类的话其实很繁杂,很难总结全,个人建议的话就是多刷刷misc题,就水到渠成了。
磁盘隐写
FAT32隐写
隐藏
长文件名的实现有赖于目录项偏移为 0xB 的属性字节,当此字节的属性为:只读、隐藏、系统、卷标,即其值为0F时,DOS 和 WIN32 会认为其不合法而忽略其存在。FAT32隐写通过修改待隐藏文件的目录索引结构,使得 FAT32不能从硬盘上普通数据区中识别出隐藏文件。
当 FAT32 要载入一个文件时,它首先会从根目录开始搜索,遍历每一级子目录定位文件目录项的位置。因此,只要将文件指针的属性字节改为 0x0F、文件长度改为 0 并且首簇地址改为0x00 00 00 00
,FAT32 就会把该文件指针当作长文件名而忽略。从而文件目录列表中也就不存在该文件了。FAT32 找到文件目录项之后,从中读出文件首簇的地址,再根据此地址从FAT表中依次读出数据簇链,从而得到文件的完整内容。为了更进一步的保护数据,我们将文件的首簇设置为坏簇,这样就切断了文件的簇链。即使入侵者跳过文件目录,直接扫描硬盘数据,他也无法得到完整的文件簇链,也就不能得到文件内容。
读取
直接在空白区域读取数据另存为即可
演示
选取whale.jpg,重命名为whale.jpgwha1etest,即制作长文件名文件
制作FAT32盘,将whale.jpgwha1etest拷贝进去
打开winhex,在工具栏选择打开磁盘或者直接F9,打开刚才制作的磁盘
转到目录表
分析数据
文件属性为:20
文件首簇为:0X00040000
文件长度为:00008337
这里把20改成0F即可做到隐藏
资源管理器隐藏
手动刷新winhex状态,选择专业工具的进行磁盘快照或者按F10
选择更新快照
这里可以看到文件在winhex已经消失了,吗?
查看空闲空间,FFD8
,jpg文件头,不用多说了吧,手动提取即可
jpg文件尾为FFD9
,搜索一下选择全部16进制数值
另存为新文件,恢复成功
NTFS隐写
NTFS通常使用NTFS交换数据流(ADS)来实现隐写。NTFS数据流的表述方式为“文件名:流名”,例如“text.txt:extrastream”。数据流不光无法在Windows资源管理器中无法显现,还不会算入文件属性显示的大小。如果文件被移动到FAT格式的磁盘或者任何其他不支持可选流的位置上时,则只有主流数据会被保留下来。
一些恶意程序可能使用NTFS数据流来隐藏程序代码
隐藏
# 使用echo命令可以创建交换数据流文件
echo wha1e>>test1.txt:test2.txt
其中test1.txt
是宿主文件,test2.txt
隐藏文件
# 使用type命令可以链接已存在文件
type file1>>file2:file1
其中file2
是宿主文件,file1
是隐藏文件
读取
notpad为记事本,mspaint为画图软件,调用对应文件查看即可
notpad test1.txt:test2.txt
mspaint test1.txt:picture.png
这里有一个问题就是如果不知道file2
的文件名的话就没法恢复了,所以可以借助第三方工具NtfsStreamsEditor
直接识别提取。
演示
创建三个例子,分别为test1.txt链接test2.txt,test1.txt链接whale.jpg,whale.jpg链接test1.txt。
方法一
直接使用NtfsStreamsEditor一键查看
终端使用对应软件查看
资料抹除
数据抹除是最有效的反取证方法。它清除所有的证据。由于原始数据不存在了,取证自然就无法进行。但是系统的删除功能一般只是把被删除的文件标记为可以改写,并没有把它从存储设备中删除。
在 FAT32 文件系统中,文件通常由三个(至少有一个)部分组成:
1、定义文件属性的目录索引;
2、FAT 中指向数据簇指针链表;
3、一个或多个数据簇。
如果一个文件长度为零,那它就没有数据簇以及指向数据簇的 FAT 指针。,普通的删除只能删除FAT32的根目录,而保留子目录,这种删除只需要使用恢复工具就可以轻松读取信息。如果想要删除的的更彻底,需要将文件的子目录也也一起删除。文章来源:https://www.toymoban.com/news/detail-444496.html
在进行电子数据取证时,可以通过DiskGenius,取证大师,R-Studio等软件进行自动数据恢复。R-Studio作为专业数据恢复软件恢复数据的能力还是高于取证大师的。取证大师的数据恢复功能,优先选择签名恢复,需要什么类型文件恢复什么类型,最直接的问题就是恢复大量无用数据耗费时间,浪费资源,并且庞大的数据不利于后续的取证工作。文章来源地址https://www.toymoban.com/news/detail-444496.html
到了这里,关于Windows传统取证的一些笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!