琳迪软件(LINDI.CC)

  • 首页
  • 原创内容
  • 技术分析
  • 实用工具
  • 业界资讯
琳迪软件(LINDI.CC)
让电子取证更简单
  1. 首页
  2. 业界资讯
  3. 正文

CTF电子取证(Forensics)类赛题学习笔记(一)——文件格式判断

2018年5月9日 1500点热度 1人点赞 0条评论

这种踏实的学习态度才对,记得原来认识一个自称搞取证的,而且还是海外留学硕士毕业,但其实连文件头都看不懂,实在无语。。。

前言

笔者的基友们参加了第二届“强网杯”,并且拿到了总决赛的入场券。受他们的影响,笔者也开始关注并学习CTF的相关知识。

搜罗了一下网上关于CTF入门的相关资料,大家都说从取证题开始入手比较合适,因为简单又有趣。“听人劝,吃饱饭”,就从取证题开始学起吧!

0×01 Forensics?MISC?

笔者查阅了国内外近几年的CTF比赛,发现国内比赛使用“MISC”较多,并且将Forenics包含在了MISC里面;而国外则使用“Forensics”较多。目前,电子取证已经形成了一门单独的计算机学科(https://en.wikipedia.org/wiki/Computer_forensics)。

0×02电子取证的概念

笔者在翻阅的资料的过程中(包括高校教材),发现业内对“电子取证”这一概念并没有一个统一的定义,也许是因为计算机技术的更替太快的原因吧。

目前较为广泛的认识是:电子数据取证是指能够为法庭接受的、足够可靠和有说服力的、存在于计算机和相关外设中的电子证据的确定、收集、保护、分析、归档以及法庭出示的过程。

0×03 电子取证证据的来源及分类

电子取证证据主要有如下三个来源:

1. 计算机主机系统

计算机主机系统就是我们通常所说的台式机电脑、笔记本电脑、平板电脑等。

2. 计算机网络

这里说的网络主要是网络流量包。

3.其它数字设备

移动硬盘、MP3、U盘等具有存取数据功能的设备。

电子取证证据的分类主要有如下四种:

以证据来源为标准:主机取证、网络取证和其它相关设备取证

主机取证:对计算机中具有数据存储功能的设备的取证,如硬盘、内存、BIOS等。

网络取证:对网络数据流量包中的内容进行取证。

其它相关设备取证:对移动存储设备或其它具有数据存储功能的设备的取证。

以信息获取时潜在证据的特征为标准:静态信息取证和动态信息取证

静态信息取证:静态主要是指获取存储在硬盘、光盘等设备中的数据。当设备被断电后,数据依然存在。

动态信息取证:动态获取是指收集电源被切断后会消息的数据,如操作系统的进程、计算机内存数据、网络数据包等。

以信息获取的时间为标准:事前信息取证和事后信息取证

事前是指事件正在发生,比如对网络流量包的取证,对数据包一边捕获,一边分析,取证难度相对较大。事前取证通常指对动态信息的取证,

事后是指事件已经发生,且信息被存储在硬盘、光盘等设备上。事后取通常是指对静态信息的取证,

以调查人员是否需要到现场为标准:现场取证和远程取证

0×04了解文件头

CTF的赛题通常没有扩展名,需要选手自行判断文件类型。有以下两种方法可以识别文件:1.使用支持16进制的文本工具查看文件头;2.使用已有的文件识别工具。

文件识别工具的原理实质上还是从文件头、尾来判断,所以需要先学习一下文件头的相关知识。

文件头:文件头是位于文件开头的一段承担一定任务的数据。有了文件头,操作系统就可以识别这个文件,并用不同的程序来打开这个文件。

用PNG文件举个例子:

image.png

(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头

(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13

(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)

image.png

(可变)13位数据块(IHDR)

(可变)剩余四字节为该PNG的CRC检验码,由从IDCH到IHDR的十七位字节进行CRC计算得到

文件尾:标示整个文件数据的数据结尾。

有些文件尾不是必须有的,比如图像文件

有些文件尾是必须有,且不可随意更改的,比如压缩文件

image.png

上图绿色的部分即为ZIP格式的压缩文件的文件尾,如果更改了其中的值,可能会造成压缩文件无法正常解压,如下图就是文件尾被破坏后,解压软件提示的出错信息。

image.png

0×05 查看文件头的软件。

通常我们都是用十六进制编辑器来查看文件头。

Windows系统

有诸如WinHex、010Editor等大量十六进制编辑器,笔者比较偏爱010editor,它可以将文件中的不同含义的数据块用不同的颜色标示出来,一目了然。

image.png

Linux系统

hexeditor,全键盘操作,不适合对习惯使用鼠标操作的人。

image.png

Hexdump命令

image.png

用这个命令得到结果与在编辑器里看到的数据不一样,个人认为不太好用。

image.png

0×06 用工具识别文件格式

除了用查看文件头的方式识别外,还有很多工具可以帮助我们更快、更直接的识别未知文件。

Linux系统中,常用 file命令判断文件类型。使用方法很简单,

file 要识别的文件名

image.png

Windows系统中,推荐使用TrID,这个工具能识别近万种文件格式。有DOS版(TrID_dos),和视窗版(TrIDNet)。TrIDNet使用起来相当简单,导入要分析的文件路径后,点击分析按钮即可看到分析结果。

需要注意的是,必需下载官方的字典(一个名为triddefs的压缩包),并在软件中将其导入,才能使用完整功能。

image.png

0×07 用Python写个文件识别脚本

现有的文件识别工具的原理就是提取文件头部的部分字节,然后与字典进行对比,并输出对比结果。

Python有一个filetype库,用filetype的官方文档中的示例即可实现识别功能,不过能识别的文件格式较少。

为了锻炼锻炼编程能力,还是尝试自己写一个简单的实现代码吧。Python3实现:

import struct
import binascii

fTD = { 
    'FFD8FFE1':'JPEG',
    '89504e47':'PNG',
    '47494638':'GIF',
    '49492A00':'TIFF'
    }

openfile = open("8", "r+b")
data = openfile.read(4)
ascii2bin = binascii.hexlify(data)
ascii2bin = ascii2bin.decode('ascii')
if ascii2bin in fTD:
     print(fTD[ascii2bin])
else:
     print('Unknown')
openfile.close()
标签: CTF
最后更新:2018年5月9日

LINDI

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
Alist-Encrypt-WinGUI V0.1 Build 20240521 [更新]微信PC版DAT文件解密工具V0.5 [更新3.3.0.115]微信PC版防撤回+多开补丁 [更新]微信PC版聊天记录解密工具 [更新V1.1]QQ聊天记录MHT转HTML工具(支持批量转换) [更新 V1.2]词频分析工具 GitHub关键字扫描开源工具推荐
Alist-Encrypt-WinGUI V0.1 Build 20240521 GitHub关键字扫描开源工具推荐 如何使用树莓派自制网络监视器 开源密码破解及分析工具Hashview QQ截图+搜狗OCR+百度OCR+有道OCR+翻译 [更新]微信PC版聊天记录解密工具 布谷鸟沙箱初体验
最近评论
LINDI 发布于 3 年前(12月21日) 已发送, 请查收!
LINDI 发布于 3 年前(12月21日) 已发送, 请查收!
LINDI 发布于 3 年前(12月21日) 已发送, 请查收!
LINDI 发布于 3 年前(12月21日) 已发送, 请查收!
LINDI 发布于 3 年前(12月21日) 已发送, 请查收!
LINDI 发布于 3 年前(12月21日) 可以看啊, 或者把你的样本文件发我, 我试试, 看是否有bug
LINDI 发布于 3 年前(12月21日) 可以用啊, 没问题的.
分类
  • 业界资讯
  • 原创内容
  • 实用工具
  • 技术分析
标签聚合
Volatility 微信 linux 多开 alist-encrypt 文件系统 Hashview CTF CryKeX 计算机取证 安卓镜像 网络取证 证据固定 解密 Xplico hashcat 内存取证 聊天记录
联系方式

点这里联系我
邮箱:lindisoft@hotmail.com

归档
  • 2024年5月
  • 2022年7月
  • 2021年7月
  • 2021年4月
  • 2020年4月
  • 2019年7月
  • 2018年10月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2017年12月
  • 2017年11月
  • 2015年7月
  • 2015年6月

COPYRIGHT © 2021 lindi.cc. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang