做黑客的,怕两件事,一,找不到漏洞和攻击入口点。 二,屁股没擦干净,被警察摸到家里。
时间信息的电子取证和鉴别
现实中经常会听到什么不在场证据,其实网络上的也一样需要一个时间戳,没有这个时间戳,就算找到了攻击计算机,一样不能判定攻击者,因为不能确定攻击者当时确实是在使用计算机,所以时间信息同样是电子取证过程中的一个重点,这是一个把攻击者和网络案件联系起来的一个关键性证据。
今天我们一起来通过HEX获取我们需要的时间证据,并且通过时间来尝试判定某些电子证据的真伪。
时间信息在不同的文件系统之中的存储方式是不同的,我们先来看下FAT32文件系统下的时间存储方式。
FAT32文件系统的时间属性储存在文件目录项FDT(File Directory Table)中,FDT位于文件分配表之后,数据区前;每个文件在FDT中都对应着有一个目录项(这里的许多名词大家不懂没关系,一会我们全面介绍文件在磁盘中的存储方式后就会明白的),一个目录项占用32字节,下面我们看下这32字节的定义。
在上图中粗线两边的是我们判断时间的主要依据,下面我们来进行实战,使用HEX读取磁盘数据来获得某文件的创建时间我这里没有FAT32的盘,就用
RAMDISK虚拟了个A盘,以A盘中的HEX的汉化说明为例。
如图选择打开磁盘A后,会发现HEX已经把文件的创建修改最近访问等时间列出来了,但是我们这次是要学习手工寻找计算文件时间,所以右击文件如图、
位置---转到目录项后下方的HEX数据,就会自动跳转到该文件的目录项的开始(下图00400040的位置),我们根据第一张表的偏移0X0D找3个16进制字节,
如上图 04 BA 93但是上面不是说是24位二进制么?我们需要把16进制转换为二进制,常做免杀的知道高低位的问题,其实只要记住在这个时候把得到的数据反过来写就可以,即:93 BA 04转换为二进制为100100111011101000000100这就还原成24位二进制了,把前5位10010转换成十进制得到18,次6位011101转成十进制得29,再次5位11010转成十进制得到26,同理转化后8位得4,4*10得40,由第一张表可知,这个文件是在18点29分26秒40时创建的,同理找到日期的偏移0X10如下图
得到31 3C,高地位3C 31 转二进制得11110000110001,这里出现一个小小的问题,细心的朋友可能发现了,我们前面说这里应该是16位的,但是现在却只有14位,那两位跑哪里去了呢?其实在这川数字之前还是有两个0的,但是我们在计算器中计算的时候,被自动的略去了,所以这个时候我们要从后面开始计算,先取后5位10001转十进制得17,之前4位0001就是1,再前11110转得30,30+1980得2010,和上面HEX上显示的也一样,同理,文件的修改时间也可以由这里计算到,我这里就不多说了,自己动手才能真正的穴道。
上面一直说的是FAT32文件系统的时间,下面我再来给大家说一下,对于现在WINDOWS的主流NTFS文件系统的时间存储方式。
NTFS的文件属性信息存储在主文件表MFT(Master File Table)中,每个文件在MFT中都对应着一个文件的索引,称为目录,每个目录占用两个扇区,目录大小为1KB。NTFS系统在文件记录中以,UTC时间方式存储(详细介绍http://baike.baidu.com/view/325501.htm?fr=ala0_1)使用一个64位的数来计算时间,单位是100纳秒(http://baike.baidu.com/view/187741.htm)其实就是表示从1601年1月1日0点开始经过了多少个100纳秒,一纳秒等于一秒的十亿分之一,在主文件表中,记录了文件创建时间,修改时间,MFT的修改时间,和最后访问时间,下面我们继续用HEX来进行实战,还是A盘,只不过现在是NTFS格式,随便新建了一个文本文档同样用HEX打开磁盘----右击文件----位置----转到目录项,这时我们可以看到HEX已经把下方HEX数据使用不同颜色进行了区分如下图
颜色区分不是很清晰,图片选中后会比较清晰,从目录项开始的第6行开始,也就是HEX使用黄色标示的位置,每8位HEX数据代表一个64位二进制数据,我们以第一组为例DD 72 33 A8 D6 97 CA 01,以高低位排列01 CA 97 D6 A8 33 72 DD,这里没必要转成二进制,直接转成10进制得129082487534219991,也就是说从1601年零点到文件创建经过了129082487534219991个100纳秒经过计算完全可以计算出文件创建的时间,我数学不好对于数字很是不敏感,这个如果让我计算的话估计就会出错了,所以就留给大家吧。第一组8位HEX数据代表文件创建时间,第二组代表文件修改时间,第三组是MFT修改时间,第四组MFT最后访问时间。
----------------------------------------------------------------------------------------
大家对HEX应该都不是很陌生,所以通过上面的介绍都应该想到,既然时间信息时以此种方式存储的,那么对时间的修改也是相当地容易,那么修改后的时间的真伪能不能判别呢?
事实上,很多文档都会在文件本身给文件的文件头加一个时间戳,比如OFFICE文档通过属性----详细信息选项卡查看
JPG照片等的EXIF信息,因为我没有原版的数码照,所以这个没法插图了,大家可以查看属性摘要,或者直接记事本打开,在原版的数码照片的第1-3行附近,会有EXIF................这样的字样,这里记录着拍照的时间,相机品牌型号等,这也是某些判断数码照片是否可以当做正式证据时常用的,文件头中的时间戳一般可以提供其他的时间信息,比如某些文件被删除,但是一般删除只是抹除文件目录项的数据,文件本身并没有更改,所以通过磁盘仍可提取到文件和文件的时间。另外就是时间真伪的辨别,比如文档文件头时间和磁盘目录项时间会有差距但一般不会太大,若文件系统记录的文件创建时间晚于文件访问时间,则时间很有可能是伪造的,对于下载拷贝的文件,文件头的时间一般应早于磁盘文件记录时间,总之,时间真伪的辨别一般都是两种以上时间相互印证。