网络数据调查课程笔记
存储介质底层分析
硬件存储基础:
常见的存储介质
-
SSD(Solid State Disk)固态硬盘:
SSD (Solid State Disk或Solid State Drive)
固态硬盘(又称固态驱动器),利用Flash
芯片或DRAM芯片作为数据永久存储的硬盘。常见的固态硬盘有笔记本的固态硬盘、存储卡、U盘等。SSD
由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。 利用
DRAM
作为存储介质的SSD
,称为RAM-Dsk,其内部使用SDRAM
内存条来存储数据,所以外部断点后,需要使用电池来维持DRAM
中的数据。 -
HDD(Hard Disk Drive硬盘驱动器(机械硬盘):
组成:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
-
U盘:
USB端口负责连接电脑,是数据输入或输出的通道;主控芯片负责各部件的协调管理和下达各项动作指令,并使计算机将U盘识别为“可移动磁盘”,是U盘的“大脑”;FLASH芯片与电脑中内存条的原理基本相同,是保存数据的实体,其特点是断电后数据不会丢失,能长期保存;PCB底板是负责提供相应处理数据平台,且将各部件连接在一起。
-
磁盘阵列:
由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。把N块同样的硬盘用硬件的形式串联在一起。其特点:高效、容错。
-
光盘:
CD-RW
盘片没有反射层,是通过相变结晶材料的非结晶和固定结晶两种状态来记录信号的(1)表面印刷层:就是印有文字图案的一面。
(2)保护层:起到保护反射层的作用。
(3) 反射层:喷镀的金属膜,读取数据时用来反射激光。
(4) 有机染料层:由不同的有机染料构成数据记录层,刻录时,激光就是在这一层进行烧蚀。
(5) 盘基:是透明聚碳酸脂材料。
分区结构分析
基础知识
-
相关基础
-
物理格式化:出厂状态,形成物理参数——柱面/磁头/扇区,全盘为零。
-
低级格式化:用户所做,初始化磁盘扇区,在磁盘扇区中写入零。
-
高级格式化:在逻辑盘上搭建文件系统。
-
-
解释:
- 分区:把一个大的存储空间分成相对独立的几个存储空间,称为逻辑驱动器或卷
- 分区信息存在存储空间的起始位置
答:
´(3)物理上独立的存储介质是否都有分区?
答:通常都有,U盘如果没有分区结构并不影响系统识别
文件系统底层分析
前置知识
-
文件系统:实现数据按名存取,建立磁盘物理与目录之间的映射关系,并进行一系列高级应用,比如
FAT16
、FAT32
、NTFS
、CDFS
等;其中
NTFS
文件系统是会写日志的,因此U盘一般不装NTFS
文件系统,且默认NEFS
默认一个簇包含8
个扇区,最多可以应用于2T
大小的分区。 -
簇:文件系统分配文件的最小单位,一个簇一般包含多个扇区。一个簇包含的的扇区由:分区大小,文件系统类型有关。
-
FAT文件系统:
Windows
操作系统所使用的一种文件系统,经历了FAT12
、FAT16
、FAT32
三个阶段,是Windows
操作系统早期一直使用的文件系统,结构简单、使用方便、占用空间少。
分区结构
DBR区
-
DBR(Dos Boot Record)
:-
通常位于分区的
0
号扇区(相对文件系统所在),是操作系统可以直接访问的第一个扇区。包括一个引导程序和一个被称为BPB(Bios Parameter Block)
的本分区参数记录表,大小为512
字节(有效内容为一个扇区),但是会预留多个扇区。 -
BPB
参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT
个数,分配单元的大小等重要参数。 -
DBR
结束标志为55AA
-
-
相关参数:
不至于,需要时百度即可。
FAT
-
FAT:
-
表示空闲簇,占用簇
-
表示后续簇
-
表示坏簇:用
FFFFFFF7
表示坏簇,但是需要注意U盘里面是不会有坏簇的表示,因为U盘是电子存储介质,不存在坏簇,要坏整个U盘都会坏。 -
FAT32
最大可存单个文件为4G
-
在
FAT12
以后,将目录和数据合并为内容,只是将目录放在内容包含的头部,但是本质没有区别。 -
FAT
区有完全一样的备份区FAT2
,紧跟在FAT1
后面。
-
-
文件写入删除的逻辑:
- 存文件时会在
FAT
簇表中寻找,寻找空簇。然后标记空簇为占用簇,表面该簇被使用。若写入文件大于一个簇的文件,需标记后续簇的位置,最后一个使用簇的标记信息为 - 文件删除时,清空占用簇
- 存文件时会在
NTFS文件系统
New Technology File System
-
简单介绍:
- 特点:
- 概念:
NTFS
中,所有与数据相关的信息都被称为属性,如文件名属性,时间属性,文件内容被称为数据属性.
- 特点:
-
相关名词解释:
-
元文件:
NTFS
文件系统被创建时,同时会建立一些重要的系统信息,用来管理文件系统,这些系统信息是以文件的形式存在的,被称为元文件,以$符号开头,是系统隐藏文件,用户不可直接访问.Dir
也不能查看. -
逻辑簇号:既对分区内的第一个簇到最后一个簇进行编号,
NTFS
使用逻辑簇号对簇进行定位。 -
虚拟簇号:既将文件所占用的簇从开头到尾进行编号的,虚拟簇号不要求在物理上是连续的。
-
$Boot:引导文件,
DBR
结构在该文件的第一个扇区,和FAT的DBR
相似,记录重要的参数.(扇区数、簇大小、$MFT
起始簇) -
$MFT:主文件表(
Master File Table
),是NTFS
的核心,由一个个的MFT
项(也称为文件记录),文件系统中的每一个文件或目录都有一个MFT
项,记录其所有的属性信息. -
$MFTMirr:
MFT
的镜像,只备份前几个记录. -
$LogFile:日志文件
-
$Volume:卷文件,包含卷标和其他版本信息
-
$AttrDef:属性定义列表文件,定义每种属性的名字和类型
-
$Root:根目录文件
-
$Bitmap: 位图文件,用于描述簇的分配情况
-
$BadClus:坏簇记录文件
-
$Quota:早期的NT系统中记录磁盘配额信息
-
$Secure:安全文件
-
$UpCase:大小写字符转换表文件
-
$Extend metadata directory:扩展元数据目录
-
$Extend$Reparse:重解析点文件
-
$Extend\SUsnJml:变更日志文件
-
$Extend$Quota:配额管理文件
-
$Extend$ObjId:对象
ID
文件
-
-
NTFS
总体布局-
NTFS
文件系统大致上可以分为引导区、MFT
区、MFT
备份区、数据区和DBR
备份扇区几个部分。 -
引导扇区必须位于第一个扇区
-
WindowsXP
下创建NTFS
的布局
-
-
NTFS
的磁盘空间预分配性:
NTFS
通常预先划分整个分区的12.5%给MFT
,以保持MFT
文件的连续性,如果数据区已满,则会临时占用部分MFT
空间,一旦数据有了空闲空间后,会优先退还占用的MFT
空间。 -
NTFS
访问卷的过程:装载卷à查看引导文件à找到`MFT`的物理磁盘地址à得到文件记录中数据属性的逻辑簇地址à打开其他一部分元文件à正式访问
-
引导扇区
-
位于文件系统的第一个扇区,是整个文件系统的入口。记录了文件系统的一些重要属性,如每扇区字节数、每簇包含扇区数、文件系统大小、MFT起始簇号等。
驱动器大小 簇大小 7 MB-12 MB 512 bytes 513 MB-1,024 MB 1 KB 1,025 MB-2 GB 2 KB 2 GB-2 TB 4KB
-
-
文件记录表:
-
NTFS
中,每个文件都有一个或多个文件记录,每个文件记录占用两个扇区(既1K字节),$MFT
元文件的作用就是专门记录每个文件的文件记录。由于NTFS
文件系统是通过$MFT
来确定文件在磁盘上的位置以及文件的属性,所以$MFT
本身的位置是非常重要的。 -
DBR
中描述了$MFT
的起始簇号 -
$MFT
的文件记录在物理上是连续的,并且从0开始编号。前17个文件记录总是元文件,并且顺序固定不变 -
文件记录由两部分构成,一部分是文件记录头,另一部分是属性列表,最后结尾是四个“FF”。
-
文件记录头:长度和具体偏移位置的数据含义不变,属性列表可变
-
²属性都由两部分组成,既属性头和属性体。属性头的前四个字节为属性的类型
-
属性头:用来说明该属性的类型、大小、名字及压缩和加密标志。一个MFT项可以同时存在几个同一类型的属性。
-
属性体:有不同的格式和大小
-
常驻属性:当一个文件属性很小时,其所有属性体都可以存放在文件记录中,该属性就称为常驻属性。
-
非常驻属性:如果某个文件属性很大,1KB的文件记录无法记录所有属性体时,则文件系统会在$MFT元文件之外的区域(也称数据流)存放该文件的属性记录,称为非常驻属性。
常驻属性头
非常驻属性头
属性类型
-
-
属性:
-
是所有文件和文件夹都必须有的属性,且通常是第一个属性
-
包含文件或文件夹的时间、所有权等基本信息及加强数据安全和磁盘配额等数据信息
-
(1)创建时间(2)修改时间(3)MFT修改时间(4)访问时间(5)文件的常规属性
0001H 只读 文件系统不允许写此类文件 0002H 隐藏 标准目录列表中不会显示此类文件 0004H 系统 系统(操作系统)文件设置该位 0008H 目录 该文件是个目录 0020H 存档 用于备份,设置本属性说明该文件需要存档 0040H 设备 一个特定属性,用来指明该文件是个设备,为了便于操作将设备模拟成了文件 0080H 常规 正常文件 0100H 临时 临时文件,该类文件可以被系统清理任务清除掉 0200H 稀疏文件 文件是稀疏文件(一种特殊类型的文件,文件很大,但初始数据却很少) 0400H 重解析点 文件是一个重解析点(reparse point),意味着另一个文件系统在此处加载 0800H 压缩 文件被Windows压缩了 1000H 脱机 当前介质上文件不能在线获得 2000H 索引视图 索引视图 4000H 加密 文件被Windows加密了 -
当文件或文件夹的属性较多,需要多个
MFT
项存储它的全部属性时,需要使用20属性记录对象拥有的属性 -
由属性的类型值和该属性的
MFT
地址组成 -
不包含20属性列表本身
-
因为一个文件或目录最大可以有65536个属性,而一个
MFT
项 是存放不下这么多属性的,但是至少要将 “各属性头存放在在基本****MFT
项中”,而将“其内容作为非常驻属性保存在****MFT 以外的地方” -
属性列表
0x20
属性出现的机会并不多 -
存储文件名
-
包含文件大小和时间信息,至少有一个父目录索引中的文件名属性参考号
-
总是常驻属性
-
最少68字节,最大578字节
-
文件命名空间指的是使用的命名规则
父目录文件记录号为0x05,则表示父目录是根目录
-
对象ID属性
-
NTFS可以为文件分配一个唯一的128位的对象标识,并通过这个标识来访问它,以代替使用目录、文件名或者MFT项地址对其访问
-
将一个文件嵌入到其他文件中时就使用目标ID来标识它们,即使文件被更名或移动到了其他的卷中也不会影响对它的正常访问
-
包含对象ID、创建文件的卷的ID、原始对象ID、创建对象ID的ID
-
50属性——安全描述符属性,为了向后兼容而保留的
-
60属性——卷名属性,用以记录卷名
-
70属性——卷信息属性,用以描述卷的版本、状态等信息
-
文件数据属性
-
容纳着文件的内容,文件的大小一般指的就是未命名数据流的大小
-
可以有附加的数据属性,但必须有属性名,如摘要等,可由用户或程序创建
-
没有最大最小限制,最小情况为常驻属性
-
可以通过加密组织未授权的访问,或者对数据进行压缩
-
属性允许为0,上限则限于文件系统支持的文件大小
-
文件数据属性的形式为簇流列表,由多个簇流项组成
-
簇流项有三部分,分别描述长度分配、簇流长度和簇流起始位
-
索引根属性
-
包含存储在其中的文件或子目录的相关信息
-
实现
NTFS
的B+树索引的根节点 -
总是常驻属性
-
每个文件夹都有 索引根属性, 它是为实现索引而设置的 “B+ 树的根节点”,包含存储在其中的 文件或目录 的相关信息。
索引根
索引
索引项的解释如下表
-
位于索引头后面的索引列表由一个个索引项组成
当一个目录很小时,就可以完全存放在索引根属性中,这时该目录就只需要一个属性来描述。但是有的目录太大不能完全存放在索引根中时,这时就要用到$INDEX_ALLOCATION(0 XA0)索引分配属性来存放它的索引项。 -
索引分配属性
-
由标准属性头和数据运行列表组成
-
总是为非常驻属性,索引记录存储在MFT以外的簇空间中,每个索引记录开始处都有一个标准属性头(索引记录头、后面为一个索引头),然后才是索引列表
-
目录索引项用于索引至文件或目录名
-
操作系统文件分析
回收站
$Recycle.bin
:本质上不是一个文件,而是一个程序。
-
特点:
- 回收站也是电脑系统的运行的一部分,当回收站崩溃后电脑系统也会崩溃 ,只能通过恢复到以前版本进行电脑修复。
- 删除电脑中的软件或者文件时,文件可以直接拖到回收站图标处删除,而应用程序需要进行卸载,如果将应用程序的图标拖入回收站,只能删除该应用程序的快捷方式,无法删除该应用程序的数据。
- 文件删除后可以打开回收站,找到文件名称后使用鼠标右键点击,将文件进行还原操作;而应用程序卸载后只能重新下载,并且应用以前保存的数据会丢失。
- 清空回收站数据后在回收站中的文件无法找回。所以在清除回收站数据时应该先查看回收站是否有不能删除的文件,可以先将该文件恢复, 然后再进行清空回收站操作。
-
相关介绍:
-
每个删除对象均有一个$R前缀文件和$I前缀文件, $R对应删除文件的内容, $I对应删除文件的元数据
-
FAT
文件系统分区中,删除文件的元数据包括标识符(02 00 00 00 00 00 00 00),文件大小(8个字节),时间戳(8个字节),文件路径长度(4个字节),文件路径。 -
NTFS
文件系统分区中,删除文件的元数据即为文件的$MFT
项(文件记录项)
-
注册表
是
Windows
操作系统中的一个关键组件,用于存储系统和应用程序的配置信息
-
存储位置:
C:\windows\system32\config
-
注册表的各种类型单元和描述:
- 键单元:包含注册表信息、到其他单元的偏移量及该键的
LastWrite
时间,特征符是kn
- 值单元:保存注册表值及其数据,特征符是
kv
- 键单元:包含注册表信息、到其他单元的偏移量及该键的
-
相关路径:
HKEY_CLASSES_ROOT(HKCR):包含文件扩展名与相应应用程序之间的关联信息,以及系统中注 册的COM组件和类的信息。 HKEY_CURRENT_USER(HKCU):存储当前用户的个人配置信息,如桌面背景、文件夹选项等。 HKEY_LOCAL_MACHINE(HKLM):存储计算机的全局配置信息,如硬件、操作系统设置等。 HKEY_USERS(HKU):存储每个用户的配置信息,每个用户都有一个对应的子键。 HKEY_CURRENT_CONFIG(HKCC):存储当前计算机的硬件配置信息
-
主要五大根键的信息均来自系统注册表(SAM、SECURITY、SYSTEM、SOFTWARE等)和用户注册表(NTUSER.dat、USRCLASS.dat等)文件中的数据。
-
Windows注册表保存在许多hives文件中。Hives是含有一个保存了key、值、数据和相关元数据单元的简单文件系统的二进制文件。
-
相关操作:
-
查询连接网络信息
-
路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
-
-
查询打开文档信息
-
路径:
**HKEY CURRENT USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
-
-
查询浏览器url历史
-
路径:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\TypedUrls
-
-
查询IP等网络相关配置信息
-
路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
-
-
查询应用程序访问痕迹
-
路径:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count
-
-
查询USB使用痕迹
-
路径:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum
-
-
日志文件
-
存储位置:
C:\Windows\System32\winevt\Logs
-
拓展名:
evtx
Evtx
文件是微软从Windows NT 6.0
之后开始采用的一种全新的日志文件格式,在此之前的格式是evt
。Evtx
由Windows
事件查看器创建,包含Windows记录的事件列表,以专有的二进制XML
格式保存。
-
evtx
组成文件:-
File header
-文件头:长度4096bytes
-
chunks
-数据块:每个块的大小是65536bytes
,主要由三部分组成。Chunk header
块头;array of event records
事件记录组;unused space
未使用的空间。 -
Event record
-事件记录:长度非固定。
-
-
日志类型:
-
Application.evtx:
应用程序日志,记录应用程序或系统程序运行方面的日志事件,如数据库程序的文件错误、应用的崩溃等。 -
Security.evtx:
安全日志,记录系统的安全审计事件,如登录事件、对象访问、进程追踪、特权调用、账号管理、策略变更等。 -
System.evtx:
系统日志,记录操作系统自身组件产生的日志事件,如驱动、系统组件的崩溃与数据丢失错误等。 -
Setup.evtx:
安装日志,记录系统安装和配置的事件和信息。 -
ForwardedEvents.evtx:
转发事件日志,记录从其他计算机收集到的事件信息。
日志的存储空间是固定的,所以日志是循环向前覆盖的。
-
-
日志
ID
,Windows
用Event ID
来标识事件的不同含义,如下:
缩略图
-
存储位置:
C:\Users\<USERNAME>\AppData\Local\Microsoft\Windows\Explorer。
缩略图文件中除了有原始图片文件的缩小版内容外,还可能有原始文件的文件名、驱动器、路径等信息。
可以使用
ThumbsViewer
工具查看 -
缩略图作用:
Windows
操作系统中,缩略图主要用于快速浏览文件夹中的文件,是一个数据库文件。-
即便文件删除,缩略图会一直保留在
thumb.db
中 -
文件系统使用EFS加密,也可能以非加密形式显示
thumb.db
中的缩略图图像 -
图片文件已经从硬盘拷贝到移动存储设备中,原始硬盘中也会留下
thumb.db
文件
-
最近访问文件
-
存储位置:
C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Recent
Win+R输入recent可直接打开
-
最近访问文件包含与目标文件相关的有价值的信息,如:
-
文件的时间戳
-
文件大小
-
卷详细信息,系列号、卷标,可用于分析文件关联的移动存储介质
-
原始文件路径
快捷方式文件包含的信息与操作系统版本、生成快捷方式文件的应用程序、目标文件的文件系统等因素有关。
历史记录文件
-
存储位置:
C:\Users\<USERNAME>\AppData\Local\Microsoft\Windows\History
同样历史记录文件夹和回收站都是一个组件,而非是一个真实的文件夹。
-
应用程序数据调查
应用程序分类
-
具体分类:(命令 + 程序)
- 办公软件、图形图像软件、多媒体软件、游戏软件、数据库软件、聊天软件等
- 安装程序、可执行程序、运行支撑文件(资源文件、配置文件、临时文件等)、数据文件等
-
应用程序安装目录和数据目录:
-
调查应用本身:(功能,运行逻辑)
-
调查产生的数据:(运行具体程序产生的数据)
-
应用数据分析
是通过分析应用程序的相关文件获取线索或证据
-
分析目的:
- 分析可执行文件可以检测应用程序的功能、运行流程等,可采用静态分析或动态分析方法
- 分析安装文件可以回溯程序来源
- 分析临时文件可以了解程序运行过程或者用户操作痕迹
- 配合分析用户的数据文件
分析重点是两个,即恶意程序的功能;应用程序记录了哪些信息,这些信息存储在什么地方,如何解析这些信息
可执行文件的格式
-
PE文件相关知识:
-
高级语言编写的源代码--编译器处理--直接运行的二进制可执行程序在不同的操作系统上,编译生成的可执行文件都有着不同的特征如针对微软 Windows 平台的 PE格式、针对类 Unix 平台的 ELF格式。
-
-
编译:
将源代码转换为机器课认识代码的过程,编译程序读取源程序(字符流),对之进行词法和语法的分析,转换成功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照可执行文件格式链接生成可执行程序。
-
反编译:
是编译的逆过程,将可执行的程序代码(也称为目标代码)转换为某种形式的高级编程语言使其具有更易读的格式。没有任何反编译器可以获得开发人员编写的确切源代码。
-
缓冲区溢出:
以登录账户键入溢出为例
应用程序调查的分析方法
- 动态分析
- 程序文件执行过程中对代码进行动态分析。可通过调试获得代码流,获得内存状态,通过动态分析可以观察文件、注册表、网络等同时分析软件行为,常使用调试方法分析程序的内部结构和动作原理;或者通过进程监控软件对执行进程进行动态监控,分析其对于其他文件和文件夹的访问过程。
- 根据分析目的选择静态还是动态分析也可以结合静态和动态分析,共同获得操作结果
chrome浏览器的取证调查
-
数据路径:
C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\
-
关键数据
-
History
:保存浏览器的网页历史记录,这部分内容是可以通过安全软件删除的。但是依然可以通过浏览器保存的Cookies
来获取文件名为
History
(无文件扩展名),它是一个SQLite
数据库文件,使用常见的工具可直接打开该文件。 -
Bookmarks
:保存用户创建的书签 -
Login Data
:包含保存的帐户和密码信息。
Google Chrome
的配置文件存放在%LocalAppData%
目录下。例如,具有两个Google Chrome
账号配置文件的windows
用户admin
将有一个目录,其中包含每个配置文件的登录数据,每个数据都包含自己的一组存储凭据:C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default (第一个配置文件的名称) C:\Users\admin\AppData\Local\Google\Chrome\User Data\Profile 2 (后续的配置文件以迭代数字方式命名)
-
Cookies
:存储网站的Cookie信息,默认的Cookies信息被保存在一个名为Cookies的文件中(无文件扩展名),它也是一个SQLite数据库文件。 -
Web Data
:保存登录凭据、表单数据和搜索历史等信息。
-
-
工具:
浏览器数据库的保存形式是以
Sqlite
形式分析的Sqlite
数据库读取工具,例如SQLiteBrowser或DB Browserfor saLite。- 使用方式:
- 打开
SQLite
数据库读取工具(如SQLiteBrowser
) - 在工具中选择"打开数据库",然后导航到Chrome用户数据文件夹,找到并选择"
History
"文件 - 在数据库工具中,找到名为"
downloads
"的表格,这是保存下载记录的表格。 - 使用
SQL
查询语句,可以执行以下操作:
检索所有下载记录:SELECT*FROM downloads
;根据特定条件过滤下载记录:SELECT*FROM downloads WHERE
条件;导出下载记录为CSV
或其他格式。
- 打开
用户数据调查
数据文件分析
基础知识
简单介绍
-
常见的文件格式:
-
.txt文本文件;
-
.doc和.docx,它们是Word产生的文件;
-
.xls和.xlsx,他们是Excel表格产生的文件;
-
.PPTX,Microsoft Powerpoint演示文稿
-
.accdb,是Microsoft Access 2007软件使用的一种存储格式;
-
.PDF,是可一种携带文档格式,俗称PDF格式;
-
.htm和 .html,即主页文件;
-
.jpg、.png、.GIF,都是图片文件格式,显示效果和压缩格式以及文件大小不同;
-
-
文件类型特征:拓展名,文件签名;
-
文件内容编码格式:文本(字典式),图片(像素式),动画(多张连续图片),音频(抽样),视频(音频 + 动画)
-
不同图片格式就是不同压缩格式
具体解释
-
文件属性:(因操作系统而异)
-
名称:符号文件名是以人类可读形式来保存的唯一信息。
-
标识符:这种唯一标记(通常为数字)标识文件系统的文件,它是文件的非人类可读的名称。
-
类型:支持不同类型文件的系统需要这种信息。
-
位置:该信息为指向设备与设备上文件位置的指针。
-
尺寸:该属性包括文件的当前大小(以字节、字或块为单位)以及可能允许的最大尺寸。
-
保护:访问控制信息确定谁能进行读取、写入、执行等。
-
时间、日期和用户标识:文件创建、最后修改和最后使用的相关信息可以保存。这些数据用于保护、安全和使用监控。
-
-
文件元数据:
这部分数据就是文件的内容,存在文件内容之中。不过具体在文件内容的位置是未知的,不同文件不一样。
-
又称中介数据、中继数据,它是关于数据的组织、数据域及其关系的信息,即被定义为描述数据的数据。
-
分类:有关数据的数据、有关信息对象之结构的信息、描述资源属性的数据等。
-
文档、图片、视频的元数据:文件系统中文件检索表、路径和地址信息。
比如:从网上下载的电影,其播放的内容本身是视频文件数据,而通过右键查看到的存储路径、码率、文件尺寸、艺术家、专辑名、版权方等属性信息就是视频文件的元数据。
-
文件属性分析
时间属性分析
文件系统中记录的文件时间属性,会反映相关的文件操作,因此可以通过文件的时间属性推测可能得用户行为。
-
不同的操作对文件的时间属性的影响
-
创建文件或复制文件,影响文件的创建时间属性。
-
文件创建时间的更新要满足两个条件,
-
移动文件仅仅是为文件分配了新目录并没有新文件出现,修改文件则是仅仅产生新文件而并没有分配新目录,所以都不会影响创建时间。
-
-
修改文件的数据或摘要信息或者覆盖文件,影响文件修改时间。
只有当文件的内容发生改变的时候,文件修改时间才会更新。即修改文件并保存时,文件修改时间会更新到保存的时间。
-
影响文件访问时间的操作
-
文件的访问时间的变化是所有时间属性中最复杂的,可分3种情况进行分析。
-
在
FAT32
中,影响文件访问时间的访问操作有:指向文件、右键单击查看属性、打开文件和跨分区移动文件,以及影响创建时间或修改时间的操作。 -
在开启访问时间更新的
NTFS
中,影响文件访问时间的操作有:所有访问操作、重命名、修改文件属性、更改文件权限、复制和移动文件,以及影响创建时间或修改时间的操作。 -
在关闭访问时间更新的
NTFS
中,只有跨分区移动文件和更新创建时间的操作会使访问时间更新;更新修改时间的操作是否更新访问时间由文件的类型决定。
-
-
关闭访问时间更新的方法:
HKEY_LOCAL _MACHINE\System\CurrentControlSet\Control\FileSystem],在右侧窗格中找到 NtfsDisableLastAccessUpdate,将数值改为1
-
-
删除操作
对文件进行删除操作一般不会对文件的时间属性产生影响,但将文件移动到回收站时有可能影响访问时间,并且回收站会记录下文件的删除时间。
-
-
不同的操作对文件夹的时间属性的影响
- 在
FAT32
中,只有对文件夹进行跨分区移动才会影响其时间属性,而其他操作则不影响。 - 在
NTFS
中,文件夹与文件的时间属性变化规律是相似的。 - 无论在哪种文件系统中,对文件夹的子文件或子目录的修改操作都会导致文件夹修改时间的更新,而双击打开子文件则影响文件夹访问时间。
- 在
-
其他因素对文件的时间属性的影响
-
系统时间的影响:
修改系统时间和时区设置直接影响文件时间属性。在错误的系统时间下进行的操作将产生错误的文件时间属性。
-
文件大小的影响:
当文件大小为0时,在
FAT32
中打开文件和在NTFS
(访问时间更新开启)中指向或打开将不会更新其访问时间。对于大小不为0的文件上述操作则会更新访问时间。 -
文件类型的影响:
对
FAT32
中的文件进行单击指向操作时,可执行文件、动态链接库文件和图像文件的访问时间会发生更新,而其它文件不更新。在NTFS
访问时间更新关闭的条件下,修改 Word 文档后其修改时间和访问时间同时更新;但TXT 、 BMP
文件的修改时间更新,访问时间不更新。 -
文件属性的影响:
对于只读文件,其修改时间不会发生更新。
-
文件元数据分析
Office文件
-
Oiffice
文件元数据´主要包含:
Title
(标题)、Word
软件版本、Creator
(文档创建者)、LastModifiedBy
(最后修改者)、文档创建时间、最后一次保存时间、最后一次打印时间等。 -
案例
-
背景
职务侵占案件,调查涉案员工工作邮箱的所有备份邮件。
-
调查过程
-
案例总结
将文档内容比对和文档元数据比对相结合,从而印证文档原始来源,是常见的一种调查手段。
图片文件
-
图片元数据的应用
-
图片是一种常见的电子数据取证对象,图片的元数据叫做
EXIF
,记录了数字图像的属性信息。 -
EXIF
常常包括相机参数、拍摄参数、拍摄时间、GPS
经纬度信息等重要信息,若结合案情,这些信息就变得非常重要。
-
-
案件
-
背景:
调查一起公司高管侵占公司利益案件中,从举报人反映的线索中,获知该名高管与某外省市的关联人员频繁接触,并曾多次赶赴位北方某市的项目现场直接参与项目的进程。
-
调查目的:
需要证明其到过该市项目现场的行为和时间,但限于尚未立案,甚至连其是否曾坐过高铁、飞机的记录都无法调取,因此需要调查人员能够从其使用的笔记本电脑中找到相关线索。
-
过程
-
-
文件底层二进制分析
BMP图片
-
BMP
的相关知识-
BMP
存储的是原始图像数据,即未压缩数据 -
BMP
图片类型: 单色: 一个像素只占一位,要么是0,要么是1,所以只能存储黑白信息
16色位图: 一个像素4位,有16种颜色可选
256色位图: 一个像素8位,有256种颜色可选
24位位图: 一个像素24位,颜色可有2^24种可选,对于人眼来说完全足够了。
-
-
具体存储解释
-
如果一张 4 × 4 (宽度和高度都是 4 个像素)的彩色图片,未压缩的的原始图像数据,就是一个 4 × 4 矩形网格,每一个网格代表一个像素。而彩色图片的每一个像素,又是由 红,绿,蓝 三基色构成
-
如下图:存储空间为 4 × 4 × 3 = 48 字节 (
Bytes
)
-
-
BMP
的文件格式:-
整体文件的格式:
存储在文件内容中时先文件头、再图像头、[调色板]、后面就是像素数据
-
文件头(
14Byte
) -
´图像头 / 信息头 / 结构头(
40Byte
): -
像素数据:
-
JPG图片
-
JPG
介绍:-
是一种常用的图像存储格式,
jpg/jpeg
是24位的图像文件格式,也是一种高效率的压缩格式,其最初目的是使用64Kbps
的通信线路传输720×576 分辨率压缩后的图像。通过损失极少的分辨率,可以将图像所需存储量减少至原大小的10%。解压时无法还原,是有损压缩,所以.jpg/.jpeg
文件并不适合放大观看。 -
数据结构为两大类型:段 和 经过压缩编码的图像数据
-
段的一般结构 ----------------------------------------------------------------- 名称 字节数 数据 说明 ----------------------------------------------------------------- 段标识 1 FF 每个新段的开始标识 段类型 1 类型编码(称作“标记码”) 段长度 2 包括段内容和段长度本身,不包括段标识和段类型 段内容 ≤65533字节
有些段没有长度描述也没有内容,只有段标识和段类型。文件头和文件尾均属于这种段。
段与段之间无论有多少FF都是合法的,这些FF称为“填充字节”,必须被忽略掉。
段类型有30种,但只有10种是必须被所有程序识别的,其它的类型都可以忽略
段类型 --------------------------------------- 名称 标记码 说明 --------------------------------------- SOI D8 文件头 EOI D9 文件尾 SOF0 C0 帧开始(标准 JPEG) SOF1 C1 同上 DHT C4 定义 Huffman 表(霍夫曼表) SOS DA 扫描行开始 DQT DB 定义量化表 DRI DD 定义重新开始间隔 APP0 E0 定义交换格式和图像识别信息 COM FE 注释 -----------------------------------------------------------
-
-
智能手机数据调查
Android文件系统分区
-
具体的分区内容:
分区 介绍 BootLoader 设备启动后,会先进入 BootLoader
程序,硬件检测、初始化,判断开机时的按键组合等判断条件,选择启动到Android
系统、recovery
模式、fastboot
模式等Boot分区 存放启动和引导文件,如果 bootloader
选择启动Android
系统,则会引导启动此分区的kernel
并加载ramdisk
,完成内核启动。涉及Android
手机的root
操作就是修改开机启动引导相关的配置(可以修改CPU/GPU
的频率等)System分区 包含操作系统和系统软件(刷机操作就是操作这个分区,另外 Vendor
定制预装应用和库文件也放在该分区)Data分区 存放用户数据、包括联系人、短信、设置、用户安装的程序,擦除此分区,相当于手机恢复出厂设置 Cache分区 存放应用的缓存数据、缓存系统升级包等 Recovery分区 Recovery
分区包含一个简易Linux
系统,用于恢复和维护手机(类似Windows PE
环境),可以用来重启,擦除数据,安全模式等(传统的刷机操作都在recovery
模式中进行的)Misc分区 包含了一些系统设置和系统功能启用禁用的相关设置,主要用于 Android
系统和bootloader
通信,使Android
系统能够重启进入recovery
系统并执行相应操作。Sdcard分区 内部存储,可以存放相片、视频、文档、 ROM
安装包 -
具体分区详情
-
System分区
-
Data分区
-
主流的手机系统
Android
-
什么是
Android
: 是一种基于
Linux
的自由及开放源代码的操作系统,有较好的移植性,主要适用于移动设备,如智能手机和平板电脑,是Google
公司和开放手机联盟领导及开发的。 主要搭配的手机厂商:目前国内市面上的
Android
系统大都属于定制系统,比如小米(MIUI
)、魅族(Flyme
)、金立(amigo
)、OPPO
(Color
OS
)、VIVO
(Origin
OS
)等。 -
取证方法:
手机直提、手机自备份、系统自备份(如魅族)、
recovery
备份(如阿里云手机)、高级ADB
取证(ADB
数据通信协议,高版本需要降级备份)、镜像下载(解析难)等。 -
Android
分支平台:Android Wear
:专为只能手表等可穿戴式设备所设计的一个Android
分支平台Android TV
:专为家用电视所设计的一个Android
分支平台。Android Auto
:专为汽车所设计的一个Android
系统- 物联网取证
IOS
-
什么是
IOS
: 是由苹果公司开发的移动操作系统,最初是设计给
iPhone
使用的,后来陆续套用到iPod touch
、iPad
以及Apple
TV等产品上。原本这个系统命名为iPhone OS
,后来在2010WWDC
大会上宣布改名iOS
。 -
主要搭配的手机厂商:苹果。
-
取证方法:
- 手机直提(因硬件漏洞苹果X以下的屏幕锁可解)
iTunes
备份等
鸿蒙HarmonyOS
-
什么是
HarmonyOs
: 华为公司开发的一款基于微内核开发的面向
5G
物联网、面向全场景的分布式操作系统。打通手机、电脑、平板、电视、工业自动化控制、无人驾驶、车机设备、智能穿戴统一成一个操作系统,并且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web
应用。 -
主要搭配的手机厂商:华为。
-
取证方法:
- 兼容
Android
方式(HDB
数据传输协议)
- 兼容
Yun OS
-
什么是
YunOS
是阿里巴巴集团旗下智能操作系统,基于Linux研发,搭载自主研发的核心操作系统功能和组件,可搭载于智能手机、智能穿戴、互联网汽车、智能家居等多种智能终端设备,主要用于物联网终端。
-
主要搭配的手机厂商:魅族、纽曼、朵唯、锤子。
-
取证方法:
- 手机直提
- 高级
ACB
取证(ACB
数据传输协议)等
其他
- Windows Phone:是微软于2010年10月21日正式发布的一款手机操作系统,基于
Windows CE
内核,集成了微软旗下的Xbox Live
游戏、Xbox Music
音乐与独特的视频体验,但软件生态链较差。主要搭配的手机厂商:微软、诺基亚等。取证方法为拍照或蓝牙取证。 - BlackBerry:加拿大黑莓公司的一家手机无线通信设备品牌,主打安全和全键盘。
- Web OS:是一个嵌入式操作系统,以
Linux
内核为主体并加上部份Palm
公司开发的专有软件,它主要是为Palm
智能手机而开发。
手机数据存储原理
手机文件系统
-
苹果手机:
APFS
(Apple File System
)- 早期使用
HFS
+文件系统 - 核心是加密功能,包含多密钥加密功能,内置有针对每个文件的密钥,针对敏感元数据也都有独立的密钥
- 用户文件一般存放在
Mobile
文件夹中
- 早期使用
-
安卓手机:
EXT4
Linux
系统下的日志文件系统- 能存储更大、更多的文件
- 用户文件一般存放在
userdata
文件夹中
手机数据库
-
SQLite
:是一款轻型的数据库,具有便捷、高效、结构紧凑、可靠等特点,在智能手机中被广泛使用,大部分数据如短信、通话记录、通讯录、APP
数据等都是用SQLite
数据库存储的,它是重要的取证对象。SQLite
数据删除以后,只有空闲的空间被回收,实际存储的内容仍然存在数据库文件中,只要整个数据文件存在,删除的数据是有机会恢复的 -
关于
SQLite
的相关解释:Android
中的SQLite
是一种轻量级的关系型数据库,它是Android
平台中默认的本地数据库存储解决方案。SQLite
在Android
系统中广泛使用,可用于存储和检索应用程序中的数据。 -
SQLite
的优点包括:-
轻量级:
SQLite
非常轻便,它的库文件非常小,可以轻松嵌入到Android
应用程序中。 -
高效:由于
SQLite
是一个本地数据库,它可以快速地执行读写操作,并且具有非常高的性能。 -
可靠性:
SQLite
是一个可靠的数据库解决方案,它可以确保数据的完整性和一致性。 -
跨平台:
SQLite
可以在各种不同的操作系统和平台上运行,因此可以轻松地将数据从一个平台移植到另一个平台。SQLite
却有一个致命的缺陷:不支持加密。
因此存储在
SQLite
中的数据可以被任何人轻易地查看。如果是普通的数据还好,但是当涉及到一些账号密码,聊天内容或者个人信息的时候,我们的应用就会面临严重的安全漏洞隐患。 -
手机取证
数据来源
- 机身存储(
eMMC
、UFS
) - 手机卡(存储小、有效信息少)
- 外置存储(有些手机不支持,未必和手机放在一起)
- 备份数据(历史备份数据)。历史备份数据可能在电脑中、手机的备份应用中、外置存储卡
- 云数据(2018年开始成为热点)
- 移动运营商、执法部门提供(用户入网信息和入网后的使用情况),话单、账单、基站的通讯情况等
身份信息
-
IMSI
(国际移动用户识别码):运营商分配给手机用户的唯一数字编码,存储在SIM
卡中 -
IMEI
(GSM
网国际移动设备身份码) -
ESN
(32位CDMA
网络电子序列号) -
MEID
(56位CDMA
网络移动设备标识) -
ICCID
(集成电路卡识别码):SIM
卡识别,可判断用户的网络提供商以及所属省份IMEI、ESN、MEID
设备识别,主要用于手机落地定位
常规方法
-
人工提取:也叫可视化提取,是直接在移动终端上查看相关数据,并使用相机等翻拍设备记录证据。
-
应用场景:不具备数据接口的手机,或数据接口损坏的手机,或现有手机取证设备不支持的机型
-
数据提取效果:能提取到现有的数据,不能看到删除数据;提取效率低下,且无法直接与其他数据做关联分析
-
-
代理:取证工具向安卓手机推送一个取证程序,该程序自动运行,通过调用
API
(应用程序编程接口)读取手机中的短信、电话簿、通话记录等应用数据库中的数据,然后返回给取证电脑。-
应用场景:手机可以去整电脑进行数据传输(解锁/信任/开启
USB
调试),且手机还有剩余存储空间。 -
数据提取效果:
-
-
备份:对手机数据制作副本数据,无需
ROOT
权限就可以获取到较完整的应用数据库,因此可以给予SQLite
文件进行数据恢复。-
应用场景:
-
数据提取效果:
-
-
逻辑取证:指对手机中文件系统级别数据的获取,类似于
Windows
系统文件的拷贝,所见即所得。-
逻辑镜像:指将提取到的逻辑数据整合为一个镜像的过程,这种方法可以获取用户分区的逻辑层数据。
-
应用场景:获取到手机备份数据,或手机文件,或文件镜像
-
数据提取效果:
-
-
物理取证:指对手机中机身存储芯片所有数据的获取,类似于
Windows
系统文件的全盘镜像,是手机本机数据最完整的获取方法。- 应用场景:
- 数据提取效果:
- 应用场景:
-
云取证:指对存储在云端的数据进行取证,云端数据提取是通过提取手机
APP
本地密钥,通过云服务器的认证逆向解密和解析云服务器返回数据的协议和数据格式。-
应用场景:
-
本地和云端存储的数据对比
-
手机本地数据通常更关注即时通讯记录
-
云取证的数据包括
-
-
手机取证的困难
-
全盘加密(
FDE:Full Disk Encryption
): -
全盘加密原理
-
文件加密(
FBE:File Based Encryption
) -
文件加密原理
-
BL
锁(Bootloader
) -
屏幕锁(
L
版本5.0
-5.1
) -
屏幕锁(
9.0
以后为M
版本以上) -
文件访问控制
-
超级用户(
Root
):具有最高权限,UID=0
系统用户:该系统用户,
UID=1000
-6000普通用户:只具备有限的访问权限,
UID=10000
- -
系统会为应用中的所有文件设置权限,以便只有分配给该应用的用户
ID
才能访问这些文件可以说,
Android
系统实现了最小权限原则
-
-
手机应用调查取证
分类:依据应用程序的种类
- 通用手机应用程序调查
- 非通用手机应用程序调查
- 恶意手机程序调查
-
短信与彩铃
-
应用软件名为
Messaging
,软件包名为com.android.providers.telephony
。分析“data
”分区下该应用的数据目录,能发现关键数据主要存储在mmssms.db
数据库中
-
-
浏览器
-
应用软件名为
Internet
,软件包名为com.android.browser
-
浏览器历史记录分析的主要目的在于检查并分析计算机用户通过网络浏览器在互联网上查看的内容,一些关键证据可能会隐藏其中,尤其在涉及情色及信用卡诈骗等以浏览器为主要犯罪工具的案件中
-
-
联系人
-
应用软件名为
Contacts
,软件包名为com.android.providers.contacts
。该应用关键数据主要存储在contacts2.db
数据库中 -
统计手机中所有联系人分布情况,可以用于绘制手机持有者人物画像,与手机中其他信息进行关联,可以挖掘出其中出现过的手机号、邮箱、身份证号、银行卡号、车牌号、人名、地点等关键数据
-
非通用应用--APP数据手工解析思路
手工解析背景:据统计,市场上可用APP数量已经达到400万以上,但手机取证工具所能解析的APP数量也就只有万分之一。
-
若使用手机模拟器,则在电脑中可直接访问模拟器的文件夹,从中找到模拟器中打开手机的
Data
区。 -
Android
系统APP
常见目录结构:获取到手机的Data区数据备份后,下一个关键步骤就是确定
APP
的包名-
data/data/包名/cache:存放
APP
的缓存数据 -
data/data/包名/databases:存放
APP
的数据库文件 -
data/data/包名/files:存放
APP
的文件信息 -
data/data/包名/shared_prefs:存放APP的
SharedPreferences
(轻量级存储类型文件) -
Sdcard/Android/data/包名/:存放图片、音视频等多媒体信息
-
-
确认包名
-
网上查询
-
观察名称:应用名与包名存在对应关系
com.alipay.android.app
com.chinatelecom.pim
com.qunar
com.tencent.mobileqq
com.anjuke.anjuke
com.baidu.netdisk
-
查看特定文件:在apk安装包中查看或使用APK逆向分析查看
-
模拟机安装后查看
-
取证工具分析
-
-
用工具解析
APP
数据——APP
常见文件格式 -
用工具解析
APP
数据——APP
常见文件查看工具-
SQLite
Expert数据库浏览工具 -
查看SQLite文件,常用的功能:
用于输入sql语句,实现增删改功能
展示选中表的数据信息
展示选中表的表结构和字段信息
`Import` / `Export`功能
-
010
Editor
查看
XML
等文件对于一些无扩展名文件,或者是一些直接打开乱码的文件,可以通过010 Editor打开查看文件的数据格式。内置多种编码方式查看,并且也支持多种搜索方式。 -
plistEditor
:可用于打开plist文件 -
Hijson
-
可用于打开json文件
直观地展示出json的数据结构
中文字符有可能显示成乱码
不支持拖动文件来读取文件内容进行展示
-
Vs Code
这款文本编辑器可用来辅助查看一些xml、json文件
常用的功能:
可以高亮显示出属性
对于json格式数据,可减少中文字符乱码的问题
展示效果比较友好
-
base64
可以用于加密和解密base64
的数据
支持将数据解码到文件
存在base64和plist两种格式融合的情况,如开头签名是plist,但中间夹杂base64的情况
-
-
静态分析和动态分析
-
静态分析通常有两种方法:
个别APK程序具有加壳、加固手段,并不适合静态分析方法
-
动态检测分析通常有以下方法:
-
-
APK的格式
-
APK
是Android
系统中的一种文件格式,用来对安卓应用程序的文件进行打包,APK文件包含了应用程序的所有文件,包括静态资源文件、库文件、签名文件、编译资源文件、配置清单文件、核心代码文件和资源映射文件等。 -
静态资源文件(
assets
):图片、视频等。 -
库文件(
Lib
):.so文件,简单的Android
应用可能不需要这些库,但某些涉案的APK文件中,一些数据因需要加密也会使用SO文件进行封装处理。 -
签名文件(
META``-INF
):在Androi
d系统中,不同app
之间是依靠包名、数字签名共同进行区分的,签名用来保证apk包的完整性和系统的安全性。签名信息可用来判断该安装程序是官方安装包还是修改或捆绑的二次开发安装包。有时签名信息中含有开发者信息。 -
编译资源文件(res):存放也是资源文件,与assets文件夹不同是,它是编译后的资源文件。
-
资源映射文件(resources.arsc):是Android系统的一种特殊文件,它用来存放应用程序的资源表,包含了应用程序的资源ID和资源类型的映射关系。
-
配置清单文件(AndroidManifest.xml):全局清单文件,也是编译过的文件,是每个Android程序中必须得文件,位于整个项目的根目录,用来描述和配置应用程序运行所需的清单信息,包括包名、应用名、权限、组件、版本等重要信息
-
核心代码文件(class.dex):是Android系统重的重要代码文件,是Dalvik虚拟机可执行文件,负责在Android系统重运行应用程序的代码。
-
-
APP
应用数据分析、APK
分析、手机云取证等程序分析的第一步抓包工具:两类,第一类是网页抓包,浏览器自带的调试功能,只能进行局部抓包,跳转网页后结束
第二类是全局抓包,
如代理类抓包(客户端——中间人——服务器),charles、fiddler、mitmdump等
非代理类抓包,监控进程,如http v7、http debugger pro
基于网卡抓包的wireshark,支持多种协议的抓包
app端抓包工具httpcanary,基于vpn代理
-
从手机APP到服务器的取证实例:
对于APP取证的一个重要目标就是获取涉案APP对应的服务器IP地址,真正需要逆向的情况很少,多数采用抓包方式即可以实现,同时,针对服务器IP位于境内的采用调回服务器镜像,位于境外的采取抓包批量固定证据到本地