APP下载

绕过MacOS密码的取证方法探讨

2018-02-26于士超

网络安全技术与应用 2018年2期
关键词:文件夹字节密码

◆吴 彬 赵 锴 于士超



绕过MacOS密码的取证方法探讨

◆吴 彬1赵 锴1于士超2

(1.上海市公安局 上海 200025;2.盘石软件(上海)有限公司 上海 200333)

随着苹果电脑的普及,取证分析中很多情况下要考虑Mac OS 的取证,如果被取证的Mac系统设置了登录密码, 那么取证过程中就要想办法绕过登录密码,取得管理员权限。本文主要介绍了绕过Mac OS 系统登录密码的原理,介绍了HFS+文件系统的卷结构,深入剖析了HFS+文件系统卷头结构,元数据文件以及节点结构。研究了B-树的遍历过程。然后对如何在取证系统中实现进行了详细的分析。

苹果系统;取证;密码重置;HFS+文件系统;B树

0 引言

苹果系统界面独特,安全性较高,使其越来越受到大众的欢迎,在美国苹果笔记本的市场占有率已经超过了windows,在中国很多消费者也选择苹果电脑作为其工作和学习的首选。因此,对于取证工作来说,苹果系统的取证分析也十分必要。

本文以Mac OS X为例子,探讨重置Mac OS X的开机密码的可行性,方法。利用解析Mac OS X的文件系统HFS+找到/var/db/.AppleSetupDone文件并破坏该文件,从而实现系统管理员自动失效,进而重启系统,重建管理员实现密码重置。

1 Mac OS X系统

1.1Mac OS X系统简介

Max OS X,这是一个基于UNIX核心的系统,增强了系统的稳定性、性能以及响应能力。它能通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D、3D和多媒体图形性能以及广泛的字体支持和集成的PDA功能。Mac OS X通过Classic环境几乎可以支持所有的Mac OS 9应用程序,直观的Aqua用户界面使MACintosh的易用性又达到了一个全新的水平。

1.2Mac OS X系统破解步骤

Mac OS X系统破解方法步骤如下:

(1)进入单一用户模式

(2)开机启动时按“command+S”,进入单一用户模式(Single user model)。出现提示符 #root>。

(3)执行硬盘检测(只读)

/sbin/fsck –y

加载文件系统(读/写)

/sbin/mount -uaw

删除初始化时生成的隐藏文件

rm /var/db/.AppleSetupDone

重启系统

reboot

重建管理员账号:

在取证过程中,取证工作者拿到的往往是镜像文件或者整个磁盘,上述破解方法无法直接使用。而是需要取证工作者手动mount镜像或者磁盘,解析HFS+文件系统,将文件系统的元数据全部读取出来,HFS+文件系统的元数据组织形式是B-树,通过中序遍历的方式得到所有文件,然后将遍历所得的文件构建成目录树,找到/var/db/.AppleSetupDone文件的元数据,破坏该文件的元数据,比如将文件名改为.AppleSetupNotDone,实现破解。

HFS+文件系统解析:

文件系统除了让用户供稳定地存放文件这一目标以外,还是各项操作系统功能的基础。Mac OS X每个大发行版都要增加数百项新功能,许多新功能严重依赖于文件系统的实现。Mac OS X 10.3提供了FileVault来加密用户文件,因此用户主目录被保存在一个HFS+文件系统加密镜像中。

HFS+文件系统格式:

在HFS+文件系统中,文件的存取按照盘区(Extents)进行,每个盘区占用若干个分配块(Allocation Block)每个分配块占用2N个扇区。

HFS+卷的磁盘布局为:开头1024字节保留,紧跟在后面的一个扇区被称为Volume Header扇区,后面为元数据区,共5个文件,分别为分配文件(Allocation File),盘区溢出文件(Extents Overflow File),目录文件(Catalog File),属性文件(Attribute File)和启动文件(Startup File),剩余的为用户数据区,最后两个扇区为Volume Header备份和512字节的保留空间。卷头前面以及卷头备份后面的保留区虽然没有数据,但是在分配文件中被标记为已使用,用于保护卷头和备份卷头,5种元数据文件并非连续存放,而是分别存放在用户数据区的不同位置,如图1所示。

图1 HFS+卷的磁盘布局

B-Tree:

在介绍目录文件与域溢出文件前,需要介绍 B-Tree 结构。无论是目录文件还是域溢出文件都是采用 B-Tree 结构组织,这样有利于记录的查询,添加,删除,修改。文件的 B-Tree 组织结构如图2所示。

图2 B-Tree组织结构

节点:

B-Tree 中的每一个记录为节点记录,节点的大小为 512 字节,结构如图3所示。

图3 节点

节点的开始部分为节点描述符,结构如表1。

表1 节点结构

其中的节点类型有以下几种:

BTLeafNode叶子节点 BTIndexNode索引节点 BTHeaderNode头节点 BTMapNode图节点

节点的最后部分为档案记录的开始偏移部分,从节点的最后两个字节向前记录,也就是最后两个字节表示的是第一个档案记录的开始偏移,最后两个字节的前两个字节表示第二个档案记录的开始偏移,依次类推。当然了,未使用空间部分也会对应一个开始偏移,即使没有未使用空间也会有一个指针指向指针所在的位置。

2 头节点

无论是目录文件还是域溢出文件,它们的第一个节点一定是头节点,头节点的结构如图5所示。

图5 头节点的结构

它有三条档案记录,分别为:头档案记录(header record),保留记录(128 字节),位图记录;因此它有四个档案记录开始偏移数据。

头档案记录的格式如表2。

表2 头档案记录的格式

位图档案描述的是 B-Tree 文件的节点使用情况,如果位图档案太小不足以描述所有的节点,头节点的节点描述符中有一个下一个节点号字段,它指向一个位图节点,这个位图节点专门用来描述剩下的节点的使用情况。

如上所述一个 B-Tree 文件的结构如图6所示。

图6 B-Tree 文件的结构

HFS卷采用目录文件来表示文件系统中文件与目录的目录结构关系,目录文件是采用B-Tree结构来组织的。HFS 中每个文件或目录都有个 ID 对应,被称作 CNID,文件系统就是根据CNID 来标识文件或目录的。

系统预保留的几个 CNID如表3所示:

表3系统预保留的几个 CNID

HFSRootParentID根目录的父 CNID HFSRootFolderID根目录 CNID HFSExtentFileID域溢出文件 CNID HFSCatalogFileID目录文件 CNID HFSBadBlockFileID坏块文件 CNID

目录文件的档案的key结构为:

parentCNID父目录 CNID itemName目录或文件的名称

目录文件中叶子节点:

目录文件中的叶子节点的档案有四种:文件档案,文件夹档案,文件链接档案,文件夹链接档案。

目录文件中叶子节点文件档案数据部分结构如表4。

表4 目录文件中叶子节点文件档案数据部分结构

目录文件中叶子节点文件夹档案数据部分结构

recordType档案类型,文件档案总为 0x01 reserved flag文件夹位标志 valence子文件或文件夹个数 folderCNID文件夹 CNID createDate文件建立的时间与日期 contentModDate文件内容最后修改时间与日期 backupDate备份时间 finderInf addFinderInf reserved

挂载HFS+文件系统:

(1)以二进制格式从镜像文件或者磁盘的1024字节的偏移处读取512字节的数据,作为Volume Header。Volume Header在文件系统初始化的时候生成。

(2)验证Volume Header的签名是否为0x482B,如果不是则直接报错。

(3)得到Volume Header中的目录文件位置,目录文件以B-树的方式组织,从目录文件开始位置读取目录文件的头节点,根据头节点中B-树根节点位置开始以广度优先的方式遍历B-树的所有节点。

(4)对于叶子节点,内部保存的记录是文件或者文件夹。

(5)所有节点遍历结束之后,文件系统的所有文件和文件夹都已经存放在一维线性结构中。

(6)根据读取的文件和文件夹信息创建树形文件目录树,从而完成文件系统的挂载。

取证软件:

随着苹果电脑的广泛应用,对HFS+文件系统的取证需求不断加大,对其文件系统的解析也成为研究热点,很多取证软件也加大了对Mac OS的支持和对HFS+文件系统的解析,例如上海盘石软件开发的计算机仿真取证系统软件(SafeVM)就可以将取证镜像文件或者对象计算机系统的硬盘模拟为虚拟机,在虚拟机环境下进行启动,并有绕过密码的功能。

图7 取证软件

3 结语

本文主要介绍了在MacOS取证过程中绕过密码的方法,在MacOS系统使用越来越广泛的今天,对密码的破解工作显得越来越有意义,本文针对MacOS X系统做了一些尝试和论证,得出了一些方法和结论,但是对于取证工作来说单纯的通过破坏登录文件来实现破解远远不够,例如对于同为苹果公司的使用非常广泛的iphone也使用了HFS+文件系统,但是iphone的HFS+文件系统是加密的无法直接拿到文件系统的元数据,对于这一课题还有很多问题需要解决。

猜你喜欢

文件夹字节密码
密码里的爱
No.8 字节跳动将推出独立出口电商APP
Fast Folders,让你的文件夹四通八达
No.10 “字节跳动手机”要来了?
密码抗倭立奇功
基于MSP430的四旋翼飞行器的S-BUS通信协议的设计与实现
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
密码藏在何处
不容忽视的空文件夹