540 likes | 780 Views
安全操作系统. 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008. 实验讲解. 口令破解, Password cracking 文件恢复, file recovery 缓冲区溢出 系统安全 安全审计 文件事件审计 主机安全审计. 文件恢复, file recovery. 实验中用到的工具 磁盘相关 磁盘物理组织和结构 磁盘逻辑组织和结构 FAT32 文件恢复 Ext2 文件恢复. 工具. Winhex
E N D
安全操作系统 中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008
实验讲解 • 口令破解,Password cracking • 文件恢复,file recovery • 缓冲区溢出 • 系统安全 • 安全审计 • 文件事件审计 • 主机安全审计
文件恢复,file recovery • 实验中用到的工具 • 磁盘相关 • 磁盘物理组织和结构 • 磁盘逻辑组织和结构 • FAT32文件恢复 • Ext2文件恢复
工具 • Winhex • 下载evaluation版:http://winhex.en.softonic.com/ • FinalData • 下载Demo版,有限时间;有限使用http://www.finaldata.com/ • 文件粉碎机 • 下载,很多网站 • 例如filekiller • Debugfs,Linux自带
文件恢复,file recovery • 实验中用到的工具 • 磁盘相关 • 磁盘物理组织和结构 • 磁盘逻辑组织和结构 • FAT32文件恢复 • Ext2文件恢复
cylinder/head/sector Illustration of a hard disk http://www.microsoft.com/resources/documentation/windowsnt/4/server/reskit/en-us/resguide/diskover.mspx?mfr=true
文件恢复,file recovery • 磁盘相关 • 磁盘物理组织和结构 • 磁盘逻辑组织和结构 • FAT32文件恢复 • Ext2文件恢复
关于PC的启动过程,可以参见这里:Boot sequence on standard PC (IBM-PC compatible) MBR • IA32 IBM PC系统采用MBR分区表方案 • 系统启动时,首先执行ROM BIOS中的固件 • 该固件将会装载( 0x7C00 )并执行MBR中的boot loader • 运行在实模式 • MBR中的boot loader将查找分区表,找到活动分区,加载该分区启动扇区并执行 • 与FS类型以及OS类型有关 • 通常用来加载OS相关的secondary bootstrap loader,例如io.sys, ntldr
512字节的MBR • =446字节的boot loader • +64字节的分区表 • +2字节的signature:0xAA55 • track 0, head 0, and sector 1 演示本机磁盘管理信息
分区表, partition table • 4项,MBR 446字节开始的64个字节,偏移分别 • Partition 1 0x01BE (446) • Partition 2 0x01CE (462) • Partition 3 0x01DE (478) • Partition 4 0x01EE (494) • 每项16个字节 An example http://blogs.msdn.com/ntdebugging/archive/2007/06/19/how-windows-starts-up-part-1-of-4.aspx
FAT Partition Boot Sector BPB http://www.ntfs.com/fat-partition-sector.htm 找到并加载Io.sys …… 关于Windows 95的启动过程,参考这里
NTFS Partition Boot Sector • 关于Windows 2000的启动,参见Ntldr • Vista和server 2008:winload.exe和Windows Boot Manager 找到并加载Ntldr ……
演示? • 打开整个磁盘,看分区,MBR
Partition recovery • 误删一个分区? • TestDisk • gpart • 有些磁盘管理工具,在删除分区时,会写覆盖分区前部的几个扇区 • Windows 2000/XP,第一个扇区 • 需要有备份的启动扇区配合恢复 • 病毒? • 分区时突然掉电/死机? • 安装或删除多OS之一? 查杀病毒恢复分区表 重新分区?? fdisk /mbr
文件恢复,file recovery • 实验中用到的工具 • 磁盘相关 • 磁盘物理组织和结构 • 磁盘逻辑组织和结构 • FAT32文件恢复 • Ext2文件恢复
FAT基本概念 • 扇区 • 簇 • 链式存储(显式) • File Allocation Table • 目录项 • FAT的备份 • FAT#1和FAT#2,大小相等
FAT的格式 • 最早,FAT12,用12bit对簇寻址 • 4096-(000h,001h,FF0h~FFFh)=4078个可用 • 软盘 • Initial FAT16,用16bit对簇寻址,65517 • 受限于16位扇区号,分区最大32MB • Final FAT16,1987 • 磁盘技术:可以使用32位的扇区号 • sectors-per-cluster<=64 • 标准扇区大小512字节,簇最大32KB,分区最大2G • FAT32,32位,其中28位用来寻簇 • 若32KB的簇,则8TB,理论上 • 受限于bootsector,32位扇区号,实际上最大2TB
FAT表的大小 • 簇数×(12/16/32) • 以扇区为单位向上取整 • FAT表项的作用(根据表项的编号和表项的值) • 标明磁盘类型 • 链接一个文件的各个簇 • 标明坏簇和可用簇
FAT表项的值 ? 不能用作next指针
FAT的第0项 • 首字节标明磁盘类型,参见这里 • FAT的第1项 • 不用
BPB Sectors per cluster • 25个字节 Reserved sector count Bytes per sector 0x00 JMP(3) OEM NAME(8) 512 0x10 2 Hidden sectors 0x20 Total sectors Number of heads # of FATs Sectors per track Maximum number of root directory entries 2个字节,最大512 FAT12/16 Sectors per FAT for FAT12/16 Media descriptor 参见这里
Extended BPB,for FAT12/16 Physical drive number Reserved Extended boot signature 0x20 Total sectors serial number Volume Label, Operating system boot code … …padded with blanks FAT type,补空格,FAT12或16 0x30 0x1F0 55和AA
Extended BPB,for FAT32 FAT Flags Cluster number of root directory start 0x20 Total sectors Sectors /FAT Version Reserved 0x30 Sector # of a copy of this boot sector Sector # of FS Information Sector Physical drive number Extended boot signature Reserved 0x40 serial number Volume Label, 补空格… … Operating system boot code … FAT type,补空格,“FAT32 ” 0x50 55和AA 0x1F0
File system information sector • File system information sector • 空闲簇的个数;最近分配出去的簇号 http://home.teleport.com/~brainy/fat32.htm
FAT各部分的偏移计算 • Bootsector:分区的第一个扇区(start sector) • FAT表1: • Start + # of Reserved Sectors • FAT表2: • Start + # of Reserved Sectors+FAT表大小 • Data area: • Start + # of Reserved + (# of Sectors Per FAT * 2) http://home.teleport.com/~brainy/fat32.htm
FAT的目录 • 目录是一个特殊的文件 • 每个目录项32字节 • 名称 • 扩展名 • 属性(archive, directory, hidden, read-only, system and volume) • 创建日期和时间 • 第一个簇的编号 • 大小 • FAT12/16有专门的根目录区域 • FAT32的根目录存放在数据区域
日期格式: 时间格式: 日, 5位 Year,7位, 从1980~2107 月,4位 Seconds/2, 5位 Hours,5位 Minutes,6位 File Attributes 目录格式(8.3entry) Reserved Create time, 10ms*(0~199) Create time 3字节 0x00 File name,补空格,8字节 extension (1) (1) (1) (2) 0x10 (2) (2) (2) (2) (2) (2) Size,4字节 First cluster in FAT12/16; Low 2 bytes of first cluster in FAT32 Create date Last access date Last modified date Last modified time EA-Index (used by OS/2 and NT) in FAT12 and FAT16, High 2 bytes of first cluster number in FAT32
FAT的长文件名 • 8.3entry,受限;超过? • 若干个长文件名目录项(倒序)+短文件名目录项 • 一个文件最多20个,可以容纳255个UTF-16字符 • 最后一个有效字符后,填写0x00 0x00,此后填充0xFF 0xFF
长文件名举例 • 假设文件名“File with very long filename.ext ” 序列号的最高位(第8位)用作判断该项是否被删除 序列号的第7位,用作判断是否最后长文件名的最后一项
演示? • 格式化FAT32 • 查看FAT • 找到根目录 • 在根目录下,创建目录、文件;删除;恢复 • 再次格式化;恢复 • 安全删除
文件恢复,file recovery • 实验中用到的工具 • 磁盘相关 • 磁盘物理组织和结构 • 磁盘逻辑组织和结构 • FAT32文件恢复 • Ext2文件恢复
Ext2文件恢复 • Linux文件系统简介 • 工具 • Debugfs • 命令 • dd; od; fdisk; mkfs.ext2; mount/umount; cd; ls; md5sum; stat; rm;
在linux下查看MBR • 一个获得MBR内容的方法 • dd bs=512 count=1 if=/dev/hda | od -Ax -tx1z -v • 在虚拟机中演示
?演示 • 查看硬盘设备文件(/dev目录) • 磁盘分区(fdisk),后,再次看硬盘设备文件 • 格式化 mkfs.ext2 • 挂载(mount) • 查看系统中的分区挂载情况 • 编辑(vi)并保存/文件摘要(md5sum)/文件状态(stat) • 删除文件 • 卸载(umount)/重新挂载为只读 • debugfs,可读写方式,lsdel/dump • 文件摘要并比较
Thanks! The end.
The structure of a hard disk http://oreilly.com/catalog/debian/chapter/book/ch02_03.html
http://www.hddtech.co.uk/resource/hard-disk-functionality.htmhttp://www.hddtech.co.uk/resource/hard-disk-functionality.htm
NTFS文件系统,基本概念 • NTFS简单发展史 • v1.0 with NT 3.1, released mid-1993 • v1.1 with NT 3.5, released fall 1994 • v1.2 written by NT 3.51 (mid-1995) and NT 4 (mid-1996) (occasionally referred to as "NTFS 4.0", because OS version is 4.0) • v3.0 from Windows 2000(autumn 2001; occasionally "NTFS V5.1"), Windows Server 2003 (spring 2003; occasionally "NTFS V5.2"), Windows Vista (mid-2005) (occasionally "NTFS V6.0") and Windows Server 2008 • The file system specification is a trade secret
Metadata,元数据 • "data about data" • 例如,跟“书”相关的元数据有:作者、出版社、出版日期、版本号、ISBN号等等 • Metafile,元文件 • several files which define and organize the file system • 常规:不可见
$MFT • Describes all files on the volume • file names • Timestamps • stream names • lists of cluster numbers where data streams reside • Indexes • security identifiers • file attributes like "read only", "compressed", "encrypted", etc. • For each file, a file record
MFT的前16项,系统保留 • 第一项与MFT自身相关,MFT record • 第二项与MFT的镜像备份相关,MFT mirror record • 上述两个文件的位置信息都保存在NTFS分区中的启动扇区中 • 第三项与日志文件有关,用来进行文件