取证例题分析

题目内容

Ann's Bad Aim

相关数据文件

通过网盘分享的文件:task1-evidence01.pcap
链接: https://pan.baidu.com/s/1JcGYK8-0D57yZuEqH1xK9g?pwd=xloy 提取码: xloy

题目分析

这是一道经典的取证分析题,从题目中我们可以提取到关键信息——Ann的公司电脑ip(192.168.1.158)
拿到IP之后我们应该干什么呢?注意到这是Ann在公司的电脑IP,而一般公司的电脑IP是固定的,也就是说,我们可以通过在获取的流量数据中过滤这个IP,从而找到和Ann联系的另一个终端IP。
首先我们使用WireShark打开上面的数据,可以看到有非常多的数据

接着我们在上面的应用显示过滤器里面输入ip.src == 192.168.1.158,然后按下回车,就能发现此时所有的Source,也就是来源,都是192.168.1.158

第一、二题

第一题,让我们找Ann的即时通信好友叫什么名字,既然有通信,那我们在数据中肯定可以找到目标IP,分析发现,和Ann通信的只有两个IP,即192.168.1.15964.12.24.50,很明显前者为Ann公司的另一个终端,所以和Ann通信导致泄密的只有可能是后者了,于是我们需要着重对64.12.24.50进行分析。

既然是通讯,那么应该使用的是TCP协议,我们可以选择TCP协议,目标是64.12.24.50的数据进行查看,发现内容是一堆奇怪的字母和符号,有可能是编码问题
编码的话我们可以从软件入手,如果知道软件使用什么编码,不就可以进行相应的解码了吗?那么如何知道他们公司使用什么即时聊天工具呢?
192的是内网不考虑,但是我们还有个IP,也就是64.12.24.50,对他进行查询发现

美国AOL在线公司,再继续搜索他用的什么软件进行即时聊天

发现使用的是AIM即时通
恰好WireShark里有AIM的解码方式,于是我们直接右键选择下面的decode As

docode as允许我们手动指定解码器和协议,很容易可以发现使用的端口为443,改完后再指定解码器为AIM的即可

这一步完成后就能神奇的发现,原来的SSL变成了AIM和AIM Messaging

然后我们打开第一个AMI Messaging会发现前两题的答案已经出来了(第一个评论当然是第一个发的)

第三题

再看下一个,我们需要获取到文件的名字;既然发送了文件,就一定能获取到文件的数据,可以使用WireShark的追踪流功能来找到文件信息。

右键展开追踪流然后点击TCP Stream

打开之后我们可以看到两部分,一部分是红色的,一部分是蓝色的,其中红色用来标明从源地址前往目标地址的流量,蓝色用来区分出相反方向,也就是从目标地址到源地址的流量,结合题目我们不难猜出,文件一定是Ann向目标地址发送的,也就是说,文件名会出现在红色区域。
由于内容不多,很快我们就能发现一个熟悉的后缀名:docx,那么很明显,这个文件名就是第三题的答案,即recipe.docx

第四题

我们继续看下一题,问我们文件的魔法数字是什么。我们首先要知道什么是魔法数字(简称魔数):
在Windows系统里,可以通过不同的后缀名轻易判断文件类型,而在诸如Linux系统中,区分文件并不是靠后缀名,而是魔数,也就是文件头来区分文件类型,每一种类型文件的魔数都是唯一并且彼此不同的。
举个简单的例子,在win系统里面,将不同的png文件放到16进制编辑器里面后可以发现,他们的文件内容前面有一样的部分:89 50 4E 47 0D 0A 1A 0A

而在网上搜索发现docx的文件头是50 4B 03 04,下面给出一些其他常见图片类型的文件头,如果大家对其他类型文件头感兴趣的话可以自行搜索

第五、六题

下一题,需要获取文件的MD5,大家应该都知道MD5是什么,它常用于验证文件完整性,确保文件的完整性和安全性,既然要找MD5,那么我们就要把文件还原出来(最简单的办法),是的,你没听错,我们可以直接还原出来这个文件(所以不要在公司电脑登录自己的Wx或者qq什么的,发送文件或者消息很容易就被监听到,而且可以还原内容)

在使用完TCP追踪流后,我们可以发现WireShark的过滤命令变成了tcp.stream eq 2

那么tcp.stream eq 2是什么意思呢?

我们可以用打电话的比喻来理解这个命令:

tcp.stream 就像通话记录:
每个电话通话都会被分配一个编号(比如 0,1,2...),
这个编号是 Wireshark 自动生成的流水号
eq 是等于的意思(equal),
就像在通话记录本里精确查找某个编号的通话
数字 就是具体要找的通话编号
比如输入 tcp.stream eq 2 就是在找编号为 2 的通话记录
或者我们也可以当做在电影院里找特定场次的监控录像:
电影院每天有 20 场电影 → 相当于 20 个 tcp.stream
每个场次观众从入场到离场 → 相当于一个完整的 TCP 流
tcp.stream eq 2 就是调取第 2 场电影的完整监控记录

其中tcp.stream有几个特点:

  • 编号从 0 开始自动递增
  • 每个新建立的 TCP 连接获得新编号
  • 包含完整通信过程:三次握手 → 数据传输 → 四次挥手

其实这些东西只需要了解就可以了,不过也很好理解

当前我们看到的是tcp.stream eq 2的数据,换句话说,也就是编号为2的监控内容,那么自然而然的,是不是可以有编号为3、为4、为5或者更多内容呢?

于是我们可以手动验证一下,可以发现一直到tcp.stream eq 6都是有内容的,那么我们该怎么找到传输文件的是哪一个TCP连接呢?其实很简单,docx的格式使用的xml,我们只要找到内容中有xml,并且有可能还会有docx,就可以确定这是docx文件传输的TCP流了(看到一大堆全是TCP连接,一般是文件传输)

最终我们在第五个TCP流中发现了传输的文件

如何还原文件呢?我们首先需要过滤掉无关内容,确保文件的完整性,还记得我们最开始使用的ip.src == 192.168.1.158这个命令吗?既然是Ann发出的文件,我们就可以直接过滤出源IP是192.168.1.158的数据包,这里我使用的是tcp.stream eq 5 and ip.src == 192.168.1.158,利用and组合两个命令来过滤信息,过滤完成后,我们右键点击追踪流,就能得到文件的内容了,接着我们更改下面的“显示为”为原始数据,更改后可以看到一堆数字和字母的组合,我们直接点击另存为就可以了。

注意,这里一定要更改格式为原始数据

另存为的文件名称可以随意写,我这里就直接使用他的文件名recipe.docx了

终于,我们导出了文件,这一切都结束了吗?于是我满怀欣喜的打开发现

是的,他乱码了,格式什么都乱七八糟的,究竟是怎么一回事?

还记得上面说过的魔数吗?docx的文件头应该是50 4B 03 04 14 00 06 00,扔到Hex里面一看,结果发现文件头竟然不在文件开头,知道了原因就很好解决了,我们只需要把文件头前面所有的内容直接删掉就可以了

删除前

删除后

此时我们重新打开文件(记得后缀名是.docx),就可以看到内容了,至于MD5sum,我们可以使用linux系统内置的命令md5sum来获取文件的md5值,语法如下:
md5sum 文件名就能得到文件的md5值了,当然,如果你是windows系统,我们可以使用certutil -hashfile <文件路径> MD5来获取,但是最简单的办法其实是网上在线获取md5值hhh。

这里我分别使用kali和windows获取

最终md5:6d44a4953caaef5dc62cb9a5616cdb96

而最终的配方,也就是文件内容,我们也已经知道了

(话说这“秘密配方”真的有人照做吗hhhh)

至此,这道取证题我们就做完了~

posted @ 2025-03-14 23:49  世蹊  阅读(124)  评论(0)    收藏  举报