查看原文
其他

电子数据取证学习笔记

Decease Tide安全团队 2023-02-28


1、电子数据取证架构


2、电子数据取证与应急响应的区别


2.1 实施主体不同

电子取证的主体一般为执法部门和内部安全审计人员,应急响应的主体一般为负责网络安全的政府组织、安全厂商、系统维护人员。

2.2 过程不同

电子数据取证是案件发生后采取措施的过程,应急响应贯穿到事先预防、集中处理和事后弥补整个过程。

2.3 目标不同

电子数据取证是为了获得违法犯罪的证据,目的是形成证据链,应急响应的目标是为了恢复整个系统的正常。


3、存储器指标


3.1 存储器容量

存储容量是存储介质中可以容纳二进制信息的总量,即存储容量=存储单元数✖️存储字长。存储容量越大存储的信息就越多。存储容量通常用位(bit)或字节(Byte)来表示,一般一个字节定义为8个二进制位,因此计算机中一个字的字长通常是8的整数倍。


3.2 数据传输率

数据传输率是指单位时间内存储器所存取的信息量,度量单位通常为位(bit)/秒或字节(Byte)/秒,是衡量电子数据取证效率的重要技术指标。速率越高,意味着单位时间镜像或分析的数据越多。


3.3 数据接口

电子数据取证人员在工作中可能会见到各种外部存储介质接口。接口上的标识主要有IDE、ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100、Ultra ATA/133、Ultra DMA/33、Ultra DMA/66、Ultra DMA/100、Ultra DMA/133、Serial ATA、SCSI、SCSI II、Wide SCSI II、Ultra SCSI II、Ultra Wide SCSI II、Ultra2 SCSI、Ultra160 SCSI、Ultra320 SCSI。
接口按照物理接口种类区别,常见只有九类:SATA、SAS、IDE、SCSI、光纤通道、ZIF、LIF、IEEE 1394和USB。
从控制指令区分,存储介质可以归纳为两大类,即ATA类与SCSI类。SATA、IDE、ZIF、LIF使用的是ATA指令,除了SATA使用串行方式传输数据,其他的都以并行方式传输数据,又称为PATA类;SCSI、SAS和光纤通道使用SCSI指令。


4、扩展分区结构


5、逻辑数据恢复原理

高级格式化仅更新文件分配表,数据区并未被擦除,只有数据擦除或低级格式化,才能破坏系统区域和数据区域的数据。
数据区域的数据通常通过两种方式恢复:
一种是按照文件系统的存储原理,重建MBR、DBR、FAT、FDT,根据存储介质内的数据信息来确定记录文件或目录存储位置的FAT或MFT中的值,从而找回丢失的数据;
另一种是根据文件签名特征中文件头和文件尾特征值进行检索,通过文件签名特征恢复技术直接从数据区域的数据中找回丢失的特定格式的文件。


5.1 文件系统恢复原理


(1)FAT文件系统

在Windows系统中,删除文件或文件夹一般分为普通删除和彻底删除。
普通删除:将文件或文件夹移入回收站(RECYCLER),回收站是Windows系统自动建立在每个硬盘分区根目录下的隐藏文件夹。
FAT文件系统删除一个文件或文件夹需要经过以下过程:

  • • 将文件或文件夹所对应目录项的第一个字节被标记为“已删除对象”,该目录项将不再显示给用户
  • • 更新FAT,FAT表中所记录的分配给该文件或文件夹的所有簇的状态值全部改变为“未分配簇”(Unallocated)
通过这一过程,DATA区中该文件或文件夹的实际数据并未发生改变,仍然保留在原来的簇中。
文件删除前后文件数据区域对比。
“fat-test.txt”文件被删除后,文件目录项头字节被修改为删除标记“E5”,表示该文件已被删除,FAT表中该文件占用的簇被标记为“0”,表示该簇未分配使用,但是文件的数据区域并没有发生任何变化。带有删除标记的文件,操作系统会认为已被删除,在操作系统下不借助专门程序或软件无法看到,直到这些簇被新的文件或文件夹占用,当再次往硬盘中写入数据文件时,系统才会覆盖这些被标为已删除的文件所占用的簇,写入新的数据从而覆盖原文件内容。


(2)NTFS文件系统

删除文件或文件夹时,主文件表MFT中会更新对象对应的记录,将其状态标记为可重新使用,然后在位图文件($Bitmap)中将对象所占用的簇标记为未分配状态,即可被重新使用。与FAT文件系统相同,只要原文件数据所在的簇未被分配给新的文件,对象实际数据就仍可被恢复,知道这些簇被新的文件或文件夹占用。
偏移量00H~37H为$MFT属性头,38H~4FH为MFT的10属性头,98H~AFH为MFT的30属性头,188H~19FH为MFT的40属性头,1B0H~1C7H为MFT的80属性头。
“delete-test.txt”文件被删除后,$MFT属性头的4处数据发生了变化,偏移08H~0FH处由“6F 0D E0 00 00 00 00 00”修改为“A8 08 00 01 00 00 00 00”,这8个字节是日志文件的序列号,每当文件被修改时,都会在$LogFile日志文件中生成相应记录,从而引起日志文件序列号发生变化。
偏移10H~11H处由“01 00”被修改为“02 00”,这2个字节是序列号,记录主文件记录表被重复使用的次数,由于文件被删除,主文件记录表被修改,因此序列号增加1。
偏移16H~17H处由“01 00”被修改为“00 00”,这2个字节是主文件记录表使用标志,“00 00”表示文件被删除。
偏移30H~31H处由“08 00”被修改为“09 00”,这2个字节是主文件记录表的更新序列号,这2个字节同时会出现在该文件记录第一个扇区和第二个扇区最后2个字节处,但$MTF项的10H、30H、40H、80H属性数据均未发生改变。其中80H属性即$DATA属性,容纳着文件的内容,从图中可以看出,该80H属性为常驻属性,属性头后面紧跟的是文件的内容,文件数据内容部分也没有发生该改变,常驻80H属性以“00H”结束,由于文件属性长度是8的整数倍,如果文件内容结束不能达到8的整数倍时,就用“00H”来填充。


(3)exFAT文件系统

exFAT文件删除文件或目录时,文件的每个目录项的首字节被更改,该文件在簇位图文件中对应的位和FAT表中的簇链均被清零,用以表示原文件占用的簇已被释放,但是文件目录项中文件的起始簇号、大小、文件名等信息以及文件所占用的数据区不会被修改和删除。


(4)HFS+文件系统

HFS+文件系统删除文件时,其文件记录完全丢失,文件记录中存放的该文件的文件名、CNID、父目录 ID、时间信息和盘区地址等指向数据存放地址的指针信息全都丢失,但是数据内容并不好被清除,因此对于HFS+文件系统进行恢复时,主要通过文件类型签名进行恢复,HFS+文件系统采用盘区存放数据,数据的连续性比较好,为数据的成功恢复带来了机会。

(5)Ext3

Ext3文件系统删除文件后,被删除文件的目录项的长度值会被添加到上一个目录项的报告长度中,从而回收被删除文件目录项所占用的空间,使系统忽略对被删除文件目录项的读取,但是,被删除目录项中的i-节点号、文件名等信息都没有被改变。被删除的上级目录的i-节点变化时间和修改时间(Modified Time)都会发生相应改变。被删除文件的i-节点的“链接数”将减1,如果链接数成为0,那么就要回收这个i-节点,i-节点中的文件大小和文件的块指针也全部清零,并将文件删除的时间记录下来。被删除文件的i-节点位图中的相应位设置为0以回收该i-节点,然后更新块组描述符和超级块中的空闲i-节点数。同时,被删除文件所占用的块也会通过将块位图中的相应位设置为0来进行回收,并更新块组描述符和超级块中的空闲块数。
从Ext3文件系统删除文件的过程可以看出,被删除文件的目录项中的文件名和i-节点号还存在,通过这些信息可以找到文件的i-节点,但是i-节点中的文件大小和块指针都被清零,虽然数据块没有被清零,但要找到文件的存储位置很难,因此,Ext3文件系统下删除文件的恢复可以考虑按照文件类型签名进行恢复,但是如果文件占用的块比较多,文件不连续存储的可能性较大,文件恢复难度也会增加。


6、文件数据恢复原理


6.1 逻辑数据恢复原理

文件签名特征恢复是数据恢复中较为常用的文件恢复方法。基于文件签名特征的数据恢复中,采用文件签名特征与全盘深度扫描结合的方法,根据不同类型文件签名以扇区为单位在硬盘中检索,首先在每个扇区中搜索去陪文件的头部特征,发现与头部匹配的扇区,确定文件的开始位置,然后再以扇区为单位扫描并根据文件的尾部特征来确定文件在硬盘中的结束位置,并将文件头和文件尾之间的数据保存成文件。
特点:扫描完全,只要数据区中存在特征文件,就会被检索出来。
例:word文档(97-2003)
word文档在硬盘中的实际构成总是以“D0CF11E0A1B11AE10000000000000000”为文件头部特征的,如下图。扫描到文件头之后,继续按扇区查找其文件脚,发现它的二进制表示的文件脚。
这样恢复的文件由于没有先前的目录信息,因此不能恢复出文件名,但是只要数据没被覆盖,就可以对文件进行完全恢复。
影响基于文件特征数据恢复方法的效果主要有两个方面:
  • • 一是文件是否为连续存储,即是否存在碎片;
  • • 二是文件中数据是否被覆盖(部分覆盖)。
这两种情况下恢复出来的数据可能无法打开或者只显示部分数据。


7、物理修复原理


7.1 固件修复

固件修复属于底层的数据恢复技术,是电子数据取证领域的重要一环,在电子数据存储介质出现大量物理或逻辑坏道、固件损坏(无法识别硬盘或出现全盘坏道)、因物理损坏导致固件受损等情况中,需先对固件进行修复,然后才能进行逻辑层面的数据恢复。

固件的概念

固件是固化在硬件中的软件,存储着计算机系统中硬件设备最基本的参数,为系统提供最底层、最直接的硬件控制。
固件存放位置一般有两种形式:
  • • 一种是一部分固件数据保存在硬盘电路板的芯片中,另一部分保存在硬盘盘片的副磁道上,即0磁道前面的磁道
  • • 另一种是所有的固件数据全部保存在硬盘的副磁道上。

    固件的结构

    大部分硬盘固件有两个工作区,即主固件和次固件区,有些硬盘则有三个,多一个备份固件区。
  • • 固件管理模块:由初始诊断模块、伺服电机旋转控制模块、磁头定位模块、硬盘控制器和缓冲存储器的信息交换模块等构成。管理模块出现损坏,一般会造成硬盘不能准备就绪或者硬盘的型号、容量等相关参数不能被正确识别等故障。
  • • 配置和设置表:包含关于硬盘空间的逻辑和物理信息。如果配置和设置表出现故障,硬盘的型号、最大LBA值、物理磁头的定位、Zone分配表等相关参数将不能被正确识别。
  • • 缺陷列表:厂家会通过缺陷列表的方式将缺陷扇区进行记录,从而使用户不能发现和使用到缺陷扇区。一般缺陷列表包括P-list、G-list、U表和道表四种。P-list又称为永久缺陷列表,厂家在硬盘出场前会对其进行全面校准,将校准过程中找到的缺陷磁道和扇区记录在P-list中,并且对所有磁道和扇区编号过程中,跳过这些缺陷扇区。G-list又称为增长缺陷列表,硬盘在使用中如果出现了新的缺陷扇区,硬盘会通过自动修复机制,使用保留扇区中的一个备用扇区来替换该缺憾扇区,并将新发现的缺陷扇区记录到G-list中。保留扇区在硬盘内磁道,缺陷扇区加入G-list后会影响读写速度。U表即固件区缺陷列表,用于记录硬盘固件区产生的缺陷,该表主要存在于迈拓和西部数据两个品牌的硬盘。道表就是压缩后的P表,由于固件区存储空间有限,当向其中加入的缺陷信息达到一定程度时,无法继续写入,这是就可将P-list进行压缩,以增加P-list容量。
  • • 固件区还有硬盘工作记录表,包括硬盘生产和运行过程中的辅助信息,如检测结果、检测程序动作记录等。


7.2 硬盘物理故障修复

硬盘是机、电、磁一体化的复杂系统,硬盘物理故障主要包括电路板故障、磁头组件故障、主轴电机故障、盘片故障等方面。
对于硬盘电路板供电、接口、缓存、BIOS、电机驱动芯片等出现故障时,既可以通过维修或更换受损电阻、电容、场效应管等元器件修复故障硬盘的电路板,也可以使用相同型号硬盘的电路板替换故障硬盘的电路板,从而使硬盘恢复正常工作。
对于硬盘磁头芯片、前置信号处理器、音圈电机、磁头等磁头组件出现故障时,由于磁头组件精密度高、维修成本高,因此一般是使用相同型号的硬盘的磁头组件替换故障硬盘的磁头组件,从而将故障硬盘上的数据读取出来。
对于硬盘主轴电机故障,由于多数硬盘的主轴电机是铆在硬盘盘体上,不能拆解,因此一般是通过把故障硬盘盘片取下放到相同型号的备件盘盘体内的方法,使用备件盘将故障盘盘片上的数据读取出来。
对于硬盘盘片出现坏扇区时,一般通过替换G-list或者隐藏P-list等方法进行修复,而如果硬盘盘片出现划伤,盘片上的数据基本就无法恢复了。


7.3 芯片存储物理故障修复

芯片级存储设备具有数据动态性、系统封闭性、存储方式多样性等特点。
芯片存储设备(U盘、存储卡、固态硬盘等)出现物理故障一般表现为没有任何反应、无法识别的设备、无容量、无媒体、无法格式化等情况,故障原因一般为接口故障、供电故障、晶振故障、主控芯片故障、闪存芯片故障或其他元器件烧毁。
对于U盘的故障,一般可以通过焊脚补焊、替换相同频率晶振、替换相同型号主控芯片等方法进行修复。如果U盘电路板上的元器件损坏比较严重,较难修复,可以将其闪存芯片吹焊下来,再吹焊到相同型号的备件U盘电路板上,使U盘能够正常工作。
除此之外,还可以利用由软件和硬件相结合来实现一个U盘控制器的仿真器,通过译码器运算将闪存芯片的内容解码,即可实现正确读取闪存芯片内数据的目的。


8、数据分析


8.1 时间的基本知识

计算机中,确认时间时,通常包含两部分:日期和时间,而且这两者始终是保存在一起的。

1、时间概念

  • • GMT(格林威治平均时)时间:平太阳时就是指经修订后的视太阳时。在本初子午线(英国格林威治子午线)上的平太阳时被确定为格林威治平时(GMT)
  • • UTC是协调世界时英文缩写,由于地球每天的自转是有些不规则的,而且正在缓慢减速。UTC相当于本初子午线(即经度0度)上的平均太阳时,UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于大部分应用来说,GMT与UTC的功能与精确度是没有区别的。
  • • 国际原子时(TAI):国际计量局(BIPM)根据世界20多个国家的实验室的100多台原子钟提供的数据进行处理,得出“国际时间标准”称为国际原子时(TAI)。国际原子时(TAI)的准确度为每日数纳秒,而协调世界时(UTC)的准确度为每日数毫秒。计算机中,一般不用国际原子时(TAI)表示时间,多采用GMT和UTC时间基准。国际原子时(TAI)仅在网络校时中起到一定作用。
  • • 时区
  • • 夏时制(简称D.S.T):是指夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用,在英国则称为夏令时间。
  • • 本地时间:本地时间就是所在地的时间,本地时间基于GMT/UTC,计算了本地所在时区偏差和夏时制所得出的时间。
  • • 闰年

    2、时间定义


    系统时间

  1. 1. 系统时间定义:系统时间以CMOS时间作为基准,CMOS(互补金属氧化物)是板载的半导体芯片。从某种意义上来讲,CMOS时间是所有时间的来源,操作系统读取CMOS时间作为系统时间,文件在创建、修改、访问的时候,创建、修改、访问时间是根据系统时间进行修正和存储的。
  2. 2. 系统时间在Windwos中以128bit长度存储。分为8部分,每部分为16bit。
  3. 3. 存储格式:
  1. 1. 系统时间在写入文件时将转化为文件时间。


时区偏移

在Windows NT/2000/XP系统中,由注册表的HKEY_Local_Machine\SYSTEM\Select中的Current键值来确定HKEY_Local_Machine\SYSTEM\ControlSet00#(#=Current减值,一般为1或2)\Control\TimeZoneInformation下的键值为当前用户配置。
计算系统时区偏移时,要首先确定HKEY_Local_Machine/System/Current ControlSet/Control/TimeZoneInformation/Bias。Bias是相对于GMT时间的负偏移量,以分钟数计。而ActiveTimeBias是实行夏时制的时间偏移(少60分钟)。计算当地时间的公示为Local Time = UTC-ActiveTimeBias。


文件时间

属性时间的格式和存储方式根据系统而异。在某些文件中,文件中还会有内嵌时间。从证据力上,由于内嵌时间不为人知,内嵌时间的证据力要大于属性时间。属性时间和内嵌时间统一被称为文件时间。

文件时间主要格式


32位Windows/Dos文件时间格式

32位Windows/Dos时间格式被存储于32bit(4字节)二进制数据格式内。适用于大部分FAT文件系统的DOS函数调用,FAT文件系统目录项中的文件创建,修改,访问的时间就是这种数据结构。
创建时间除了32位的时间表示外,还有1个字节(8bit)保存有1/100秒的数值;
修改时间是正常的32位的时间表示;
根据FAT的设计,访问时间只保存日期,不保存时间。
32位Windows/Dos时间显示的秒只能为偶数(以2s为间隔)
MS-DOS:wFatDate wFatTime的时间格式。这种时间格式是将32位Windows/Dos时间进行了转化。将32位分为两个部分,分别是wFatDate存放日月年,wFatTime存放秒分钟小时。MS-DOS:wFatDate+wFatTime(将32位Windows/Dos时间格式高16位和低16位置换。在DCode中MS-DOS 32bit Hex Value和MS-DOS:wFatDate wFatTime 就是这个关系)
MS-DOS:wFatDate wFatTime在快捷方式文件(LNK)中的LinkTargetListID中出现。


64位Windows/FILETIME文件时间格式

64位的Windows/FILETIME文件时间格式是基于1601年1月1日00:00:00,以100ns(1ns=10-9s)递增的UTC时间格式。这种格式应用于NTFS格式文件系统中的NTFS Master File Table(MFT),存储文件建立时间,最后修改时间,最后访问时间和MFT记录最后修改时间,它们存储的是GMT/UTC时间。
64位的Windows/FILETIME文件时间还保存在日志文件、缩略图文件和快捷方式文件等多种文件中。
64位的Windows/FILETIME文件时间格式为8个字节长,通常最后一位是01H。


C/Unix文件时间格式

C/Unix时间,或称POSIX时间,是Unix或类Unix系统使用的时间表示方式。是从协调世界时(UTC)1970年1月1日0时0分0秒起至现在的总秒数(不包括闰秒)
C/Unix时间在Unix系统中和网络传输中很常见。Java和Win32可执行程序也使用这个时间。Windows存储在注册表中国呢的开机时间也是使用C/Unix时间格式。C/Unix时间用于UFS1、UFS2、Ext2、Ext3、Ext4文件系统。
C/Unix时间可以使用dcode,也可以在线解析,但是要注意字节顺序。


HFS和HFS+文件时间格式

早期的苹果计算机采用MFS文件系统,又称分层文件系统。苹果Mac文件系统(HFS和HFS+)的时间存储于32bit(4字节)二进制中,基于1904年1月1日00:00:00,以秒递增(不包括闰秒)。能表示的最大值是格林威治时间2040年2月6日06:28:15 GMT。HFS和HFS+的时间格式不包括闰秒,但包括闰年。
HSF和HSF+文件系统的卷头和目录中包含有时间,其中HFS均以本地时间标准来存储,而HFS+卷头的创建时间以本地时间标准、其他时间以GMT/UTC时间标准存储,这是因为HFS+文件系统中以创建时间作为软件的统一标识,如果以GMT/UTC时间格式存储,会被时区干扰。目录中的时间都以GMT/UTC时间标准来存储。
HFS+的目录是保存文件夹和文件的属性的区域,因此也包含了相应的时间。这些时间是以HFS+文件时间格式保存的。


ISO9660/UDF时间

ISO9660文件系统应用于CD-ROM中;UDF文件系统应用于DVD中。
ISO9660有4个时间,包括创建时间、修改时间、有效时间和过期时间。
UDF与ISO9660类似,但是没有修改时间。
ISO9660/UDF时间都为17个字节长度。


GSM/UMTS时间格式

GSM/UMTS的短信使用PDU编码来传输数据。短信中包含有时间戳,时间戳长度为7个字节。
时间戳的前1-6个字节使用BCD编码,每个字节分为两部分,为0x00-0x03(最高有效位)和0x04-0x07(最低有效位)。第7个字节的0x00-0x02(最高有效位)和0x04-0x07(最低有效位)补位组成时区偏移,以UTC为基准,15分钟为递增计数,0x03代表偏移方向(0为正;1为负)


Windows时间属性

当文件被建立、修改和访问的时候,Windows系统就会在文件系统中记录时间。FAT时间格式则是基于当地时间以32位Windows/Dos文件时间格式存储。NTFS文件系统基于GMT/UTC时间,以64位Windows/FILETIME文件时间格式存储。
M-A-C时间为修改时间、访问时间、创建时间的简称。
M-A-C时间在FAT文件系统中以32位Windows/Dos时间格式存储。在NTFS文件系统中是以64位Windows/FILETIME时间格式存储。

创建时间

文件或目录第一次被创建或者写到硬盘上的时间。

修改时间

应用软件对文件内容作最后修改的时间(打开文件,任何方式编辑,然后写回硬盘)。

Accessed Time,A时间

某种操作最后施加于文件上的时间,包括查看属性、复制、用查看器查看、应用程序打开或打印,几乎所有的操作都会重置这个时间(包括资源管理器,但DIR命令不会)。

节点修改时间(E时间,ENTRY MODIFIED)

NTFS使用数据流来存储数据,在文件任何属性和内容变化时,相应的数据流就被改变。
在文件系统中,数据流相应的也有一个修改时间,称为节点修改时间(E时间)。NTFS的时间也被称为M-A-C-E时间。
文件的最后访问时间的更新间隔被设置成最近的一天(FAT)或最近的一小时(NTFS),最后访问时间不是精确时间,不能作为证据使用。
Unix/Linux下文件的时间包括最后修改时间、最近访问时间、i节点变化时间。
Ext3下还包括创建时间、修改时间、备份时间和最后检查时间。

文件内嵌时间

超过25000种文件内部都有时间戳。很多文件都具有标准格式,可以跨平台使用。

Office中的时间

office文件除了属性时间外,在Word、Powerpoint、Excel中还内嵌了时间戳。分别为创建时间、修改时间、存取时间和打印时间。
这些信息是以二进制形式保存在文件内部。在Office中,保存在SummaryInformation数据流中。通过属性ID表示和属性偏移量来定义保存空间。
一般通过手动方式对其进行解析,也可以通过恢复Office文件的方式,通过查看属性来获取时间值。

JIFF文件时间

凡事使用数码设备拍摄的照片都要遵循JFIF格式,即JPEG文件交换格式。
JFIF格式是内嵌到图片数据中的。
JFIF中的内嵌的拍摄时间是以ASCII形式保存的,可以直接查看拍摄时间。


8.2 文件挖掘

文件挖掘又称为文件雕刻,是从未知的二进制数据中获取有效的、可理解的数据过程。
文件挖掘是针对元数据。

文件挖掘种类


普通挖掘

从原始数据的数据中提出文件或数据

文件头/尾挖掘

通过定位文件头和尾的位置,来提取文件。又称为“文件签名挖掘”技术。如html文件、jpeg文件恢复。

头+长度挖掘

只能定位或者有文件头,同时文件长度固定或不影响文件内容,可以规定一个范围来提取文件。

文件结构挖掘

通过解析文件内部结构和编码,来直接解析其中重要信息和恢复文件。又被称为“Semantic Carving”和“Deep Carving”。文件结构挖掘是针对文件数据结构来进行分析的,电子数据取证使用最为广泛的技术。例如对于Office文件、Index.dat、回收站文件等文件的取证都是基于文件结构挖掘的。

碎片恢复挖掘

超过两个以上碎片,通过重组形成为原始文件。又被称为“Split Carving”。

重构挖掘

通过给碎片文件添加重要结构,例如文件头、文件尾和关键结构信息。
文件挖掘工具已经成为取证工具开发的基础,如Foremost、Scalpel、WinHex等。


8.3 网络数据分析

网络数据利用各种协议进行传输。使用嗅探方法进行。

嗅探技术类型


本机嗅探

本机嗅探是直接分析本机网卡上的网络传输数据。

网络嗅探


网卡四种接受模式


广播方式

该模式下的网卡能够接受网络中的广播信息

组播方式

设置在该模式下的网卡能够接受组播数据

直接方式

在这种模式下,只有目的网卡才能接受该数据

混杂模式

在这种模式的网卡能够接受一切通过它的数据,而不管该数据是否是传给它的。

嗅探方式


广播网嗅探

用集线器(hub)组件的广播网络是基于共享的原理的,广播网中所有的网卡都会收到所有数据包,直接就可以进行嗅探。

ARP欺骗嗅探

在正常情况下,以太网络中一个主机的网络接口应该只响应这样的两种数据帧:
1、与自己硬件地址相匹配的数据帧
2、发向所有机器的广播数据帧
ARP欺骗嗅探是将本身伪造成网关,向目标PC发送广播数据,欺骗目标PC,让它认为嗅探PC是网关,由嗅探PC承担数据转发,以此截获目标PC的网络数据。

端口镜像嗅探

端口镜像称为巡回分析端口,它从网络交换机的一个端口转发每个进出分组数据的拷贝到另一个端口,可以此端口进行分析,端口镜像是监视网络通行量和通讯内容的一种方法。
基于端口镜像的嗅探受限于交换机能够支持的镜像功能,能够镜像多少端口、镜像出来的协议如何都取决于交换机的型号和配置。低端交换机不能活着只能单端口到单端口的镜像,高端交换机都支持多对一的端口镜像。基于端口镜像的嗅探必须拥有交换机的管理权限。
嗅探器分为通用嗅探器和专用嗅探器。前者支持多种协议,如tcpdump、Wireshark、Sniffit等,后者是针对特定协议进行嗅探的。


9、电子数据取证的原则与流程


9.1 电子取证的基本原则

1、取证流程符合国家和地方的法律法规,从事取证的执法人员得到法律的授权;
2、必须采取完全可靠的取证方法来保证电子数据的完整性、连续性。即在作为证据使用的电子数据被正式提交给法庭时,必须能够说明在数据从最初的获取状态到在法庭上出现状态之间的任何变化;
3、从事取证的执法人员必须经过专业的培训;
4、任何针对数据的获取、存储、运输、分析检查的活动都必须在案,存档待查;
5、取证人员应该配备符合要求的取证工具。


9.2 电子取证的流程

电子数据取证主要是通过对存储介质进行获取、分析,从中发现与案件相关的线索和情报信息。

电子数据取证流程步骤


1、评估

电子数据人员应该针对工作作出全面的评估,以决定下一步采取的行动;

2、获取

电子数据必须保存于原始状态中,防止被不正确的处理方式所影响、损坏或者被删除。

3、分析

提取出有用的证据,分析判断其中的关联性。将数据转换为可读可写的形式。所有分析最好在原始数据的备份中进行。原始证据应该被安全的获取以保持证据的完整性;

4、报告

所有操作都必须以日志形式记录、所有的结果都必须以报告形式记录。


9.3 收集易失性数据的基本步骤

  1. 1. 运行可信的程序
  2. 2. 记录系统时间和日期
  3. 3. 确定登陆信息(包括远程用户)
  4. 4. 记录所有文件的创建、修改和访问时间
  5. 5. 确定打开的端口
  6. 6. 列出与打开端口相关的应用程序
  7. 7. 列出所有正在运行的进程
  8. 8. 列出所有当前和最近的连接
  9. 9. 再次记录系统时间和日期

    9.4 分析过程


    1、获得取证目标的基本信息

    基本信息包括系统类型、账户信息、安装时间、关机时间等;基本信息的获取,可以利用取证工具的脚本或者自动提取功能来实现。基本信息可以为电子数据取证人员提供目标的一个基本概况,为下一步的取证工作打好基础。

    2、文件过滤

    文件过滤依赖于操作系统、文件系统和应用程序。

    3、关键词搜索

    关键词搜索不依赖文件系统,设置的关键词以二进制的形式,在介质中进行遍历,直到命中结果。

    4、文件分析

    针对过滤或者查找到的文件信息和元数据进行分析。

    需要分析的信息


    查看文件数量和类型。


    检查文件内容;


    检查文件元数据。


9.5 单机环境电子数据取证


单机环境电子数据取证特点

  • • 数据保存在相对稳定的环境中。
  • • 人机关联。
  • • 取证的难度较低。


9.6 网络环境电子数据取证


网络环境电子数据取证特点

  • • 数据量大。
  • • 数据类型相对单一。
  • • 数据格式复杂化。


10、电子数据取证技术


10.1 时间取证


取证环境时间校正和同步

取证环境的时间校正和同步主要分两个方面:
  • • 取证设备的操作系统时间要与标准时间同步,确保取证的绝对时间准确。
  • • 取证工具的时间设置与被取证目标操作系统的时间偏移量保持相对一致。

    取证目标的时间检查


    取证目标的时间检查需注意的因素:


    1、系统时间是否准确

    需要查看CMOS时间与标准时间的差异。如果系统时间不准确,文件时间也会相应不准确,需要注意偏移,防止因为偏移造成误判。

    2、时区和夏时制的影响

    时区和夏时制往往被忽略,检查时不但要通过系统时间查看,还要查看注册表中当前时区。

    3、用户是否重新设置过时间和设置系统时间的次数

    恶意用户为了掩盖行为,往往修改系统时间后进行非法操作,然后再将系统时间改为正常来逃避打击。联网时是否进行过校正系统的时区。

    4、进程和应用程序写入的时间戳

  1. 1. 不同操作系统、不同文件系统和不同的格式化工具,都可能影响时间。
  2. 2. 某些防病毒软件对文件进行扫描时,最后访问时间会发生改变。而某些防病毒软件在完成病毒扫描后会恢复最后访问时间。
  3. 3. 部分软件为了加快数据的索引速度,索引功能会改变时间戳。
  4. 4. 在不同格式分区移动或者拷贝文件,其中的M-A-C时间可能会发生多种变化。

    时间的更新规律

    文件和文件夹在移动、复制、剪贴等常见操作下,时间会有不同的变化规律。
其中的复制文件和剪切文件均包含卷内复制、剪贴和跨卷复制、剪贴。
文件夹在重命名、修改属性和文件夹内容修改时,时间更新规律如下:


时间取证的基本判断规则

时间取证具有一定的基本判断规则:
1、如果修改时间等于建立时间,那么文件是原始文件,既没有被修改也没有被剪切。
2、如果修改时间早于建立时间,则文件被复制或者移动过。
3、如果硬盘上批量文件具有相近访问时间,则有可能被同一工具软件扫描过,如杀软。如果相同文件夹中图像和视频文件有相近访问时间,并且没有其他的图像和视频文件具有相似的访问时间,则这极有可能被一个图像和视频预览工具访问或者打开过。
4、同文件夹中,如果一些文件的修改时间等于创建时间,并且有很近的创建时间或修改时间,则可能是从网上批量下载。
5、文件拷贝时,文件创建时间为拷贝时间,文件修改时间与源文件一致。
6、文件下载时,文件创建时间为开始下载的时间,文件修改时间为下载结束的时间。注意:使用IE下载时是先下载到临时目录在拷贝。
7、压缩文件解压时,通常情况(WinRAR、WinZip)下文件的创建时间为解压时间,文件修改时间与压缩前的文件一致。


文件系统创建时间


1、FAT文件系统确定卷创建时间

在FAT分区中,如果设置卷标,在FAT表头会出现一个卷标记录。
相对于这个记录的偏移量0x16是32位Windows/DOS文件时间格式表示的最后写入时间,也就是卷更新(格式化)的本地时间。其中“016E3B3E” = “2011年1月27日13:48:02”


2、NTFS文件系统卷M-A-C时间

在格式化NTFS文件系统时,就建立了主文件表(MFT),主文件表(MFT)由MFT项组成。MFT项由头和属性列表组成。MFT属性中的标准属性内嵌了64位Windows/FILETIME时间表示的M-A-C-E时间。因为NTFS将分区信息以文件形式保存,$MFT是MFT表的系统元文件,0号MFT就是对自身进行描述。在$MFT中偏移量0x50处开始的32个字节组(4组)存储的是M-A-C-E时间,时间格式是64位Windows/FILETIME时间格式。
0号MFT项表示NTFS卷创建时间,因此M-A-C-E时间为同一时间。例中“23 0D A9 6D 1D 7F CB 01” = 2010年11月8日 16:17:48 GMT+8


3、Ext3文件系统卷M-A-C时间

由于Ext3的块大小可能是1024字节、2048字节或4096字节,因此存放文件系统元数据的超级块的地址也是变化的。

块大小

引导程序或保留扇区
超级块
1024字节(2扇区)
0号块
1号块
2048字节(4扇区)
0号块的前两个扇区
0号块的后两个扇区
4096字节(8扇区)
0号块的前两个扇区
2-3号两个扇区,其余空闲
可以从0x108-0x10B获得文件系统创建时间,也就是卷创建时间。此处卷创建时间=95 84 79 4D = 2011年3月11日 10:10:29 GMT+8。Ext4文件系统与Ext3文件系统只是增加日志功能,其他无变化。

HFS+文件系统确定卷M-A-C方法

格式化HFS+文件系统时,生成文件系统卷头。HFS+文件系统卷头位于2号扇区,占用1个扇区,类似于FAT和NTFS的DBR。Mac OS系统使用大端字节顺序存储数据。
四个时间中,创建时间以本地时间保存,其他时间以GMT/UTC时间保存。例中卷创建时间 = “C9 8E 89 18” = 2011年2月26日 10:40:24 Local

操作系统安装时间

Windows操作系统初始安装日期保存在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的InstallDate键中。时间以C/Unix时间格式存储。


开机和关机时间

Windows中,有多种方法验证开机时间。

1、日志中的开机时间

Windows的系统日志记录开关机的日志信息。
其中事件ID=6005记录事件日志启动时间,也可以认为系统的启动时间。
事件ID=6006记录事件日志停止时间,也可以认为是系统关闭时间。
事件ID=6008记录异常关闭。
事件ID=6009记录在启动过程中的操作系统版本和其他系统信息。
但是多种因素如断电、死机都有可能会影响系统日志。

2、用户登陆时间

Windows操作系统的用户登陆信息保存在“HKEY_LOCAY_MACHINE\SAM\SAM\Domains\account\Users\Names%RID%\”中,RID是相对标识符。由“HKEY_LOCAY_MACHINE\SAM\SAM\Domains\account\Users\Names\Names\用户名”指定。此处记录了用户登陆的时间信息,也可以认为是开机时间的一种表现。
用户“X61”的RID为“0x3E8”。在“HKEY_LOCAY_MACHINE\SAM\SAM\Domains\account\Users\Names\000003E8\F”中是用户登陆信息。
例如在此例中最后登陆时间= “D6 AD 61 81 DF D3 CB 01” = 2011年2月24日 12:58:41 GMT+8。
设置密码时间 = “6D DB BB 11 20 7F CB 01” = 2010年11月8日 16:36:42 GMT+8
注意:木马添加的账户,在一般情况是只能通过注册表才能查看的。


3、SAM更新时间

SAM文件中保存了用户的账户信息,在进入系统之前,需要对账户进行验证,此时就保存了SAM的更新时间。
SAM文件头为512字节大小。在偏移量0x0C-0x13的8个字节中保存的是更新SAM文件的时间,也可以认为是开机时间。这个时间以64位Windows/FILETIME时间格式保存。
在Windows中,正常关机会在以下两处留下记录。

1、系统日志中的关机时间

在Windows系统注销或者关闭时,需要停止事件日志服务,相应的事件ID=6006。可以认为是关机时间。

2、注册表中的关机时间

Windows正常关机时间保存在注册表"HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet00#\Control"的ShutdownTime键值中,以64位Windows/FILETIME时间格式保存。
如果系统断电和死机,系统不一定会记录时间更新信息。
在Mac OS中,关机时间会在HFS+文件系统卷头(2号扇区)中体现。一般认为,修改时间就是系统关机时间。


10.2 Windows取证


10.2.1 Windows重点目录


1、用户目录

用户目录中包含的文档:
1、最近访问的文档。
最近访问的文档包括用户最近访问的文件。在WinVista/7以后,最近访问的文档已经被更名为最后访问的位置,目录位于\Users<用户名>\AppData\Roaming\Microsoft\Windows\Recent
2、桌面
3、我的文档
4、发送到目录
5、临时目录
临时目录存在于“Documents and Settings\用户名\Local Setting”中。用于文件临时存放。部分程序在安装时,会在临时目录中暂存相关文件,但在安装后不一定删除该文件。
Windows Vista/7/2008的临时目录位于\Users<用户名>\AppData\Local\Temp
6、收藏夹
收藏夹保存的是IE的快捷链接,扩展名为Url。
快捷方式由类组成,类主要分为[InternetShortcut]、[DEFAULT]、[DOC#n(#n#n#n...)]
以InternetShortcut类为例:
7、Cookies目录
Cookies目录存在于用户目录下,为隐藏属性。在访问一个网站后,会在此目录中保存网站的Cookie文件。
Cookie目录中通常有两类文件,一类是以“用户名@网站名.txt”命名的TXT文件,一类是index.dat文件。二者都保存了访问网站的信息。但是TXT文件是真正起作用的Cookies文件。其中包括了创建时间和过期时间。
8、IE历史记录目录
历史记录目录存在于用户的“Local Setting”目录下。默认保持历史记录为20天。
9、IE Cache
Internet历史文件位于用户目录的“Local Setting”目录中,用于保存IE访问Internet的缓存信息和文件。功能是当用户再次访问同一网站时,如果网站没有较大变动,就不用重复下载网站图片和页面信息,以提高浏览速度。这个目录下也有index.dat文件,它保存在子目录“Content.IE5”中。
Internet历史文件目录不但保存着IE的历史记录,而且还是Outlook的附件缓存目录,在Outlook打开附件时,会在Internet历史文件目录中生成一个以“OLK”开头,附加一系列随机字母的目录,其中保存着附件。在这个目录下,还有Outlook Express和Hotmail的附件信息。
10、最近打开的Office文档
Users<user name>\AppData\Roaming\Microsoft\Office\Recent中保存的是最近打开的Office文档的快捷方式。

2、交换文件

当内存少于系统应用的需求时,系统会生成一个交换文件来暂存内存数据,以释放部分内存来进行应用。这个交换文件又叫做页文件(Pagefile.sys),它存在于根目录中,交换文件会很大,通常会超过内存容量。
交换文件可以解决动态内存数据因为断电而不复存在的问题。通过检查交换文件,可以获取文件碎片以便进行分析。

3、休眠文件(Hibernation File)

休眠文件是另外一个获得内存数据的来源。
休眠文件保存在系统根目录中的hiberfil.sys中。
因为是将内存数据完全镜像于休眠文件中,因此休眠文件的大小等同于系统内存。即使系统并未进入休眠状态,休眠文件也将存在,只不过数据都为0x00。

4、假脱机打印文件(Print Spooling)

Windows中打印文件时,会生成假脱机打印文件。假脱机打印文件在后台以队列方式自动运行,以便用户不必等待打印结束就可以打印下一个文件。使用网络打印机时,假脱机打印文件将被发送给连接打印机的服务器上。打印完成回会被系统逻辑删除。
打印机以RAW和EMF两种模式来进行打印。RAW模式指的是原始图像格式。EMF模式,图像将被转换为EMF格式,EMF不是单独的文件,而是内嵌在其他文件中。EMF时默认打印模式。
每个打印任务会生成两个文件。一个是假脱机文件,扩展名为SPL;另一个是影子文件,扩展名为SHD。
命名方式:“5个数字”或“字母+5个数字”,根据打印任务递增。如00002.SPL、00002.SHD。
假脱机文件(SPL)和影子文件(SHD)包括了用户名、打印机名、文件名、打印模式(RAW或EMF)等打印信息。
假脱机文件(SPL)还包括了打印内容,如果是RAW模式,假脱机文件(SPL就包含了原始打印内容)。Windows系统默认使用EMF模式,每个打印页面都被转换为EMF格式保存在假脱机文件(SPL)中。
打印时,假脱机文件(SPL)和影子文件(SHD)会被保存在打印池中。这个目录是由注册表HKEY_LOCAL_MATHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printer\的DefaultSpoolDirectory键值决定。
EMF文件有特殊的文件签名,不同系统中是不相同的。
由于系统会在打印结束后删除假脱机文件,因此假脱机文件大都保存在未分配空间、文件松驰区、交换文件、休眠文件中。但只要对EMF文件头进行文件签名分析,就会提取到打印过的图像信息。

5、日志文件

日志文件保存在以下位置中:
Win7 : Windows\inf\setupapi.dev.log,设备安装日志。
Windows\inf\setupapi.app.log,应用程序安装日志。

6、预读取文件(Windows Prefetch)

Prefetch目录的作用是加快系统启动的进程。Windows XP之后新的系统会自动记录下启动时运行的每一个程序,并根据这些信息加快下一次启动的时间。这些文件以pf文件为后缀。预读取文件的目录位于“Windows/Prefetch”
系统启动时,Windows Cache manager监测两分钟内的启动程序,1分钟内的Windows服务以及10秒内运行的应用程序。
预读取文件由注册表项“HKLM\System\CurrentControlSet\Control\SessionManager\MemoryManagement\Prefetch paramters”控制。
默认,Windows XP,Vista,and Windows 7设置为“3”,Windows 2003设置为“2”。
预读取文件(pf)主要分三类,主要起以下作用:
(1)启动加速类
某些文件是系统启动时需要用的文件,将这些文件形成预读取文件会提高系统启动速度。
启动加速文件的命名是固定的,例如NTOSBOOT-BOODFAAD.pf。此类文件的文件名后面总是BAADFOOD,里面保存的是未初始化的数据,是预读取文件中占用空间最大的一类文件。
(2)程序加速类
程序的内存页形成的预读取文件会提高程序的启动速度。命名以文件名后跟4个字节运算值,这个值以PI(3.14159)为种子随机运算+37而得出的。例如:CMD.EXE-4A81B364.pf
(3)进程加速类
预读取文件中包含了程序名称、时间戳和运行次数等信息。其中时间戳以GMT格式存储。
每一个预读取文件的文件头都有特殊标记,Windows XP/2003以“11 00 00 00 53 43 43 41”开头,而Windows Vista/7以“17 00 00 00 53 43 43 41”开头。因此即使预读取文件被删除,也能通过GREP语法来找到文件起始,由于预读取文件没有文件尾,可以将超过源文件大小的数据提取出来进行分析。

10.3 浏览器取证

网页浏览器活动需要调查的内容:
1、上网访问历史记录(访问过的站点地址列表、次数、最后访问时间等)
2、缓存(Cache)
3、Cookies
4、收藏夹(Favorites)


1、IE浏览器

(1)传统IE浏览器(5.0-9.0版本)

1)上网访问历史记录
IE浏览器会将所有访问过的站点各个页面的URL地址记录到用户配置文件夹下的History.IE5文件夹中,并以浏览时间为序列列出最近浏览过的站点。所有地址链接和各种访问的详细信息都存储在名为Index.dat的索引文件中。
  • • Windows 2000/Windows XP:“%systemdir%\Documents” and “Settings%username%\Local Settings\History\History.IE5”
  • • Vista/Win7/Win8:“%systemdir%\Users%username%\AppData\Local\Microsoft\Windows\History”
Windows操作系统正在运行的情况下,对于数据读取访问做了特殊处理,与真正在硬盘上存储的文件视图有差异。
通常History.IE5下有一个全局索引文件Index.dat,在各个以时间序列分组的各个文件夹下也都有一个索引文件Index.dat
用户在IE浏览器地址栏输入URL地址后,系统将会把输入过的网站URL存储到用户注册表NTUser.dat中,通常可通过注册表取证工具读取该文件节点Software\Microsoft\Internet Explorer\TypedURLs找到相应信息。
2)缓存(Cache)
IE浏览器的缓存数据通常存储在用户配置文件夹下的Local Settings\Temporary Internet Files文件夹(如\Documents and Settings%username%\Local Settings\Temporary Internet Files\Content.IE5),用户也可以通过工具修改默认存储缓存的路径。
Content.IE5中的索引文件Index.dat,包含了通过IE浏览器访问网页后在该计算机中缓存的文件的相关记录,用于加速浏览器的速度。缓存的文件存储在本地计算机时被重新命名。
3)Cookies
Cookies通常存储在用户配置文件夹下的Cookies文件夹,该文件夹下保存了1个索引文件Index.dat和大量的Cookies文本文件。Index.dat记录了用户访问的所有站点地址信息,Cookies文本文件则单独记录了各个站点的相关信息。
通常Windows下的Cookies文件的命名规则:“用户名@站点相关的名称[序号].txt”
4)收藏夹
通常收藏夹默认存储于用户配置文件夹下的Favorites文件夹(%UserProfile%\Favorites)。
收藏夹中每个站点链接的文件的扩展名为url。可以通过分析用户注册表(NTUser.dat)解析IE浏览器收藏夹的存储路径来查看。
用户注册表中记录用户IE收藏夹的路径:Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Favorites

(2)新一代IE浏览器(10.0-11.0版本)

从电子数据取证角度来看,IE10.0最大的变化就是使用了一个全新的WebCacheV01.dat代替传统的index.dat,该文件是一个数据库文件,是一种可扩展存储引擎(简称ESE)的数据库。
ESE可扩展存储引擎是一种灵活度很高的数据库类型,大小可以是1MB,也可以是1TB,使用一种崩溃恢复机制,保证数据库所存储的数据的一致性,ESE的高级缓存系统让其能高效访问数据。
ESE可扩展引擎数据库的存储单元是页(Page),在Windows7系统中,每个页大小为32KB,除了部分特殊的“长”记录需要跨页存储外,数据库每条记录都尽可能存储在一个独立的页中。ESE采用B树(B-Tree)结构存储数据。
重要的一点,当某条记录从数据库被移除后,其占用的空间会被标记为删除,但数据库不会执行覆盖操作。正是因为如此,只要被移除的记录尚未被另外的记录覆盖,那么原记录的数据内容及其可能还在未分配的空间,因此有机会恢复出尚未被覆盖的数据。
新一代IE浏览器的数据库及日志相关文件位置:%systemdirve%\Users%user%\AppData\Local\Microsoft\Windows\Webcache

往期推荐

敏感信息泄露

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D


知识星球产品及服务

团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......


星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享


星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......


星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......

扫码加入一起学习吧~


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存