zoukankan      html  css  js  c++  java
  • 【干货】证据被毁?数据恢复出来

    来源:Unit 3: Unix/Linux File System 3.1 Unix/Linux File System Sleuthkit Continued

    工具:Sleuthkit Demo

    先补充下硬链接和软链接的知识。

    有两个文件,其中file0的内容为welcome

    这两个文件的inode如下  ls –li查询inode(对于inode,元数据,数据块,超级块陌生的朋友可以根据文章的来源URL去找到对应的视频进行学习,只需要投入10分钟就可以掌握)

    1表示只有一个文件file0指向了inode编号14288130  sansforensics是UID GID,也就是权限

    创建一个硬链接指向到file0,file0HL为新创建的文件名,他们的inode号一样切硬链接数为2,所有信息一模一样,因为这些数据都保存在inode里面,只有文件名不同。

    再来感受一下软链接,使用的命令一样,带的参数不同,它是指针,只指向了file0的文件名。它们的inode不一样,权限也可以看见不一样,链接数也只有1个,文件大小也不同,一个5,一个8.这意味着软链接与原文件的内容不同(仿佛windows中创建的快捷方式)

    软链接只存储路径信息,不复制原始数据内容。

    现在体会一下Sleuth Kit工具的命令,这里以金融案例取证的原始比特流为例,它的格式是dd,使用FTK Imager提取得到的。这是取证了整个设备得到的文件,记住。如下

    现在需要找到分区的开始点,否则侦探工具包将无法工作。

    有两种方式可以找到,一个是F盘,一个是MMLS。一般使用MMLS方法,它提示的信息友好一些。

    将文件投入进来就会自行补全路径

    补全的路径如下,所有分区信息也都出来了,基于扇区的单位显示出来。注意unallocated,这是未分配的空间。文件的起点是2048字节。

    我们要找到这个证据的文件系统使用了什么,就需要从2048字节开始,因为这之前未分配。

    输入好命令以后,把文件拖进来。

    运行命令之后,信息较多,只截图一张图感受一下。它告诉你所有的文件系统信息。这里把整个超级块的信息都给解析出来了。

    使用FLS命令列出所有的文件,包括删除的文件  -m参数是MAC时间(跟网管提指标一样,保存出来自己生成时间信息的文件名),所有文件放在斜杠中,-r参数是递归地生成,文件拖进来。这是整个设备的证据信息,重定向到新的文件中,不要打印在屏幕上。

    如果是被删除的文件没有文件名,它会不会显示出来?使用另外一个命令ils,因为没有文件名,取消斜杠。这里的-r参数只收集已删除的文件,这是默认值,可以取消它

    看一下这两个文件的样子,它们是人类不可读的,这里大致看看什么样子。后面使用展示如何生成一个人类可读的MAC时间轴,这里只是打开看看。这个文件里有inode信息,可以使用工具玩一玩,给定一个inode就行了。MAC time可以提取这份原始信息生成清晰的inode给出来,但这里可以观察发现inode在哪里。

    你看见的每一个东西,后面都是文件名,inode。发现规律,编写工具。工具就是这样出来的。这里虽然有mac time工具提取出来,但是以后遇到跟多的信息就不一定有工具了,建议学习入门编程语言是python。

    知道inode在哪里,怎么提取出来以后,使用一下它感受感受。命令istat,给它一个inode,让它告诉你什么情况。这里的allocated表示已经被分配了,它在第六组。Direct blocks就是这个inode号使用的数据块。

    你想知道inode对应的数据块里面的内容是什么吗?使用icat查看inode对应的数据块的内容。这里的inode已经被分配了,所以它知道数据块编号,所以可以显示出具体信息。这是一份财务报表。

    我们使用inode号定位到了具体的数据,那么这一次我们使用数据块号来查看数据。显示的内容是一样的。注意inode和数据块的区别,如果其他数据块使用相同的inode,你用inode号查询的将是所有inode号一致的多个数据块内容。

    如果你找到文件系统中数据块和inode之间的关联,那么发生灾难性的数据毁灭时,数据恢复将成为可能。注意这里的文件系统为ext2,不一样的文件系统,数据块的逻辑也不一样,恢复的过程和可能性也有差异,需针对性的深入理解文件系统。

    那么如何找到数据块对应的inode?使用ifind,-d参数为数据块号

    如果一个inode存在多个数据块,你使用ifind发现了一个数据块对应的inode了,就又可以使用inode查看多个数据块中的内容,整个信息就被完整的捕捉出来。

    再来试一个意思为Find file name.   的ffind命令。  给定inode以查找文件名。如果这个inode有文件名,那么它就被分配使用了。文件名如下,一份报表证据。

    目录的内容存储了文件和子目录之间映射到inode的所有信息。这些inode对应的文件名都存储在它们的父目录中。

    从数据层(数据块)到inode层到文件系统层(你知道数据块和inode之间的对应关系相互匹配查询过)到文件名层的命令全都尝试完毕。这一切的实战都基于SIFT虚拟机,它在SANS社区下载,地址前面的文章也给了。啊如果你没听过SIFT的话,我可以告诉你,世界级工具吧,所有法医学计算机取证专业的人都在使用它。

    如果你想知道哪个工具存在或者不存在,使用which——这个命令是否存在,然后它位于哪里。

  • 相关阅读:
    FreeRTOS 移植到WIN10
    Keil debug command SAVE 命令保存文件的解析
    VS2017 编译 Visual Leak Detector + VLD 使用示例
    LaTeX 中插入GIF图片
    VS2017 + Qt5 + OpenCV400 环境配置
    记一次C++编程引用obj文件作为静态库文件
    Qt 多语言支持
    vscode 解决符号无法识别的问题
    带FIFO的UART数据接收
    MySQL Connector/Python 接口 (三)
  • 原文地址:https://www.cnblogs.com/sec875/p/10092301.html
Copyright © 2011-2022 走看看